271 Views
November 28, 18
スライド概要
2018/11/22に開催されたUnity道場 建築スペシャルの講演スライドです。
講師:黒河 優介(ユニティ・テクノロジーズ・ジャパン合同会社)
関連動画:Unity BIM Importerを使ったウォークスルーアプリ開発のハンズオン
https://www.youtube.com/playlist?list=PLFw9ryLdiLzbnGb25sWQx3zdN01pJ4hIt
Unityのイベント資料はこちらから:
https://www.slideshare.net/UnityTechnologiesJapan/clipboards
リアルタイム3Dコンテンツを制作・運用するための世界的にリードするプラットフォームである「Unity」の日本国内における販売、サポート、コミュニティ活動、研究開発、教育支援を行っています。ゲーム開発者からアーティスト、建築家、自動車デザイナー、映画製作者など、さまざまなクリエイターがUnityを使い想像力を発揮しています。
ユニティ・テクノロジーズ・ジャパン合同会社 エンタープライズコンサルティング ディベロッパーリレーションマネージャー/エンジニア 黒河 優介
本⽇のアジェンダ • Unityでの基本的な考え⽅について • Unityでのアプリケーション作成について • 作成したアプリケーションのVR/AR対応 • 制作のためのTips情報
Unityについて • Unityはアプリケーションを制作するためのソフト ウェアです • 元々がゲームを作成するために作成されたソフト ウェアなのでゲームエンジンと呼んでいます • 3Dグラフィックスを扱ったインタラクティブなコ ンテンツの制作を得意としています
Unityでの基本的な考え⽅ • Unityで作成されたアプリケーションは以下の3つの 要素で構築される • Scene 空間 • GameObject 物 • Component 振る舞い
Scene 空間 GameObject 物 Component 振る舞い
Sceneについて • ⾃宅の部屋/学校の教室/屋外の街並みなど、⼀つの 空間毎に⼀つのSceneとして構築していきます • Sceneの中には複数のGameObjectが配置されてい ます
Scene⼀つで⼀つの空間を構築します
Scene中には複数のGameObjectが 配置されています 照明器具 ドア ベット テレビ カメラ 棚 床
Scene中には複数のGameObjectが 配置されています 実際のUnityでの画面です。 右側のリストがシーン中 にあるオブジェクト一覧 です
GameObjectとComponent について • GameObject単体では「Scene中にある何か」でし かありません • 「画⾯中に物体として映る」 「カメラとして映像を映す」というのは Componentの振る舞いによって起こります
GameObjectとComponent について 何もComponentがついて いないオブジェクトは、 Scene中に存在する何か でしかありません
GameObjectとComponent について 「画面中に物体として映 る」というComponentを つける事で画面に表示さ れました
GameObjectとComponent について Componentが持っている データを書き換える事で 形状が変わりました
Component について 基本的な機能についてはUnity側で提供していますが、 アプリケーション独⾃の振る舞い等については、ア プリケーション開発者が、C#スクリプトで独⾃に追 加することが出来るようになっています。 例:「カーソルキーが押されたら移動する」等
Component 物理挙動をする ⾳が出る 絵が切り替わる テレビ Component GameObject Scene Component Component Component Component GameObject GameObject ⾃宅の部屋の中 学校 屋外の街並み
Component 物理挙動をする ⾳が出る 絵が切り替わる テレビ Unityの基本的な考え 空間(Scene)を作り 物(GameObject)を配置し 振る舞い(Component)を与え Component GameObject Scene Component Component Component Component GameObject GameObject ⾃宅の部屋の中 学校 屋外の街並み
Unityでのアプリケーション作成について Projectを作成 ProjectにAssetをImport UnityEditor上でScene等のデータ構築 C#スクリプトで振る舞いを実装 完成!
Projectを作成 基本的に 1つのProjectで1つのアプリ ケーションとなります。 Project内には、様々な素材データや C#スクリプト、シーンを入れておく ことが出来ます
ProjectにAssetをImport Unity外で作成した3Dモデルデータ・ 音声データ・画像データ(Texture)等 の素材となるAssetをProjectへ入れる 作業をImportと言います
Unityで扱える形式について • Texture(画像データ) • .bmp/.png/.tif/.tga/.jpg/.psd 等の⼀般的なフォーマットはサポート • ⾳声データ • .mp3/.ogg/.wav/.aiff/.aif/.mod/.it/.s3m/.xm • 3D Modelデータ • .fbx/.dae (Collada)/.3DS/.dxf/.obj/.skp
BIMデータについて • Unityの標準機能ではBIMデータを扱うことが出来ま せん • ただ拡張機能として 「Unity BIM Importer」を提供 しており、この機能を使うことでBIMデータも扱う ことが出来ます。
Unity起動画⾯
SceneView SceneView: シーン上に配置してあるものを編集・ 確認する場所です
SceneView GameView: 実際のゲーム画面です。 Cameraオブジェクトから映された画面 を表示します
再⽣停⽌について 画面中央上にある再生ボタンを押すと、 アプリケーションが進行状態となり、 実行結果がGameViewで確認が出来ま す。
HierarchyView HierarchyView: シーン上に配置してあるものを リスト化して出されています
ProjectView ProjectView: プロジェクトにあるアセットを 管理する部分です
InspectorView InspectorView: 現在選択中のもののパラメーター等を 編集する場所です
作成したアプリケーションを書き出す • Buildをすることで、配布⽤のアプリケーションを 作成できます • windowsのexeファイルやAndroidのapkファイル等 • Unityでは数多くのプラットフォームをサポートし ています • Windows/MacのPCに限らず、iPhone/Androidなどのス マートフォン、家庭⽤ゲーム機にも対応しています
Build⽅法 左側が対象となるプラットフォームの選択。 対象のプラットフォームにSwitchしてから、 右下のBuildボタンで対象プラットフォーム向 けのアプリケーション書き出しが出来ます
VR対応のプログラムにする場合 設定画面で 「Virtual Reality Supported」 でチェックボックスをONにするだけです。
対応するVRの種類を選択 対応するVRのSDKや優先度も 設定できます
両⽬の⽴体視にも⾃動で対応 左右の目で位置をずらし た画面を描画することで 立体視に対応します
更に現実世界の頭の動きと同じ動きを Scene内のCameraが勝⼿にしてくれます
AR / MR対応について • AR • 標準ではないので、拡張プラグインをプロジェクトに組み 込む形になります • https://unity3d.com/solutions/mobile-ar • MRについて • Microsoft様から出ている Toolkitを利⽤して作成する形にな ります • https://github.com/Microsoft/MixedRealityToolkit-Unity
こんな形でUnityでアプリケーションを作成 する流れを紹介してきました。
絵が出るところまでは早くたどり着けるの で、今⽇は是⾮Unityを体験して何かお持ち 帰りください
制作のためのTips • LightMapのBakeについて
LightMapのBakeについて • ライティング計算をキチンと⾏おうとすると、⾮常に重くリアルタイム での表⽰が出来なくなってしまいます。 • 光が直接照らす直接光以外にも、物体に反射して⽣まれる間接光はリ アルタイムでは計算しきれません • 事前に計算を⾏い、その結果を焼き付けておくことでリアルタイムでも きれいな絵が出るようにする⽅法です
LightMapのBakeについて Before After
LightMapのBakeについて 赤・緑 それぞれの壁からの間接光を受けているため、 左側は緑色を帯び、右側は赤色を帯びています。
LightMapのBakeにより間接光をいれて、 より綺麗に
まとめ • Unityは Scene – GameObject – Componentで世界を構成 • 「ProjectにAssetをImport・シーンの構築・C#スクリプトで新た な振る舞いの作成」を繰り返してアプリケーションを作成 • 切り替え ⼀発で別のプラットフォームへ対応 • Lightingをキチンと設定してより綺麗な絵に