社員技術ブログ

【社員ブログ】3D CG (3次元コンピューターグラフィックス) システム開発会社のプログラミング学習

こんにちは。ワイドソフトデザインのY.Mです。

3DCGシステム開発に関してネタが続く限り書きます。
そして、今回は3DCGシステム開発会社ならではのインターンや新入社員研修に関するお話です。
3DCGシステムを利用してグラフィカルにプログラミングの学習ができるということです。
※念のため、プログラミングしない場合のインターンや新入社員研修のパターンもありますのでご安心ください。

プログラミング学習における教材は?

プログラミングを学習するにあたり一般的には、
プログラム言語の基礎(変数や型、クラス、メソッド、条件分岐、繰り返し等)を覚え、
サンプルプログラムをコーディングしていくかと思います。
ここで重要な、そのサンプルプログラムは皆さんどうしていますか?

小難しく達成感も無いものでは、やはり最初の入り口で躓いてしまうのではないでしょうか。
もちろん、ふるいにかける別の目的がある場合も考えられますが。
その点、小学生向けのプログラミング教育など
Scratchでしたり実に分かりやすく見た目にも面白い教材になっています。

そこまでは無いにせよ、ワイドソフトデザインオリジナルの
3DCGシステムのベースであるエンジン(VENUS※)を利用すれば、
プログラムをグラフィカルに表現できて
何がどうなっているのか理解が進みやすく
学習テーマに合わせ柔軟な教材にできるメリットがあります。

※VENUSについてさらに詳しくは、以下をご覧ください。

https://www.widesoft.co.jp/service/development/venus

3DCGを用いたプログラミング学習の事例

ここでは過去にあった事例を紹介したいと思います。
言い訳ですが、その場で何をつくるかテーマを決めて始めるため
スピードと柔軟性重視で3Dの表現は簡易なものです(笑)。

①大事なテーマを決めよう

せっかくなら、つくり甲斐のあるテーマにしたいところです。
学生の場合は研究テーマがあればそれと関連したものにできないか相談します。
自動経路探索を勉強していた学生とは、複合施設内にて
人が移動する経路と様子を3D表現したこともあります。
また、特にテーマがなければ、その場で身近なもので
何がどのようにプログラムされているかを考えてみます。
今回の事例では「エレベーター」を取り上げました。

②必要なものを洗い出し要件定義しよう

何階建ての建物で、エレベーターは何基あり、
どの時間帯にどれだけの人の移動があり、
どのような判断のもとエレベーターは動くのか。
人が待つストレス、使用する電力量、効率的な動作、
きっとエレベーターの製造メーカー様は色々なことを考え
優れたアルゴリズムでプログラムされているでしょうが、
ここではシンプルに考えます。

③どのようにつくるか設計しよう

登場人物が出揃ったところで、どのようにつくるかを決めます。
汎用的に考えるためにも、建物、エレベーター、人あたりを
クラス化して、それぞれ大きさや位置、形などの情報を付け加えます。
そして、どれが何をするのか動作を決めます。
人は時間になったらエレベーターに向かう、
エレベーターは人が来たら迎えにいく、
その人の降りる先に移動するなどなど。
ここは最初から決めきれない、見えていない部分も多いかと思いますので
開発しながらブラシュアップしてもいいかもしれません。

④習うより慣れよで開発しよう

考えた情報や動作を少しずつコーディングしていきます。
最初は10:00にAさんが3階に向かうなど、決め打ちの固定の数値で、
余力があれば外部ファイル等に定義して
それを読み込んで動作できるといいです。
3DCGを扱うための仕組みはライブラリで揃っているため
その使い方だけ少し覚えます。
といっても簡単な形状をつくるくらいで事足ります。
3Dで表現されるので何かおかしなところがあれば
すぐに気付くことができます。

⑤仕上げるためにテストしよう

実際にデバッグ実行しながらおかしな動作を修正します。
個々の動作のテストと全体を通したテストなど
問題無いかを確認していきます。
開発した本人はついつい贔屓目に見てしまうので別の人が望ましく
複数人いればお互いにテストし合うのもありです。
更に言えば、如何に最初の設計で品質を上げておけるか、
シンプルにしておけると不具合も少なくなります。

⑥つくりっぱなしにならないよう発表しよう

せっかくなのでつくったものは披露してもらいます。
アプトプットとインプット大事です。
どこが苦労したのか、工夫したポイントはどこか、
今後改良できるところは無いか、
振り返って整理して次に活かせることが大事です。
そして、色々な人の意見を聞いて参考にできるとなおいいかと思います。

3DCGを用いたプログラミング学習のまとめ

このように、3DCGを確認しながら開発することで、
おかしなところがあればすぐに気付けたり、出来上がっていく様を楽しめたり、
3DCGシステムを利用してグラフィカルにプログラミングの学習ができるメリットは大きいです。
3DCGシステムのベースであるエンジンを保有しているからこその、
ならではのプログラミング学習かなと思うところです。
と言っても、簡易な3D表現に留まっているので
もう少し教材として整備しておいてもいいのかもしれません。

そんな3DCGシステム開発の世界に興味を持っていただければ幸いです。

関連記事

TOP