3D 空間にスプライトスタックを描画するためのアドオンです。
git clone https://github.com/ydipeepo/xdut-stacked-sprite-3d.gitもしくは、ダウンロードし、- プロジェクトを開いて実行します。
git clone https://github.com/ydipeepo/xdut-stacked-sprite-3d.gitもしくは、ダウンロードし、addons/xdut-stacked-sprite-3dをプロジェクトにコピーし、- プロジェクト設定から XDUT Stacked Sprite 3D を有効にします。
アドオンを有効化すると StackedSprite3D ノード、StackedSpriteMesh リソースが有効になります。
以下の 2 種類の方法でシーンに配置できます。
StackedSprite3Dノードを配置するMeshInstance3DもしくはMultiMeshInstance3DにStackedSpriteMeshリソースを設定する
ここでは StackedSprite3D ノードを使います:
ディフューズテクスチャ (albedo_texture プロパティ) を設定し、垂直分割数 (frames プロパティ) を設定します:
Note
ここでのディフューズテクスチャとは、
以下のようなスプライトを横方向に等間隔に並べた 2D テクスチャです。
左側のスプライトから Y+ 方向に重ねて描画されます。
アドオンはこのテクスチャを frames プロパティで指定した枚数に分割し、
スプライトスタックボリュームとして扱います。
この時点でボリュームが描画されるようになります。
法線テクスチャ (normal_texture プロパティ) を設定もしくは生成します。ここでは自動生成します。
Normal Texture グループを開き、Generate normal texture ボタンをクリックします:
Note
法線テクスチャは、UVW ボリュームアドレスがディフューズテクスチャのものと一致します。
ピクセル RGB 各色は、法線ベクトル XYZ にそれぞれマッピングされます。
RGB 各成分 0 ~ 255 の値は、法線ベクトル各成分 -1.0 ~ +1.0 に対応し、
このベクトルはシェーダー内部で正規化されます。
Note
タイルボリュームなどで用いる場合 (他のボリュームと接触する境界を含む場合)、XYZ 各軸のサンプラを変更します。
| サンプラ | 説明 |
|---|---|
| Border | 範囲外のアドレスをボリュームが存在しないものとして扱います。(デフォルト) |
| Clamp | 範囲外のアドレスを 0.0 ~ 1.0 の範囲に制限します。 |
| Repeat | 範囲外のアドレスを接合点で繰り返します。 |
| Mirror | 範囲外のアドレスを接合点でミラーリングします。 |
Caution
最大スキャンピクセル距離 (max_scan_distance プロパティ) を大きくし過ぎると生成に時間がかかることがあります。
マテリアルを設定するには、法線テクスチャが設定されている必要があります。
マテリアルグループを開き、各プロパティを設定します。
Note
emission_texture、specular_texture、metallic_texture はそれぞれ各ピクセルの R 成分のみを読み込みます。
R 成分 0 ~ 255 の値は、0.0 ~ 1.0 に対応します。
🔗 MIT ライセンスです。
ライセンスの表記は必須ではありませんが、歓迎いたします。クレジットする場合は、"Ydi" に帰属させてください。