Created on | Updated on

GAME JAM STARTER KIT:LEVEL FROM PSD(PSD ファイルからマップ生成)

概要

mceclip0.png

本記事では、SideFXが公開している GAME JAM STARTER KIT から LEVEL FROM PSD を Unreal Engine を使って解説します。

GAME JAM STARTER KIT のダウンロードはこちらから:
https://www.sidefx.com/ja/tutorials/game-jam-starter-kit/

このツールを使用すると、Photoshop PSD ファイルを使用したレベル生成が可能です。 これにより、オブジェクトを配置できるスペースと、スペースを分割する壁が作成され、ジオメトリを設定して建物を作成できます。

 

ツールの使い方

mceclip1.png
最初にツールをロードすると、パラメータは展開されますがシーンには何も表示されません。
PSD ファイルを入力していないためです。

mceclip2.png
パラメータの一番上にある File に PSD ファイルへのパスを入力します。

mceclip3.png
Layers タブに移動します。
Layers to Extract が 4 になっていますが、一度すべてを削除して、新しく作り直します。

mceclip0.png
右端のゴミ箱のマークをクリックし、レイヤーを 0 にします。
そのあと+マークをクリックし、新しいレイヤーを一つ準備します。

mceclip1.png
PSD ファイルに移動します。
画像はレベル構築に必要なレイアウトで、最低限かつ固有のレイヤーで構成されています。

mceclip2.png
Layout はその通りゲームマップのレイアウトを決めます。
この名前は Unreal でプラグインに利用するため、命名は慎重に行います。
Props はマップに散乱しているオブジェクトの配置を制御するレイヤーです。

今回はこの二つのレイヤーのみを使います。

mceclip3.png
PSD の各レイヤーの名前を確認したら、Layer Name 1 に レイアウトの名前を入力します。

mceclip5.png
シーンを確認すると、レイアウトに沿って立方体が散乱します。

mceclip6.png
Method から Scatter Models を Add Houses に変更すると、

mceclip7.png
立方体の散乱の代わりに家のジオメトリを配置できます。

mceclip9.png
Method の下に Advanced オプションがあり、家のモデルをさらに細かく調整できます。
Seed で配置に乱数を加えます。
Scalce Min, Max で家の大きさの最大値と最小値を制御します。マップ全体で高い家を作りたい場合や平たい家を作りたい場合に調整ができます。

mceclip10.png
Final Building にチェックを入れると、家のジオメトリに壁と窓を付け最終的な家を作ることができます。

レイアウトからマップを作れたので、PSD の他のレイヤーからも情報を取得します。

mceclip12.png
Layers To Extract の最後の+を押して 2 にして、新しく作った Layer Name に Props と入力します。

mceclip13.png
しばらく待つとマップの広間に立方体が配置されます。
これも他と同様にシード値やスケール、ランダム回転のパラメータを持ちます。

レイアウトと小物のレイヤーを入力したため、PSD に戻って画像を変更し、その変更がマップに反映されるのを確認します。

mceclip14.pngmceclip15.png
photoshop に入り、レイアウトレイヤーを選択した状態で画像を修正します。
新しいレイヤーで書き足すのではなく、既存のレイアウトレイヤーに修正をします。

mceclip16.png
Unreal に戻り、Reload PSD をクリックします。

mceclip15.pngmceclip17.png
右下の部分が変更した場所ですが、削除した空間や追加した通路が正確に反映されているのが確認できます。
Props は PSD 通りにマップに配置され、レイアウトの外に出たものはシーンに表示されません。

mceclip19.png
Layers から Building Instances に変更し、家のモデルにオプションを足します。

Amount different houses の変更で、マップの家をランダムに分類します。
デフォルトでは 0 になっていますが、例えばこの値を 2 とすると、

mceclip20.png
家を灰色と紫の二種類に分け、視覚的に分類することができます。
家の数や高低差によって分類させる数を変えると有効です。

次に、壁のモデルを Unreal で用意した独自のもので表現します。

mceclip21.png
Engine を Unreal にします。
Unity で開発している方は Unity にします。

mceclip22.png
すると、壁が消えて天板のみが表示されます。
まだ Unreal の壁モデルを認識させていないため、壁が表示されません。

mceclip23.png
Engine を None から変えたことで、Building Instances の中に Asset Path のパラメータが増えています。
Amount different houses が 2 なので、入力できるパスが二つ用意されています。

mceclip24.png
用意した壁のモデルを右クリックし、Copy Referene をクリックしてモデルへのパスをコピーします。

mceclip25.pngmceclip26.png
パスを入力すると、先ほど灰色と紫で分類したうちの一方の壁にモデルが適用されます。

mceclip27.png
両方のモデルを適用させたものです。

Amount different houses を増やせば、ほかの色もしくは形の家を作ることができます。

mceclip29.pngmceclip28.png
Houdini Instanced Inputs からパラメータを展開します。

mceclip30.png
+をクリックすると、それぞれのモデルに別のインスタンスを追加できます。

mceclip31.png
二つ目のインスタンスを用意し、赤いモデルをドラッグします。

mceclip32.png
すると青い壁の一部が赤い壁に置き換わっているのが確認できます。
色が違う、サイズが一致していないなどの理由で境界にノイズが入ることがあります。

上では赤い壁を二つ目のインスタンスとして追加しましたが、例えばこれが青く窓がない壁にすると、建物は青い壁のままで一部が窓がないなどに変更することができます。

mceclip33.png
Engine を None 以外にしたことで、散乱するオブジェクトを自分で指定できるようになります。
Layers タブの一番下にオブジェクトを入力する部分が増えているので、

mceclip34.png
用意したオブジェクトのパスを入力して、

mceclip37.png
立方体の代わりに豚の頭が配置されたのが確認できます。
シード値やランダム回転などでバリエーションを持たせることもできます。

mceclip38.png
PSD ファイルからマップのレイアウトを読み取り、街や都市を構築することができました。
PSD の変更はそのまま Unreal に反映され、また自分で用意したモデルを使ってマップを作ることもできます。
ランダム値やインスタンス等でパターンを増やし、様々なバリエーションを試すこともできます。

問題が解決しない場合は、Born Digital サポートまでお問い合わせ下さい。

サポート問い合わせ