目次 このページのソースコードを表示
公開日:
更新日:

nodecゲームエディタを使用して、3Dモデルを取り込む方法を説明します。

環境

このチュートリアルでは、以下の環境を想定しています。

サンプルプロジェクト

手順

1. 3Dモデルファイルを用意する

読み込みたい3Dモデルデータを用意します。

内部では、読み込みにassimpライブラリを使用しており、多くの3Dモデルデータ形式(obj, stl, fbx等)に対応しています。

今回は、blenderで作成しfbxファイルに出力したシンプルな立方体を例に使います。

cube.fbx

2. エディタから3Dモデルファイルを取り込む

ゲームを立ち上げて、エディタウィンドウを開きます。

3Dモデルの読み込みには、Asset Importerエディタウィンドウを使用します。

Source Pathに用意したモデルファイルへの絶対パスを入力します。
例: "C:/<path-to-model>/cube.fbx"

パスの区切り文字は/を使用してください

パスの区切りにはスラッシュ/を使用します。

Windowsで使われるバックスラッシュ\には対応しません。

Importボタンを押します。
モデルファイルが読み込まれ、ゲームシーンに配置するまでの設定を行っていきます。

項目説明
Resources

読み込んだ3Dモデルデータに含まれるリソース群。

Mesh, Materialが含まれます。

Resource Name Prefix

読み込んだモデル内のリソースは、それぞれファイルとして保存されます。出力されるファイルのディレクトリを指定します。

ディレクトリには、アプリとして使用しているリソースディレクトリ下のパスを指定します。今回の例では、org.nodec.hello-nodec-game/models/cube/とします。

出力先のパスが存在しているか確認してください

出力先のパスが存在しているか確認してください。

出力先のパスが存在しない場合、エラーが発生します。

Mesh

モデルに含まれるメッシュデータ。

Source

読み込み時のメッシュ名。

Target

保存するときのメッシュ名。ほかのTarget名と重複しないようにしてください。

Material

モデルに含まれるマテリアルデータ。

Target Path

保存するときのマテリアル名。ほかのTarget名と重複しないようにしてください。

Scene Export

ゲームシーンに配置するための設定。

Export

ボタンを押すと、上記のリソースデータがファイルとして保存され、読み込んだモデルがゲームシーンに配置されます。

上記の設定を行い、Exportボタンを押します。モデルデータ内のリソースがファイルとして保存され、モデルがゲームシーン上に配置されます。

今回の例では、以下のようなファイルが出力されます。

  • org.nodec.hello-nodec-game/models/cube/
    • Cube##mesh-0.mesh
    • Material.material

また、シーン上に新しくエンティティが追加されます。今回の例では、以下のようなエンティティが追加されます。

  • RootNode
    • Cube
    • Light
    • Camera

おそらく、Cubeが表示されていないと思います。このような場合、以下のような原因があります。

  • オブジェクトのスケールが極端に大きいか小さい
  • マテリアルの設定が適切でない

まず、オブジェクトのスケールを確認します。Cubeエンティティを選択し、アタッチされているコンポーネントからLocal Transformの詳細を開きます。Scaleの項目が100, 100, 100になっており、極端に大きいことがわかります。Scaleを1, 1, 1に変更します。

Cubeが表示されましたが、ライトの当たり方がおかしいです。これは、マテリアルの設定が適切でないためです。サンプルプロジェクトでは、Deffered Renderingを使用していますが、出力されるマテリアルファイルはForward Rendering用のものになっています。そのため、ライトの当たり方がおかしくなっています。のちの項目で、適切なマテリアルを設定していきます。このワークフローの改善は、今後の課題とします。

3. 適切なマテリアルを設定する

サンプルプロジェクトでは、Deffered Renderingを使用していますが、出力されるマテリアルファイルはForward Rendering用のものになっています。そのため、ライトの当たり方がおかしくなっています。レンダリングされるためには、適切なマテリアルを設定する必要があります。

Cubeエンティティを選択し、アタッチされているコンポーネントからMeshRendererの詳細を開きます。

Materialsの項目に出力されたマテリアルファイルが表示されています。今回の例では、org.nodec.hello-nodec-game/models/cube/Material.materialです。

今回、このマテリアルファイルを設定していきます。

エディタウィンドウから、Material Editorを開きます。Target欄に設定対象のマテリアルファイルorg.nodec.hello-nodec-game/models/cube/Material.materialを指定します。入力後、Enterを押すと、マテリアルの設定項目が表示されます。

今回Shaderorg.nodec.game-engine/shaders/pbr-deferを指定します。入力後、Enterを押し確定します。そうすると、正しくCubeが表示されました。

Material EditorSaveボタンを押すと、マテリアルファイルが保存されます。

このようなマテリアルの設定は、ほかにも以下の場合に必要となります。

  • テクスチャの指定

    モデルファイルでテクスチャが使用されている場合、手動でテクスチャファイルをリソースフォルダ内の配置し、マテリアルの設定からテクスチャを指定する必要があります。このワークフローの改善は、今後の課題とします。

「https://contentsviewer.work/Master/nodec-game-engine/editor-usage/how-to-import-model/docs」から取得