ITエンジニアの種類っていっぱいあるの?

こんにちわ。
リエです。

弊社はシステム開発会社です。
プログラマが数名在籍していて、それぞれ得意分野が違います。
そこでよく聞かれる「エンジニア」の種類と違いについて書こうかと思います。
種類が結構多いので、今回は弊社に関係するエンジニアの種類を抜粋してご紹介します。

そもそもITエンジニアって?

情報処理や情報通信といった情報技術に関する技術者のことです。
ちなみにITとは「Information Technology」日本語で「情報技術」の略です。

・システムエンジニア

システムエンジニアは、コンピューターシステム開発の場面において、設計から開発、テストまでを一貫して計画し進めていく存在です。
エンジニアの中でもオールラウンダーで、クライアントからの要求をまとめシステムの仕様を確定し、それを他のプログラマに伝達する橋渡し的な枠割を担います。

・ネットワークエンジニア

ネットワークエンジニアは、コンピューターネットワークの設計・構築・運用・保守を専門的に行うシステムエンジニアの一種です。
データ通信に関するさまざまな技術(ルーター、スイッチ、DNS、メール、セキュリティなど)に精通した存在です。

・データベースエンジニア

データベースエンジニアは、データベースの設計・構築・運用・保守を専門的に行うシステムエンジニアの一種です。
データベースを扱う様々な製品に精通し、データベース自体の設計や構築だけでなく、運用方法の設計を行う場合もあります。

・サーバーエンジニア

サーバーエンジニアは、サーバーシステムの設計・構築・保守を専門的に行うシステムエンジニアの一種です。
冗長構成、負荷分散の設計、障害対応、障害・セキュリティ対策など、サーバーに関する幅広い業務を行います。

・Webエンジニア

Webエンジニアとは、WebポータルサイトやECサイトなど、Web上での使用に特化したシステムの設計・開発・運用・保守を専門的に行うシステムエンジニアの一種です。
WebサイトやWebアプリケーションなど、Webを通して操作するシステムの開発をメインで行います。

・プログラマ

プログラマとは、一般的には、システムエンジニアなどが作成した仕様書(設計書)をもとに、機能を実装していくエンジニアのことです。
弊社ではそれだけでなく上述した業務全般をプログラマが担っています!(スゴイ)
コーディングだけを行う場合はコーダーとよばれる場合もあります。
(Webデザイナーがデザインしたサイトやアプリケーションなどを、ユーザーがWeb上で閲覧・動作させることができるよう作り上げる職種のことです)
対応するシステムによって「アプリケーションプログラマ」や「Webプログラマ」など、使用する開発言語によって専門的に分化されています。
 
参考サイトhttp://proengineer.internous.co.jp/content/columnfeature/3108#section209

 
まだまだ色んなITエンジニアは存在しますが、今回はこのへんで。
まさに多種多様。興味がある方はぜひ弊社までm(_ _)m


ブラウザのサウンド出力先を変更したい!

近頃、ブラウザのタブを複数開いて動画や音楽を同時再生することが増えてきました。

言うまでもないことですが、同時再生なので音がごちゃごちゃしてます。

せめてイヤフォンやヘッドフォンで聴いているときはタブごとに音を左右に割り振りたいと常々思っていました。

しかし、ChromeやFirefox、Edgeといったメジャーなブラウザには音を調整するミキサーがついてないどころか、デフォルトのサウンドデバイスから変更するような設定がそもそもありません。

そんな設定あったとしてもサンプルレートやらビットレートで色々がアレなんだろうなぁ…もう駄目だぁ…おしまいだぁ…

と諦めてかけていたところ、Javascript の Web APIs を使えば前述の音の割り振りが実現できそうなことに気付きました。

のでやってみました。

image
音声の出力先を選択できるようにした

これだけでセレクトボックスから選択したデバイスでオーディオが再生されるようになりました。仮想オーディオミキサーも試してみましたが問題なく動作します。

躓いた点は、

  • ラベルが取得できない場合、deviceIdでしか判別できない。
  • 音声に加えてマイクの使用を許可しないと、デバイスの許可が取得できず出力先を切り替えることができない。
  • Macの場合はプライバシー保護機能のためアプリの許可も必要かも。

割とセキュリティ厳しめです。

気が付いたら勝手にマイクがONにされて独り言が全世界に公開とか、いつの間にか催眠音声を聞かされてるとかすると怖いので仕方がありません。

それでも、Audio要素ごとにデバイスを設定できるのは予想以上でした。

出力側が対応しているかの問題がありますが、7.1chでも20chでも設定上可能です。

2つの曲を聴きながらテンポを合わせたい人や、イヤフォンの上からヘッドフォンをする人、左で雑談、右で焚き火の音を聴きながらゲームする人も安心です。平和は守られた!


しもやけ対策2019

こんにちわ。
リエです。

昨年、寒さで足がしもやけになってしまいました。
オフィスって底冷えしますよね(´・ω・`)

わたしはヒールが好きなのでパンプスをよく履いていたのが原因だと思われます。あと冷え性なのも関係あるのかなぁ。

しもやけなんて小学生ぶりだったので、最初なんでこうなったのか全然分からず自分の症状をGoogleで検索しまくりました。(ちなみにドラッグストアで売っている薬で治りました)

そんな過去を踏まえて、今年は絶対にしもやけにならないぞと早々に対策を練りました。しもやけ本当につらかったんです。。

要は足を冷やさなければいいというわけで、オフィスではSUBUという冬用のサンダルを履いています。
https://www.subu2016.com/archive

中が起毛でふかっとしていて、外はナイロンで保温性があり、ダウンのような感じです。靴底も厚みがありしっかりしているのでちょっとそこまでなら外を歩くことも可。※SUBUの回し者ではありません。

今のところしもやけにはなっていません。
この冬わたしの足はSUBUが守ってくれそうです。

しかし足元冷える問題はどうしたらいいんでしょうね〜。
スカートをやめるとかタイツのデニールを上げるとかすればある程度は解決するでしょうけど、好きな服は着たいし。
でも今年の冬はSUBUのおかげで足があったかいしむくみにくいしで今のところいい感じなので、これで越冬します。


高品質デザインツール Canvaを使ってみた。

こんにちは。デザイナーのMです。
今回は無料で美しいグラフィックデザインを作成することができる「Canva」というサービスを使ってみました。

Canvaとは?

CanvaはPCブラウザ、アプリ(iOS/Android)で利用できる、無料グラフィックデザインツールです。

グラフィックデザインを無料で簡単作成 – Canva
https://www.canva.com/ja_jp/

豊富なテンプレートから用途にあったデザインを選んで、カスタマイズするだけで高品質なグラフィックデザインを誰でも簡単に作ることができます。

わかりやすいホーム画面

登録すると最初に表示されるホーム画面です。
・デザインを作成
・あなたのデザイン(作成済みのデザインがある場合のみ表示)
というシンプルなダッシュボードで、とてもわかりやすいです。

デザインテンプレートも
・ソーシャルメディア
・Instagramの投稿

などの各種SNSに対応した最新のテンプレートから、
・店舗のメニュー表
・パンフレット
・商品券
などの印刷物のデザインテンプレートまであって種類がとても豊富です。

今回はこのブログ記事のヘッダー画像を作成してみながら、Canvaを使ってみようと思います。
※記事中のスクリーンショットがPCブラウザのものになるので、アプリ版とは多少違う部分があるかもしれません。ご了承ください。

デザインを作ってみる

それでは早速ですが、テンプレートからデザインを作ってみようと思います。
ホーム画面のテンプレート一覧から「Blogバナー」をクリックします。

ブログで一般的に使用されるサイズで真っ白なアートボードが表示されました。
画面左側に、メニューとデザインテンプレートが表示されています。右下に(無料)と書いてあるものは無料で利用できます。
それ以外もデザインの背景にCanvaロゴの透かしが入りますが利用することができます。この透かしは有料で削除することも可能です。

今回は無料のテンプレートを選んでみました。

このままでも普通に利用できるオシャレなテンプレートになっています。
このテンプレート上の文字をクリックするとすぐに編集することができます。

多数のフォントや文字色の変更もツールバーからすぐに変更することができます。非常に直感的で初心者の方でも使いやすいのではないかと思います。

背景画像も豊富な素材が用意されていて自由に差し替えることも可能です。自分の持っている画像を挿入することもできます。
また簡単な写真フィルターなども用意されており、ちょっとした画像編集も可能になっています。
フォントの組み合わせもデザイナー顔負けの色んなパターンが用意されているので、どれにしようか悩むのもいいかもしれません。

あっという間にバナーの完成!

数クリックでバナーが出来てしまいました。時間にして5分もかからなかったと思います。
作成したデザインは、pngやjpg、PDFでダウンロードすることができます。
いつもはIllustratorやPhotoshopでデザインを作成していますが、簡単なデザインラフや今回のブログなどで利用する記事内の画像などはCanvaで作るのでも十分かもしれません。


また機会があれば、ぜひ使ってみようと思うことのできるサービスでした^^

グラフィックデザインを無料で簡単作成 – Canva
https://www.canva.com/ja_jp/


ゲーム制作の振り返り

こんにちは。開発担当のマットです。

以前、ゲームの開発に関する記事 は書いたことがありますが、最近はもっと大きなプロジェクトに挑戦し戦略系のゲーム開発をしました。


この記事では、まあまあ大型なゲームを作るにあたっての感想を書かせていただきたいと思います。

ゲームを作ってみたいな〜と思っている方にとって、この記事が少しでも参考になったらとても嬉しいです。

まずは全体的の感想

とても楽しかったです。ゲーム作りが大好きなので。

3Dゲームを作る時はコードのテキストを見ているだけではなく、モデリングをやったり、アニメーションで人間を動かしたり、照明を調整したりと様々なことをやっていたので毎日が新しいチャレンジでした。

そして、何らかの不具合が起きた時はエラーログを一行一行読むのではなく、実際に不具合を目で見つけて対応することができるのでそれがとても面白かったです。

「全員同じひげ」という微妙な不具合

モデリングとアニメーション

今回のプロジェクトに挑戦する前に、3Dモデリングとアニメーションを作ることができるかとても不安で怖かったです。
「本当に3Dの人形を一から作れるか?」「作るとしても、なめらかにアニメーションの対応はできるか?」と心配事はたくさんありました。

しかし、現在のツールでは思ったよりも簡単に作ることができます。

アーティストではない私でも、Blenderという3Dモデリングソフトウェアを使うと人間モデルや建物、ゲームに出てくるアセットをすぐに作ることができました。

Blenderで3Dモデルを簡単に作れます。

Blenderで作ったモデルをUnity(ゲーム制作アプリケーション)にインポートすると、アニメーションを作成することもできるし、Unityでは複数のアニメーションの混合システムがあるのでなめらかにアニメーションを切り替えることも簡単にできます。

MVCのスクリプト構成

多くのプログラムでMVCのデザインパターンを使います。
MVCはModel,View,Controllerの省略となります。

Model とはデータを保持するスクリプトのことです。
Viewとは、ユーザーに表示されるものを管理するスクリプトです。
Controllerとは、ViewとModelの架け橋となるスクリプトです。

少し複雑なので、ニュースのウェブサイトのトップページを例としましょう。

  1. まず、Controllerがどのページにアクセスしているかを判定する(今はトップページ!)
  2. 次、トップページに最近の5個のトップストーリーを表示させる決まりがあるとすると、最近の5個のトップストーリーのデータをModelのスクリプトから取得する(Modelスクリプトはデーターベースに尋ねたりするでしょう)
  3. その次にControllerはそのデーターをトップページ用のViewクリプトに渡す
  4. 最後にViewスクリプトはそのデーターをウェブページに埋め込んで、訪問者に表示させる

ゲームも同じく、MVCで作る事ができます。

  1. まず、Controllerがどの面をロードすべきかを判定する
  2. 次、その面に出てくるオブジェクトの場所や状態をModelのスクリプトから取得する
  3. その次にControllerはそのデーターをゲームを可視化するViewクリプトに渡す
  4. 最後にViewスクリプトはそのデーターをゲームに埋め込んでプレーヤーに表示させる

結果的に言うとゲーム開発にMVC構成を使ってよかったと思います。
今後のゲーム・プロジェクトにもMVCのデザインパターンを活用しようと考えています。

ただし、ウェブやスマホアプリケーションに比べてゲームのView系のスクリプトはより一層複雑です。3Dモデル、特殊効果、 シェーダー、アニメーション、照明、効果音、音楽など、ゲームで取り扱うView系のスクリプトが多いので、大きなプロジェクトに着手する前にこれらのスクリプトをどう管理するかあらかじめ考える必要があると思います。

同期と非同期の処理

プログラミングで「同期処理」と「非同期処理」があります。

・同期処理とは、順番に実行される処理のことです。
サンドウィッチを作ることは同期処理です。まずはパンを置く。次はバター塗り。次はトマトやハムやレタスなど。そして、最後にはまたパンを。

・非同期処理とは、同時に実行される処理のことです。
スパゲッティを作ることは非同期処理です。まずはソースを炒める。ソースをかき混ぜながらパスタを茹でる。パスタが出来上がったら皿に載せる。最後にソースが出来上がったらソースをかける。

多くのアプリケーションは「同期処理」のみを使います。
つまり手順をひとつひとつ完全に終わってから次の手順に進めます。

ただしゲームでは、「非同期処理」が出てくる場面が多いです。
アニメーションやパスファインディングやAIなど、非同期処理を使わざるを得ない場面が続出します。

非同期処理の例:銃士がターゲットを取得する計算

正直言うと多くの処理が同時に並行に動いてコードが少し複雑になってしまったところがあります。

今後のゲーム・プロジェクトにもこのような事が起きやすいかと思うので、複雑にならないよう非同期処理を管理する方法をあらかじめ考えるか、コールバック(「処理が終わったら教えてね!」的な特別なファンクション)を活用することを考えています。

スコープクリープ

ゲーム開発で1番気をつけるべきところはスコープクリープかと思います。
「スコープクリープ」とは、プロジェクトが進行するにつれてそのプロジェクトの範囲が少しずつ肥大化することです。

ゲームをデザインする時、「これも入れたいなぁ」「こんなこともできたらいいのになぁ」と思うことが多いですが、すべてを対応することはできません。どこからどこまで対応するかをはっきり決めて特別な理由がない限りはそれ以上増やさないことが大事かと思います。

そうしないとキリがないプロジェクトとなってしまいます。
趣味だけであればそれで問題ないですが、完成品を作り上げたい場合は多くの機能を雑に作るよりいくつかの機能をきちんと仕上げることが大切かと思います。

ゲームを公開する場合は、実際のプレーヤーのフィードバックを聞いてどの機能がどれぐらい要望されているかを確認することができ、順番にアップデートを出すこともできます。

まとめ

ゲーム制作のプロジェクトに挑戦してみてとても良かったと思います。

作り上げたゲームのアップデートや新しいゲームプロジェクトに取り掛かることを楽しみにしています。