Unreal Engineをゲーム開発目的ではなくモデリングしたデータのレビュー、静止画作成用のビジュアルツールとして使用したいと以前から考えており、基礎学習から始め、ようやく業務で使えそうなレベルに近づいてきましたが、ネット上にある情報はゲーム開発を前提にしたものが多く、知りたい情報を入手するのにそれなりの時間がかかるというのが触り始めた当初の印象です。
環境の設定やマテリアルの作成などは比較的情報が入手しやすいものの、特に序盤で習得に苦労するのがレベル遷移を中心としたデータ構造にまつわる部分かなと思います。そこで、今回はなるべく簡単に、かつ必要最低限のデータ構成例を考えてみました。
Unreal Engine5のVersionは5.3.2です。
新規で空のレベル(Persistantレベル)を作成し、その中にモデリングしたデータや環境データなど、レンダリングに必要なデータをサブレベルとして登録します。これは、Migrate(移行)という機能を使ってPersistentレベルに取り込みます。
GrasshopperでモデリングしたデータはRhinoにBakeしたのち、自動でDatasmith Direct Importerを通してPersistentレベルに取り込みます。一方、Grasshopper以外でモデリングしたデータ(Aliasなどでモデリングしたその他のデータ等)はDatasmith File Importerを経由してUnreal Engineに取り込んだ後、Persistentレベルにサブレベルとして取り込みます。これは、大量のデータをDatasmith Direct Importerを経由させると通信に時間がかかるため、通信データ量を最小限に抑えるためにあえて別々の取り込み方法を採用しています。また、環境データなどは社内や個人でストックしているEnvironment_AとEnvironment_Bの2種類があるとの想定です。
実際に業務で使用するにあたり、レベルの切り替え(レベル遷移)をすることでデータの差し替えや環境の切り替えが可能な仕組みとしました。
レベルは元々、ゲームのステージごとに作り、それを切り替えることでステージを移動する(遷移する)仕組みになっているのですが、そのレベルをCADでいうところのレイヤーと同じ役割として使うということです。
レベルを単に一つだけに絞り、Outliner画面でフォルダを使って仕分けする方法でもできなくは無さそうですが、今後の応用的な使い方を想定した時、ブループリントやC++との相性の良さも考えると、レベルを切り替えて使う方がより利便性が高いと考えました。
1.親プロジェクトの作成
まずは親プロジェクトから作成していきます。
AUTOMOTIVE PRODUCT DESIGN & MANUFACTURINGからBlankを選択し、プロジェクト名をProject_xxとして作成します。
・親プロジェクトはサブレベルを格納するための空の容器としての役割のため、環境に影響するアクターは使わないので、Outliner画面にあるデータは全削除する。
・Content BrowserのContentフォルダ直下にあるMain LevelをリネームしてProject_xxに変更する。
・BlankDefaultフォルダも必要が無いので必要に応じて削除(Content Browserから直接削除できないので、エクスプローラー画面から保存先を開いて削除→UE再起動で対処可能)
プロジェクト名をEnvironment_Aとして起動する。
・Engineフォルダはシステムに関するデータ等があるため削除しないほうが良い。Content Browserの右端にある歯車マークを選択するとShow Engine Contentのチェックボックスを外して非表示の選択ができるので気になる人は非表示にしておく。
以上が終わったらセーブ&終了します。
2.Environment_Aの準備
手持ちで環境データ等ある場合はそちらを開く。以下は新規で作る際の簡単なサンプル制作例です。
・HDRIはStarter Contentsに入っているものを使用しました。
・セーブ前の状態は上の図のような感じです。Content BrowserのContentフォルダ直下にEnvironment_Aというサブフォルダを作成し、その中にすべてのデータを移動させます。
・取りこみ先を聞かれるのでContentフォルダを指定してOKボタンを押します。
・インポートするデータの種類にチェックを入れ、Tessellation OptionsはImport Rhino Meshes and UVsに変更してImportボタンを押します。
・データのインポートが終わったら、同じくOutLiner画面でいらない環境系アクターは削除し、フォルダを作成してインポートしたデータを格納します。
・移行するデータの選択ができます。必要が無いデータはチェックを外します。今回はすべてチェックが入っている状態でokボタンを押します。
・移行先のフォルダを指定する画面が出るので、Project_xxのContentフォルダまで指定した状態でフォルダーの選択ボタンを押します。完了したらUEを閉じます。
・Migrateがすべて終わったら、再度、Project_xxを立ち上げると上の図のような状態になります。Content BrowserのContentフォルダ内に各サブフォルダが並んでいる状態になります。
・この時点で親レベルが元のProject_xxから変更されてしまっているので、ツールバーのEdit→Project Settingの画面を開き、Maps&Modesの項目内にあるEditor Startup MapとGame Default MapをProject_xxに変更します。これは、次回以降、起動した時に開く最初のレベルを設定しています。
・次に、Content BrowserにあるProject_xxレベルをダブルクリックするとこのレベルが自動的にPersistentに設定されます。
・Levels画面を開き、Content Browserに取り込んだEnvironment_A、Environment_B、Bunnyの各種レベルアイコンをLevels画面にドラッグ&ドロップしてサブレベルとしてセットします。
・Grasshopperから出力するデータは、床面のデータにしました。ヴォロノイの立体形状を作り、RhinoにBakeします。
・フロアや光環境などいらないものはOutliner画面内で削除します。
・Outliner画面も同様にEnvironment_Aというフォルダを作成し、HDRIとPostProcessVolumeを格納します。
以上が終わったらセーブ&終了します。
3.Environment_Bの準備
・アクター画面からDirectionalLight、SkyAtmosphere、SkyLightをドラッグ&ドロップし、Outliner画面でDirectinal Lightの回転値を調整すると上の図のような感じになります。
・Environment_Aと同じく、Main Levelのリネーム、Content BrowserのContentフォルダ直下にEnvisonment_Bフォルダを作成してデータを格納、Outliner画面も同じくEnvironment_Bフォルダを作成してアクターを格納します。
以上が終わったらセーブ&終了します。
4.モデリングデータの準備
・これまでと同じく、再び新規でBunnyというプロジェクト名でUEを起動します。
・その後、Quickly Add to Projectボタン→Datasmith→File Importをたどっていき、さきほど保存した3dmファイルを選択します。
・Content Browserも同じくBunnyという名前のサブフォルダを作成し、その中にデータを移動させます。Main LevelもリネームしてBunnyという名前にします。
以上が終わったらセーブ&終了します。
5.データのMigrate(移行)
次に、データの移行に移ります。親レベルの中にサブレベルとして取り込む工程です。
・Environment_Aのプロジェクトを開き、Content Browserの中のContentフォルダの上で右クリック→Migrateを選択します。・次に、同じくEnvironment_BとBunnyについても同様の手順でMigrateを実行し、完了したらUEを閉じます。
・上の画像のような構成になったら作業は完了です。
6.Grasshopperのモデリングデータ
・マテリアルごとにレイヤーを分けた状態にしています。一通り作業が終わったら、Datasmith Direct Linkを使ってUEにデータを送ります。Datasmith Direct Linkの設定方法は以前のブログの記事に掲載済みのため省略します。
7.完成
・必要に応じてマテリアルの色味やカメラの設定を調整します。
・環境の切り替えはLevels画面の左端にある目のマークを選択/解除で操作します。ライティングの調整はOutliner画面のアクターを選択して行います。
以上、簡単なデータ構成の作り方の紹介でした。
























0 件のコメント:
コメントを投稿