Mesh
メッシュ とそれに対応する メッシュ は、3D環境と他のオブジェクトを定義します。
マークアップ
メッシュは衝突のためだけに使われるので、モデルの開発はあまり必要ありません。問題は、2Dスプライトに基づいてモデルの寸法をどのように定義するかだ。解決策は「マークアップ」だ。
基本的な3Dブロックは1x1x1メートルで、これは(遠近法がないため)正射投影では2つの2Dタイルに相当する:

Note
タイルのサイズは重要ではありません。この場合、16x16の1タイル(上がライト)。32x32、48x48、64x64など、1x1x1メートルのブロックに相当するものを使うこともできる。
もちろん、あなたのゲームでは正射投影は使わず、通常の遠近法を使うだろう。とはいえ、これは技術的な観点から重要なことで、タイル自体は好きなように描くことができる。
デザイナー
コンストラクターとしてオブジェクトのメッシュを構築できる単純なケースを考えてみよう:

Note
個々のタイルから3次元環境を構築し、それにメシャ・ライブラリの要素を添付するとき、エディターでも似たようなことをすることになる。
比率
特に複雑なオブジェクトの場合、コンストラクタ・メソッドが常に機能するとは限らない。
つまり、選択したサイズ(たとえば16x16)のベースタイルがあり、これは1x1x1メートルのブロックを指している。このようにしてプロポーションが形成される:
16 -> 1 метр
16 -> 1 метр
ここで、直交投影を考慮して、ある要素のサイズをピクセルごとに計算する必要がある。つまり、前面と上面の幅と高さである:

その割合に従って、各軸に必要なサイズをメートル単位で計算する:
X 軸の場合:
16 -> 1 米
27 -> X 米
X = (27*1)/16 = 1.6875
Y 軸の場合:
16 -> 1 米
15 -> Y 米
Y = (15*1)/16 = 0.9375
Z 軸の場合:
16 -> 1 米
15 -> Z 米
Z = (15*1)/16 = 0.9375
ここで、取得したデータに基づいてモデルを作成する:

イメージ
プロポーションには、スプライトそのものを使うという、よりシンプルな方法もあります。 これは、すでに描かれているスプライトをもとにモデルを作成し、希望のサイズに拡大縮小するというものです。
例えば、三菱 零戦はこうして作った:


エクスポート
MeshLibrary
メシャ・ライブラリーについては、実装の余地がある。
この例では、まず blender でメッシュを作成します。そのためには、新しいジオメトリを追加して、その頂点を編集するだけです。このような構造になるはずです:

次にエクスポートに移ります。お好みの形式を選択してください。例として、私は.blend形式と.glb形式を類似の代替形式として使用します。
- 各メッシュオブジェクトの名前には
-colを追加してください。

- メッシュを都合の良い形式でエクスポートします
- Godot でエクスポートしたファイルを右クリックして、新しい継承シーンを作成します
- 開いたシーンで「シーン」セクションに移動し、「メッシュライブラリ」としてエクスポートします
Tip
ブロックの中心は、エディター内の空間の中心と一致する必要があります
OBJ
オブジェクトにはOBJ形式を使用します。なぜなら、これが私たちの目的に最も適しているからです。
- メッシュを作成します。
- それを.obj形式にエクスポートします。
- GodotエディターでシーンにMeshInstance3Dを追加します。
- インポートしたOBJメッシュをドラッグして、MeshInstance3Dにドロップします。
その後、前回のセクションで示したようにメッシュを生成し、これらの2つのオブジェクトをコアに配置します。
Tip
オブジェクトの中心は、エディターの空間の中心と一致する必要があります。Godotでは、メッシュはオブジェクトの中心に固定され、オブジェクト自体は「Tranform」セクションで必要な量だけ移動させます。