C/C++によるプログラミング
前回、前々回と、学部2年生 春・夏学期(1学期)の高度情報処理教育プログラムをご紹介した。今回は秋・冬学期(2学期)の様子を。
情報処理は、2年生秋・冬学期に開講する選択科目である。コンピュータサイエンスの基礎、プログラミングの設計方法、C/C++の基本文法を理解しながら、いくつかのアルゴリズムをC/C++でプログラミングする方法を身に着ける。
情報処理を講義する情報教育室では2-3年前に、統合開発環境(IDE: Integrated Development Environment)としてマイクロソフト社のVisual Studioが数多くのPCにインストールされ、普段接するWindows環境でプログラミングを学べるようになった。よって、学生個人のPCにVisual Studioをインストールして、課題を自宅で進めることも可能となる。授業内容は以下の通りである。
- システム開発、プログラム設計
- アルゴリズムと計算時間(オーダ)
- C: C言語と開発環境
- C: 変数、定数、宣言、演算子、型変換
- C: 分岐制御、反復制御、入力、出力、ファイル
- C: 演習、解説
- C: 関数、引数、外部変数と局所変数、再帰、配列
- C: ポインタ、関数へのポインタ
- C: 構造体
- C: 演習、解説
- C++: C++言語とCとの相違点
- C++: クラス、継承
- C++: 配列、ポインタ、参照
- C++: 演習、解説
C/C++言語は、国際的に広い分野で使われていること、コンピュータの動作理解に役立つこと、他の言語取得に役立つ基本的な言語であること、から選定している。また近年では、インターンシップの申し込み条件にC言語の習得状況が問われることも増えてきた。授業内容の後半には、C++が含まれているが、C++の全てをひとつのセメスターで講義することはできない。ただ、C++を通じてオブジェクト指向プログラミングに触れ、クラスを設計する経験は大切であると考えている。なぜなら、オブジェクト指向のプラグミング言語は市井に普及しており、それらのサンプルを触る必要が少なくないからである。
プログラミング演習は、プログラムの理解だけでなく、論理的思考力や物事を仕上げる力(段取り力)を習得する上でも大切なトレーニングであるといえるだろう。
VR/ARシステムを作る
環境・エネルギー工学コア演習・実験 第1部は、情報処理と同時期に開講する選択必修科目である。受講生は14個の演習テーマから4つを選択し、選択した4つの演習テーマを各3週ずつ演習していく。(教員は同じ演習テーマを4回繰り返すことになる…)各回の受講人数は6名程度である。
著者の提供する演習テーマは大まかには「3次元環境設計シミュレーションの基礎」である。内容として、基礎的な理論・技術だけでなく、国際会議で発表したての最先端技術を取り込んだ演習内容を作るように心がけている。この両立を3週間の演習で行うのは「言うは易く行うは難し」であるが、最先端技術に少しでも触れてもらうことは大切であると考えている。そこで、昨年(2016)度は、ゲームエンジン(Unity)を基盤としてVR/ARシステムを開発することを演習内容とした。3週間の内容は以下の通りである。
- Unityチュートリアル(球ころがしゲーム)の実施
- カフェBIMモデルをUnityで表示、VR(Virtual Reality)シミュレーション
- カフェBIMモデルをAR(Augmented Reality)で表示(Unity)、建設予定地で実スケールでAR体験
第1週は、球ころがしゲームの作成を通じて、Unityで簡単なゲームを作成する。Unityが提供する単純なモデルやユーザインターフェースだけでゲームを短時間で構築し、Unityの簡単な使い方について理解を深めてもらうものである。ユーザは玉を操作して、範囲内にあるカプセルを全て回収する。玉が赤色のバーに触れたらゲームオーバー。Unity内部で完結した練習問題である。
第2週は、春夏学期で実施したBIMソフトを用いたカフェ設計(前々号)の発展と位置づけ、カフェBIMモデルをUnityにインポートして、Unity上でアセットと呼ばれる外部プログラムやオブジェクトのインポートと設定、教員側で作成した太陽光シミュレーションや照明変化プログラムの実装などを行う。照明のオン・オフや、照明の色を変更するなどを演習課題としている。Oculus Rift等のHMD(ヘッド・マウント・ディスプレイ)でもVR体験する。
第3週は、まず、カフェBIM設計モデルを模型のようにAR表示させる。紙の平面図の上に、カフェの3次元モデルが現れる。ARはVRと違って、現実空間とのつながりがあるため、受講生は新鮮に感じるようである。次に、研究室で開発中の屋外型ARシステム1) にカフェBIMモデルを入力して、建設予定地で実スケール体験する。屋外型ARシステムはC/C++言語で記述されており、このプログラムのハンドリングは学部2年生にとって敷居がまだ高いため、TA学生が主体的に作業してくれた。一方、受講生にとっては、自分ではじめて設計した建物を、建設予定地で実物大で眺めることができ、良い体験になっているようだ(図1)。
図1 建設予定地・実スケールでのARを用いた設計シミュレーション
参考文献
K. Inoue, T. Fukuda, N. Yabuki, A. Motamedi and T. Michikawa: 2016, Post-Demolition Landscape Assessment Using Photogrammetry-based Diminished Reality (DR), Proceedings of the 16th International Conference on Construction Applications of Virtual Reality (conVR2016), 689-699.
PDF: http://y-f-lab.jp/fukudablog/files/1708machinami_FukudaFinal.pdf