GodotEngineを使った3Dゲームの作り方メモです
・Blockbenchからキャラをインポート・ワールド作成の記事はこちら
・キャラ移動とカメラ操作の記事はこちら
・キャラのモーションを再生する記事はこちら
今回はかんたんなステージを作る方法を紹介します
StaticBody3Dを使って作りましたが
レベルデザインに適したCSGツールというのがありますので使ってみましょう
MainノードにCSGCombiner3Dを追加します

次に、CSGCombiner3Dの子ノードに、好きな形を追加します。
ここではCSGBox3Dを追加しました

ステージにキューブが追加されました。
(見づらいので地面は非表示にしています)
キューブの面にある赤い丸をドラッグすると
サイズを変更することができます。
インスペクターから変更してもOK

マテリアルも設定しておきましょう。
AlbedoのTextureに石のテクスチャをドラッグします
(Materialに直接ドラッグしてもいけます)

テクスチャがびよーんと伸びてしまうので
UV1の「Triplanar」をオンに
他のオブジェクトとテクスチャをなじませるために
「World Triplanar」もオンにします

マテリアルは保存しておいて使い回しができます。
マテリアルの横の🔽マークをクリックして「保存」をクリック

穴を開けたり、カベを作ったりすることができますのでやってみましょう。
まずはCSGBox3Dを選択し「Ctrl+C」でコピー「Ctrl+V」で貼り付けます。
するとCSGBox3Dの子ノードに新しいCSGBox3Dができました。
追加したほうのキューブは、少し小さくしておきましょう。

大きさの変更や移動のときは「スナップ」をオンにしておくと
1m単位で動かすことができます。
大きさを調節したら「Oparation」の項目を
「Subtraction」(減算)にしましょう。
外側の石ブロックがくり抜かれて、カベのようになりましたね

CSGたちの親の「CSGCombiner3D」を選択し
「Use Collision」をオンにします

再生してみると、ちゃんとプレイヤーが減算したところに入っています

カベの当たり判定もありますね!
キューブを1つ1つ並べていくと
それぞれにCollisionが必要でめんどくさかったですが
CSGを使うと親のCollisionをONにするだけでいいので楽ですね
CSGCombiner3Dを選択して「CSGPolygon3D」を追加します

見た目はキューブと変わりませんが
赤い丸をドラッグすると、点だけが移動して好きな形を作れます。
Depthから厚みの変更もできます。

さっき保存しておいたstone1.tresマテリアルを
インスペクターのMaterialにドラッグすれば、同じ見た目になります

厚みや位置を調節すれば
スロープの完成!
マテリアルで設定した「World Triplanar」がオンになっているので
ワクとスロープとのつなぎ目もスムーズになっていますね

CSGPolygon3Dは厚みを変えるモードのほかに
「Spin」モードがあります
スピンモードにすると、図形をくるっと回したような形にしてくれるので
木などのオブジェクトに使えます

木の幹には「Cylinder」(円柱)
岩などまるっこいものには「Sphere」(球)が使えますね
形を組み合わせたり減算したりして
色々なステージを作ってみてくださいね!

・Blockbenchからキャラをインポート・ワールド作成の記事はこちら
・キャラ移動とカメラ操作の記事はこちら
・キャラのモーションを再生する記事はこちら
今回はかんたんなステージを作る方法を紹介します
SG ツールを使ってみよう
はじめにワールドを作った時はStaticBody3Dを使って作りましたが
レベルデザインに適したCSGツールというのがありますので使ってみましょう
MainノードにCSGCombiner3Dを追加します

次に、CSGCombiner3Dの子ノードに、好きな形を追加します。
ここではCSGBox3Dを追加しました

ステージにキューブが追加されました。
(見づらいので地面は非表示にしています)
キューブの面にある赤い丸をドラッグすると
サイズを変更することができます。
インスペクターから変更してもOK

マテリアルも設定しておきましょう。
AlbedoのTextureに石のテクスチャをドラッグします
(Materialに直接ドラッグしてもいけます)

テクスチャがびよーんと伸びてしまうので
UV1の「Triplanar」をオンに
他のオブジェクトとテクスチャをなじませるために
「World Triplanar」もオンにします

マテリアルは保存しておいて使い回しができます。
マテリアルの横の🔽マークをクリックして「保存」をクリック

減算を使ってみよう
重なった部分を消すことで、くり抜きができます。穴を開けたり、カベを作ったりすることができますのでやってみましょう。
まずはCSGBox3Dを選択し「Ctrl+C」でコピー「Ctrl+V」で貼り付けます。
するとCSGBox3Dの子ノードに新しいCSGBox3Dができました。
追加したほうのキューブは、少し小さくしておきましょう。

大きさの変更や移動のときは「スナップ」をオンにしておくと
1m単位で動かすことができます。
大きさを調節したら「Oparation」の項目を
「Subtraction」(減算)にしましょう。
外側の石ブロックがくり抜かれて、カベのようになりましたね

Collisionをオンにしよう
今のままだとプレイヤーが突き抜けてしまうので、コライダーをつけましょうCSGたちの親の「CSGCombiner3D」を選択し
「Use Collision」をオンにします

再生してみると、ちゃんとプレイヤーが減算したところに入っています

カベの当たり判定もありますね!
キューブを1つ1つ並べていくと
それぞれにCollisionが必要でめんどくさかったですが
CSGを使うと親のCollisionをONにするだけでいいので楽ですね
いろんな形を使ってみよう
Box以外も使えるので試してみましょう。CSGCombiner3Dを選択して「CSGPolygon3D」を追加します

見た目はキューブと変わりませんが
赤い丸をドラッグすると、点だけが移動して好きな形を作れます。
Depthから厚みの変更もできます。

さっき保存しておいたstone1.tresマテリアルを
インスペクターのMaterialにドラッグすれば、同じ見た目になります

厚みや位置を調節すれば
スロープの完成!
マテリアルで設定した「World Triplanar」がオンになっているので
ワクとスロープとのつなぎ目もスムーズになっていますね

CSGPolygon3Dは厚みを変えるモードのほかに
「Spin」モードがあります
スピンモードにすると、図形をくるっと回したような形にしてくれるので
木などのオブジェクトに使えます

木の幹には「Cylinder」(円柱)
岩などまるっこいものには「Sphere」(球)が使えますね
形を組み合わせたり減算したりして
色々なステージを作ってみてくださいね!

コメント