Vol.47
スイート千鳥エンジン体験セミナー
【イエイリ・ラボ 家入龍太 プロフィール】
BIMやi-Construction、IoTなどの導入により、生産性向上、地球環境保全、国際化といった建設業が抱える経営課題を解決するための情報を「一歩先の視点」で発信し続ける建設ITジャーナリスト。「年中無休・24時間受付」をモットーに建設・IT・経営に関する記事の執筆や講演、コンサルティングなどを行っている。
公式ブログはhttps://ieiri-lab.jp
建設ITジャーナリスト家入龍太氏が参加するFORUM8体験セミナーのレポート。
新製品をはじめ、各種UC-1技術セミナーについてご紹介します。製品概要・特長、体験内容、事例・活用例、イエイリコメントと提案、製品の今後の展望などをお届けしています。
はじめに
建設ITジャーナリストの家入です。3Dモデルで建物や土木構造物を設計するBIM(ビルディング・インフォメーション・モデリング)の世界では、3Dモデルを使ってウォークスルーやCGアニメーション、VR(バーチャルリアリティー)など、映画のようなコンテンツを作ってプレゼンテーションに利用することがよく行われています。
こうしたCGアニメ的な使い方をする世界でここ数年「Unity」や「Unreal Engine」などの言葉を聞く機会が増えました。これらは3Dゲームを開発するためのゲームエンジンなのです。
同じ3DでもBIMとゲームでは全く違う世界のように思われますが、リアルタイムに変化する状況に合わせて、CGアニメのストーリーを変える必要がある場合には、BIMモデルを軽くてスピーディーな動きが実現できるゲームエンジンに移植して、動的なコンテンツを作ることもできるのです。
今回のセミナーは、フォーラムエイトが開発・販売する3Dゲームエンジン「スイート千鳥エンジン」の基本的な使い方や、リアルタイムVRシステム「UC-win/Road」とのデータ連携について学びます。
製品概要・特長
「スイート千鳥エンジン」は、2006年に誕生した日本初の国産クロスプラットフォームエンジン「Chidori」のリニューアル版製品です。フォーラムエイトは2019年11月12日、開発元の株式会社プレミアムアーツ(東京都港区虎ノ門5-11-1 、代表取締役:山路和紀)より、「千鳥エンジン」の著作権を譲り受けました。
千鳥エンジンはWindowsはもちろん、スマートフォン用のGoogle Android OSやWEBブラウザー、各種ゲーム機に至るまでマルチプラットフォームに対応しています。アプリケーション開発で利用する基本機能が全てそろっているので、素早いコンテンツ開発が可能です。対応プラットフォームは今後も順次、拡張していきます。
用途としてはゲームだけでなく、業務用アプリやデジタルサイネージ、AR(拡張現実)など、CGを活用した各種ソリューションにも使えます。そのため、既存のアプリもスイート千鳥エンジンによって、まったく新しい3Dソリューションに変身することができるのです。
フォーラムエイトでは、プレミアムアーツ社の協力のもと、千鳥エンジンのリニューアル開発を進め、各種機能を強化・拡張し、2020年春に新製品としてリリースしました。商用利用は有償ですが、個人の非商用利用は無償です。そのため、学生や生徒のプログラミング教育などでも利用しやすく、コンピュータソフトウェア協会(CSAJ)主催のU-22プログラミングコンテストや、フォーラムエイト主催の学生プログラミングワールドカップ(CPWC)などでの利用を呼びかけています。
▲著作権譲渡の調印式で。プレミアムアーツ代表取締役の山路和紀氏(左)とフォーラムエイト代表取締役社長 伊藤裕二氏(右)
▲パソコンからゲーム機まで様々なプラットフォームに対応
体験内容
7月14日の午後1時半から4時半まで、Zoomによるオンラインセミナー形式で「スイート千鳥エンジン」が開催されました。講師を務めたのは、フォーラムエイトシステム開発マネージャーの岡木勇さんと、システム開発グループの福田康範さんです。
当日のスケジュールは、スイート千鳥エンジンの概要を約30分で説明した後、スイート千鳥エンジンを使って「もぐらたたきゲーム」の作成実習やフォーラムエイトの「VR Design Studio UC-win/Road」とのデータ連携の実習を行いました。最後に今後の開発予定や質疑応答を行う、というカリキュラムでした。
▲7月14日にオンラインで開催されたスイート千鳥エンジン体験セミナーの様子
スイート千鳥エンジンの強みは、簡単にマルチプラットフォーム向けのCGコンテンツが開発できることです。「C/C++」で提供されているライブラリには、2Dや3Dグラフィックやサウンド、カメラ、ライティングといったビジュアル系の機能のほか、他のソフトと連携する入出力プログラムや座標変換などに使われる行列演算、そしてネットワークライブラリなどもあります。また、対応するOSはWindowsのほかiOSやAndroid、さらには各種ゲーム機にも対応しています。
他のアプリとの連携機能も優れています。すでに制作されたアプリのソースコードを生かして、3DCGの描画を組み込むことでビジュアルなプロクラムに仕上げるなど、既存資産を生かし、CGを付加価値として利用したコンテンツを作れるのです。
このほか、ゲーム用のインターフェース「Kinect」と連携させてインタラクティブなコンテンツ制作や、研究開発などにも柔軟に使用することができます。
グラフィックな機能には「HDシェーダーライブラリ」が用意されています。空や水面、天候などの表現のほか被写体深度を調整したり、水彩画フィルターのようにアーティステックな表現を行ったりするのに使えます。
▲ガラスの質感を出す「ガラスシェーディング機能」
▲3次元データや光の疑似計算による降雪の表現
ゲームアプリでは素早くデータを入力したり、途中で分かりやすくメッセージを表示したりすることも求められます。そこで2Dのユーザーインターフェースデータを簡単に作れる「UI制作ツール」を備えています。
このほか、ムービー作成アプリ「Maya」のプラグインとしてエフェクトを効率的に作成できる「エフェクト制作ツール」も備えています。
今後も最新ハードにも対応できるように、対象プラットフォームを追加したり、表現方法を拡充したりと、機能拡張は続いていきます。
続いて行われた実習では、おなじみの「もぐらたたきゲーム」のバーチャル版を作りました。といっても、すべてのプログラムを書いている時間はとてもありません。そこで、あらかじめ用意されたコードを変更したり、追加したりすることで、プログラムの動作がどのように変わるのかを体験しました(画像1)。
▲画像1:操作実習の題材に使われた「もぐらたたきゲーム」
まずは「千鳥エンジン」の初期設定を行い、初めの実習データを読み込みました。プログラミング作業を行うフォルダへのパス設定や、「ビルド」「実行」「デバッグ」などよく使うコマンドが、画面上のどこのメニューに入っているのかを確認しました。
実習データには、すでに9個の穴にそれぞれもぐらが1匹ずつ潜んでいる状態のプログラムが入っています。このプログラムに「TaskMan::」で始まるコードを1行書き加えてみます。そしてビルド、デバッグを行うと、ナント、9匹のもぐらが全員、穴から顔を出したではありませんか。このように、プログラムをちょっと変えただけで、画面に表示されるものが大きく変わるのが、ゲーム開発ソフトの面白さと言えるでしょう(画像2)。
今度は穴に引っ込んでいるもぐらのうち、1匹だけ顔を出させる部分を作りました。もぐらの番号をプログラム中に書いておき、エンターキーを押すとそのもぐらが出てきました。このもぐらの番号を「乱数」で設定するとエンターキーを押すたびに違うもぐらが出てくるようになります。ちょっとずつプログラミングとは何かがわかってきました(画像3)。
▲エンターキーを押すたびに違うもぐらがでてくる
続いて穴から顔を出したもぐらをクリックすると、穴の中に引っ込むアニメーションを実行します。この動作を行う部分は、「飛び出す」「待機する」「たたかれて潜る」と、時間切れで「たたかれずに潜る」という四つのコードで構成されています。さらに、穴に潜る途中や、潜り終わったもぐらはたたけないようにするための判定を行うif文もコード中に含まれています。もぐらをクリックすると穴に引っ込むという単純な操作を行うコードだけでも、様々な場合分けや条件の判定という機能が含まれていることがわかります。
さらにもぐらが出てくるまでの時間設定や、ゲーム終了までの時間設定を行ったり、もぐらをたたいた回数をスコアとして表示するスコアパネルを追加したりするとだんだん、ゲームらしくなってきました(画像4)。
▲もぐらをたたいた回数を表示するスコアパネルが追加された
最後はゲームの開始と終了時に表示するボタンと追加です。また、もぐらの動作速度を制御するパラメーターを変更することでゲームの難易度を変える機能も追加して、もぐらたたきゲームが完成しました(画像5)。
▲完成したもぐらたたきゲーム
2番目の実習は、リアルタイムに景観や交通流、災害などをVR(バーチャルリアリティー)空間でシミュレーションできる「VR Design Studio UC-win/Road」と「千鳥エンジン」とのデータ連携です。実習では、UC-win/Road上のラーメン店の建物モデルをスイート千鳥に持ってくる過程を体験しました。
▲UC-win Road上のラーメン店モデル
まずはUC-win/Roadを起動して、ラーメン店の建物を道路わきに配置します。そして開発中の「エクスポート機能」を利用して、ラーメン店の建物モデルを「FBX形式」で書き出します。テクスチャー形式にはスイート千鳥エンジンに対応した「DDS形式」を指定しました。
今度はスイート千鳥エンジンを起動して、FBX形式で保存されたラーメン店モデルを読み込みました。すると同じテクスチャーのラーメン店がスイート千鳥エンジンの中に登場しました。
▲FBX形式のデータをスイート千鳥エンジンに読み込んだところ
UC-win/Road上のモデルをスイート千鳥エンジンに持ってくる方法を体験したところで操作実習は終わりました。
イエイリコメントと提案
フォーラムエイトの製品ラインアップはこれまで、エンジニアリング分野のプロ向けソリューションが中心でしたが、最近は3Dモデリングソフト「Shade3D」や今回、紹介したゲーム開発ソフト「千鳥エンジン」といったコンシューマー向けのコンテンツを制作するシステムも充実してきました。
交通事故の防止や防災、避難訓練などの分野では、実際の挙動に基づいた高度なシミュレーション結果を、一般の人にわかりやすく、興味を持ってもらえるように見せることが必要です。
自分が洪水や火災などの現場に居合わせたときの避難行動の結果を表現するコンテンツなどを作るときは、ゲーム形式にするとわかりやすく、「ベストプラクティス」を目指して何度もトライすることになります。その繰り返しが、訓練となり、いざという時の行動に結びついてきます。
千鳥エンジンが一般の人に防災意識を高めるコンテンツの制作などで、広く使われていくことを期待しています。
(Up&Coming '20 秋の号掲載)