AG03.ステージの環境作り②
😸では前回に引き続きステージの環境を作成していきます。今回はゴール地点となる建物を構築していきます。
前回までの確認
前回までにこんな感じにステージを作りました↓
https://youtu.be/Mpmw6ewDhhU
今回実装する内容
今回はゴール地点となる建築物をメッシュを組み合わせて作成していきます。
https://youtu.be/YdjVaJ7g_H4
実際のゲーム開発でも壁とかドアとかのメッシュはそれぞれ別のメッシュとして用意しておき、それらを組み合わせて建築物を構成するパターンが多いです。広大なマップを低コストで作る方法としてはそのパターンが採用されやすいです。例えばCallofDutyとかFortniteなどのゲームはこの方法で建築物が作られているように思えます(実際の所はわかりませんが)。
https://scrapbox.io/files/65d333411c94510023309876.png
壁やドアなど全てが一個のセットとして形成されている建築物のアセットもありますがコストがかかりやすく、かなり労力がかかるので比較的大規模なゲームでその方法は採用される場合があります。
建築物を組み立てる
🐱では建築物を作っていきます。
既存の浮いているステージ「SM_FloatingIsland_L」の上に建築物を作っていきます
https://scrapbox.io/files/65d333712a4e9f00249a13e8.png
まずはLearningKit_Games > Assets > Architectureのフォルダを開いて、フィルタにスタティックメッシュを追加しておきます。このフォルダにあるメッシュを使用していきます。
https://scrapbox.io/files/65d3339fafa7b600240ea07e.jpg
SM_Kit_Stairs_Aを設置します。階段はステージに埋めて先を少しだけでるようにします。
位置→ (X=5649.386710,Y=-2451.421359,Z=654.634064)
回転→ (Pitch=0.000000,Yaw=16.172241,Roll=0.000000)
https://scrapbox.io/files/65d333b74f415e002734eb34.png
🐱一応トランスフォームも載せていきますが、正確でなくて構いません。
最終的に家の形になっていればオッケーです。また再度確認ですが (X=5649.386710,Y=-2451.421359,Z=654.634064) の値は括弧含めてコピーしてトランスフォームに貼り付け可能です。変更しない拡大縮小などの項目の記載は省きます。
SM_Kit_Floorを追加します。
位置→ (X=6061.720661,Y=-2330.323861,Z=1051.750758)
回転→ (Pitch=0.000000,Yaw=15.313789,Roll=0.000000)
https://scrapbox.io/files/65d333e92d1b95002492a5f4.png
アクタのトランスフォームを調整するためのTips
なおアクタを微調整をする際には以下のトランスフォームをワールドからローカルに切り替えたり、スナップの有効,無効を切り替えたりして位置や回転などを微調整できます。
https://scrapbox.io/files/65d33428a5f9b20024b1519b.png
https://scrapbox.io/files/65d33433f845b50025282cb6.gif
今回はトランスフォームは記載していますが、自身でゲームを作る時は自身で微調整する必要があるのでこういった操作も活用していきましょう。
そしたら4x3になるように床を複製して配置します。位置は適当で構いません。
https://scrapbox.io/files/65d33465cb588d0024b85056.jpg
複製する時にはビューポート右上のトランスフォームモードをローカルにして、Alt+移動でできます。
https://scrapbox.io/files/65d3348a3cfb4e002477c269.gif
次にSM_Kit_Wall_Doorを階段上った場所に配置します。
位置→ (X=5945.753357,Y=-1946.466622,Z=1065.643126)
回転→ (Pitch=0.000000,Yaw=-74.695882,Roll=0.000000)
https://scrapbox.io/files/65d334a4a1e86600258e2216.png
次に壁となるSM_Kit_Wall_Straightを配置していきます。壁には表裏があるので注意です。
位置 (X=5846.194255,Y=-1570.947918,Z=1060.000000)
回転 (Pitch=0.000000,Yaw=-75.162093,Roll=0.000000)
https://scrapbox.io/files/65d334c4b8942e0023425ad5.png
同じく地面との隙間を埋めるようにSM_Kit_Wall_Straightを複製して配置します。
https://scrapbox.io/files/65d334f4485ae3002557873a.png
こんな感じにAlt+ドラッグで行います↓
https://scrapbox.io/files/65d335143cfb4e002477c89b.gif
作った上下二枚の壁を複製しつつ周りの壁を作ってしまいます。
https://scrapbox.io/files/65d33565e45acd00252f37ce.png
作る際はこんな感じ↓にまとめて壁を選択した状態(Shift+クリックまたはCtrl+クリック)で、Altキーで複製させてあげると楽です。
https://scrapbox.io/files/65d3358b2adbff00251c5ad9.gif
あとは、スナップが有効になっているとその数値毎にしか回転や移動が行えないのでオフの状態(グレー)にすると微調整がききます。
https://scrapbox.io/files/65d335affc51620025c08b72.jpg
では、壁の代わりに窓を何個か設置していきます。メッシュを削除して配置しても良いのですが、形状が一緒なのでアクタをそのままにメッシュを入れ替えましょう。以下の4つの壁をCtrl+クリックで選択します。
https://scrapbox.io/files/65d335c7753dc3002452d0a0.png
スタティックメッシュをSM_Kit_Wall_Windowに変更します。
https://scrapbox.io/files/65d335e6f80906002468e3eb.png
こんな感じの見た目になりました。
https://scrapbox.io/files/65d335ff8f06780025d5d4c5.png
そしたら今度は屋根をつけていきます。SM_Kit_Roof_Corner_Outを配置します。
位置 (X=5963.125757,Y=-1953.950796,Z=1467.232702)
回転 (Pitch=0.000000,Yaw=15.337085,Roll=0.000000)
https://scrapbox.io/files/65d33617f4d1a90025eac448.png
SM_Kit_Roof_Straightを設置していきます。
位置 (X=6237.978602,Y=-1464.213134,Z=1467.232776)
回転 (Pitch=0.000000,Yaw=-75.141456,Roll=0.000000)
https://scrapbox.io/files/65d3363a4f5bca0024831a7d.png
屋根も複製して周りをぐるっと囲みましょう。こんな感じです↓
https://scrapbox.io/files/65d33672f845b50025284653.png
階段が急すぎてプレイヤーがつっかえてしまうので少し縦の軸を縮めておきます。
位置 (X=5648.657756,Y=-2448.907739,Z=756.210587)
回転 (Pitch=0.000000,Yaw=16.172241,Roll=0.000000)
拡大縮小 (X=1.000000,Y=1.000000,Z=0.750000)
https://scrapbox.io/files/65d3369fa5f9b20024b16126.jpg
一旦プレイしてみましょう。プレイの横の点々をクリックして現在のカメラ位置を選択します。
https://scrapbox.io/files/65d336c67b9b76002466c219.png
現在こんな感じの建物の見た目になっています↓
https://scrapbox.io/files/65d336e93929bf0024204eb2.gif
「現在のカメラ位置」と「デフォルトのプレイヤースタート」について
現在のカメラ位置に設定すると現在のビューポートのカメラの位置からゲームが開始されます。なので試験的にその場所から試したい時には「現在のカメラ位置」に設定しましょう。
https://scrapbox.io/files/65d3371ae57c7500267a7d54.gif
「デフォルトのプレイヤースタート」にすると通常通りPlayerStartアクタが設置された場所からスタートします。
室内が大分暗いのでライトを設置していきます。
https://scrapbox.io/files/65d3374e3ae74900248e624e.jpg
ライトからRectangleLightを追加します。
https://scrapbox.io/files/65d33771a1e86600258e3795.jpg
RectangleLightとは?
RectangleLightとは四角形のライトのアクタです。テレビの光など四角形の発光体などに使用されます。
屋根の中央に移動させてX軸の矢印(光の方向)が室内に向くように配置します。
位置 (X=6734.240509,Y=-1929.835820,Z=1847.064859)
回転 (Pitch=-85.766793,Yaw=0.000000,Roll=14.134818)
拡大縮小 (X=1.000000,Y=1.000000,Z=0.708462)
https://scrapbox.io/files/65d337b4d86595002467d0f9.jpg
詳細からライトの範囲となるSourceWidthを306ととHeightを597ぐらいにします。
https://scrapbox.io/files/65d337dc7914130024289316.png
同じくライトの項目からRectangleLightのIntencity(光の強さ)を60ほどに、AttenuationRadius(光の距離)を1090にします。
https://scrapbox.io/files/65d337f7592f7700268d9547.png
こんな感じに明るくなりました↓
https://scrapbox.io/files/65d3381593fc70002484be91.jpg
一旦プレイしてみてどんな感じか確認してみましょう。暗いと感じる場合は好きに明るさ等変更してもらって構いません。
https://scrapbox.io/files/65d33838485ae3002557a9ce.gif
次にゴール地点を作っていきます。家の前に配置した階段(SM_Kit_Stairs_A)を複製して部屋の中央あたりに配置します。
位置→ (X=6279.721173,Y=-2248.050657,Z=832.899900)
回転→ (Pitch=0.000000,Yaw=16.172241,Roll=0.000000)
拡大縮小→ (X=1.000000,Y=1.000000,Z=0.708462)
https://scrapbox.io/files/65d3385c3ae74900248e6f02.jpg
LearningKit_Games > SM_Kit_Floorをひっくり返して配置します。階段の高さに合わせます。
位置 (X=6577.184431,Y=-1739.432859,Z=1114.646185)
回転 (Pitch=0.000000,Yaw=15.585049,Roll=-180.000000)
https://scrapbox.io/files/65d33883f4d1a90025ead540.jpg
階段を複製して四方に配置します。
https://scrapbox.io/files/65d338bf1c9451002330b7f8.jpg
LearningKit_Games > Assets > VFX > Emitters> Enviroment > NS_WindTunnelを台の中央に配置します(スタティックメッシュのフィルタは外す必要があります)。
https://scrapbox.io/files/65d338eaa7e647002557e5ca.jpg
https://scrapbox.io/files/65d60626f93bc20026f1ee20.jpg
サイズを台に合わせます。
位置 (X=6781.969397,Y=-1870.572442,Z=1126.060859)
拡大縮小 (X=0.549904,Y=0.549904,Z=1.000000)
https://scrapbox.io/files/65d33914b5ebea00254d7c54.jpg
飾りとしてHour_of_Codeフォルダ >StaticMeshes> MA_setDressing_cという箱も配置しておきます。サイズも変更しておきましょう。
https://scrapbox.io/files/65d33934fd60130025bcb01e.png
アクタの全体サイズを変える時のTips
トランスフォームの矢印ウィジェット中央をドラッグすると全ての軸に対してスケールできます。
https://scrapbox.io/files/65d33962a37d3300269d6f89.gif
これで環境作りは完成です。室内はこんな感じになりました↓
https://scrapbox.io/files/65d33984708dc600265c4f62.png
🐱見た目の部分なので細かい部分は違っても構いません。最後に見やすく管理できるように家のアクタをフォルダにまとめておきます。
パースペクティブ > 右を選択して、ドラッグで家の部分を選択します。床のアクタやRectangleLightなども選択状態になっている事を確認します。もし関係のない他のアクタが入った場合はCtrl+クリックで解除しましょう。
https://scrapbox.io/files/65d339af4266470024fa2fd3.jpg
そしたらアウトライナーで右クリック>移動先>新規フォルダを作成を選択します。
https://scrapbox.io/files/65d339d1fc51620025c0b10e.jpg
フォルダの名前をHouseにします。これでアクタをアウトライナ―で見やすく管理できます。
https://scrapbox.io/files/65d339fc2adbff00251c7a68.png
😸基本的にアクタをレベルに大量に配置したら最後はフォルダでまとめるのがおすすめです。ステージなどのアクタも後でフォルダにまとめます。
パースペクティブを元に戻しておきます。
https://scrapbox.io/files/65d33a2b7fcd8000274fb7ab.png
これでステージの環境は完成です。
ステージの環境作り完了!
https://youtu.be/YdjVaJ7g_H4
これでスタート地点のステージ、ゴール地点のステージと建物が完成しました。
😸では次回から実際にこのゲームに機能を実装していきます!Ctrl+Shift+Sでの保存も忘れないようにしましょう!