Manuals
Manuals




This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English

3D モデルのインポート

Defold は、glTF 2.0(GL Transmission Format)形式のモデル、スケルトン(skeleton)、アニメーションをサポートしています。3D モデルには .gltf または .glb ファイルを使用します。glTF は、ゲームエンジンやリアルタイムアプリケーションで 3D データの転送と読み込みを行うために設計された現代的な形式です。

Maya、3ds Max、SketchUp、Blender などのツールを使用して、3D モデルを作成したり glTF に変換したりできます。

Blender は、3D モデリング、アニメーション、レンダリングに対応した、高機能で人気のあるプログラムです。Windows、macOS、Linux で動作し、https://www.blender.org から無料で入手できます。

Blender 内のモデル

Defold へのインポート

モデルをインポートするには、.gltf または .glb ファイルを Defold エディターの Assets ペイン にドラッグ&ドロップします。

glTF の保存方法には、主に次の2つがあります。

  • .glb は単一のバイナリファイルです。モデルデータが含まれ、テクスチャ画像がまとめて格納されている場合もあります。モデルを1つのファイルとして移動または保存したい場合に便利です。
  • .gltf はテキストベースの JSON ファイルです。通常、メッシュ(mesh)データ用の別の .bin ファイルと、.png.jpg などの個別のテクスチャ画像を参照します。この形式を使用する場合は、参照されるすべてのファイルをプロジェクトに追加し、それらの相対パスを維持します。

Defold でモデルにテクスチャを使用する場合は、テクスチャ画像を別のアセットとしてインポートします。元の glTF/GLB ファイルに画像が埋め込まれている場合でも、モデルコンポーネント(model component)のマテリアル(material)のテクスチャプロパティを通じて、テクスチャをコンポーネントに割り当てる必要があります。

インポートしたモデルのアセット

Defold 1.13.0 以降では、インポートした glTF ファイルの位置とトランスフォーム(transform)が保持され、インポート時にモデルが自動的に中央へ配置し直されることはありません。エディターのプレビューとランタイムでは、インポートしたトランスフォームが一貫して使用されます。スキニング(skinning)を適用したメッシュやボーンを親に持つメッシュは、スケルトンを基準とするローカルトランスフォームを保持し、リジッドメッシュは平坦化後のワールド空間での配置を保持します。

古いバージョンの Defold で作成したモデルを再インポートした後に位置や向きが変わった場合は、Blender などの制作ツールでトランスフォームを修正し、.gltf または .glb ファイルを再度エクスポートします。

モデルの使用

モデルをインポートしたら、モデルコンポーネントで使用します。

  1. Assets ペインで New... ▸ Model を選択して Model ファイルを作成するか、Add Component ▸ Model を選択してゲームオブジェクト(game object)にモデルコンポーネントを直接追加します。
  2. Mesh プロパティに、メッシュを含むインポート済みの .gltf または .glb ファイルを設定します。
  3. アニメーションを持つモデルでは、Skeleton プロパティにスケルトンを含む .gltf または .glb ファイルを設定します。メッシュ、スケルトン、アニメーションをまとめてエクスポートした場合、これは多くの場合 Mesh と同じファイルです。
  4. アニメーション用の Animation Set ファイルを作成し、Animations プロパティに割り当てます。アニメーションを自動的に開始したい場合は、Default Animation を設定します。
  5. Material プロパティに、モデルに適したマテリアルを設定します。組み込みの model.materialmodel_instanced.materialmodel_skinned.materialmodel_skinned_instanced.material ファイルが出発点として役立ちます。スキニング用のマテリアルは、GPU でスキニングを実行できるようにローカル頂点空間を使用します。GPU でスキニングするモデルやインスタンス化されたモデル用のカスタムマテリアルでも、ローカル頂点空間の使用を推奨します。グラフィックスアダプターの要件については、モデルのマニュアルを参照してください。
  6. Texture などのマテリアルのテクスチャプロパティに、インポートしたテクスチャ画像ファイルを設定します。マテリアルが複数のテクスチャを使用する場合は、対応するマテリアルのテクスチャフィールドにそれぞれのテクスチャを割り当てます。

glTF へのエクスポート

エクスポートした .gltf または .glb ファイルには、モデルを構成するすべての頂点、辺、面に加え、定義されていれば UV 座標 (テクスチャ画像のどの部分がメッシュの特定の部分に対応するかを示す座標)、スケルトン内のボーン、アニメーションデータが含まれます。

  • ポリゴンメッシュの詳しい説明は、http://en.wikipedia.org/wiki/Polygon_mesh にあります。

  • UV 座標と UV マッピングについては、http://en.wikipedia.org/wiki/UV_mapping で説明されています。

Defold では、エクスポートするアニメーションデータにいくつかの制限があります。

  • 現在、Defold はベイクされたアニメーションのみをサポートしています。アニメーションには、位置、回転、スケールを個別のキーとしてではなく、各キーフレームでアニメーションする各ボーンの行列が必要です。

  • アニメーションの補間には線形補間が使用されます。より高度なカーブ補間を行う場合は、エクスポーターでアニメーションを事前にベイクする必要があります。

要件

モデルをエクスポートするときは、glTF のサポート状況がツールやエンジンによって異なる場合があることに注意してください。glTF 2.0 を使用し、テクスチャを使用するモデルには正しい UV 座標があることを確認します。また、モデルコンポーネントに割り当てるテクスチャ画像は別途インポートします。

glTF 形式の完全なサポートを目指していますが、まだ完全には対応していません。 不足している機能がある場合は、Defold のリポジトリで機能リクエストを作成してください。

テクスチャのエクスポート

モデル用のテクスチャがまだない場合は、Blender を使用してテクスチャを生成できます。この操作は、モデルから余分なマテリアルを削除する前に行うことをお勧めします。まず、メッシュとそのすべての頂点を選択します。

すべての頂点を選択

すべての頂点を選択したら、メッシュを展開して UV レイアウトを作成します。

メッシュの展開

続いて、UV レイアウトを、テクスチャとして使用できる画像にエクスポートします。

UV レイアウトのエクスポート

UV レイアウトのエクスポート結果

Blender を使用したエクスポート

Blender の File ▸ Export ▸ glTF 2.0 (.glb/.gltf) を使用してモデルをエクスポートします。

Blender を使用したエクスポート

選択したものだけをエクスポートしたい場合は、エクスポート前に1つまたは複数のオブジェクトを選択し、Selected Objects を有効にします。

Format のオプションから1つ選択します。

  • glTF Binary (.glb) は1つのファイルを作成します。モデルを単一のアセットとして簡単に移動または保存したい場合に使用します。
  • glTF Separate (.gltf + .bin + textures) は、モデルの記述、バイナリデータ、テクスチャをそれぞれ別のファイルとして作成します。テクスチャ画像を編集したり、Defold で個別に割り当てたりしたい場合に使用します。

モデルにアニメーションが含まれる場合は、アニメーションのエクスポートを有効にし、アニメーションがベイクされていることを確認します。モデルにテクスチャを使用する場合は、メッシュが UV 展開されていることと、テクスチャ画像が PNG や JPEG など Defold でインポートできる形式でエクスポートされていることを確認します。

Blender を使用したエクスポート