竜太のテクニカルメモ

物理やへっぽこなゲーム作りについて易しく解説するよ

ユニティちゃんライセンス

このブログはユニティちゃんライセンス条項の元に提供されています

Unityで3Dのゲームを作る(3)

前回はHand Toolの使い方までご紹介しました.今回はその隣のMove Toolについてご説明します.

Move ToolはSceneビュー内のGameObjectを移動するために使います.そこで最もよく使いそうな例としてまず立方体の移動を例にしましょう.

gravity(重力)が有効になっているとき,Scene内の立方体は重力に従って下に落下します.このとき下に重力の影響を受けない物体があるとこの立方体はその物体の上に乗って静止します.厳密には弾性や摩擦など数多くの設定項目があり,それぞれで違う挙動を示すのですが,今回はもっとも単純に空中に浮いた立方体が床に落ちて静止する様子をGameビューで確認することにしましょう.

まず,メニューから[GameObject]→[3D Object]→[Plane]を選んでください:

f:id:lagrangian:20210122183858p:plain
平面を生成
Sceneビューに白い平面ができます:
f:id:lagrangian:20210122184211p:plain
平面ができた!
このままでも特に問題はないのですが,平面を少し大きくしてみましょう: HierarchyビューのMainSceneでPlaneが選択された状態でInspecterのTransformの中のScaleを変えます.いま,y軸が上方向で,この平面は上方向の広がりはないので,XとZでそれぞれの方向の広がりを作ります.今回はX,Z軸方向ともにこの平面を10倍に拡大してみましょう.X,Zにそれぞれ10を半角数字で入れてください.確定すると平面が大きくなるのが分かります:
f:id:lagrangian:20210122185526p:plain
1辺が10倍に拡大された平面
できた平面のの上に立方体を配置します.メニューから[GameObject]→[3D Object]→[Cube]を選んでください.立方体がSceneビューに表示されます:
f:id:lagrangian:20210122190052p:plain
立方体生成
上の画面は前回に引き続きHand Toolを選択状態のものですが,平面が大きい割にはこの立方体は小さいし,なんだか真っ白で見づらいですね.これはこの立方体がこの平面の下にできているからです.そこで早速Move Toolを使ってこの立方体を上の方に移動してみましょう.HierarchyビューでCubeが選択されている状態でMove Toolを選択します:
f:id:lagrangian:20210122190957p:plain
Move Tool選択
立方体の周りに3本の矢印が生えました:
f:id:lagrangian:20210122191332p:plain
Move Tool選択時
この矢印はそれぞれの軸の方向へ移動するためのものです.試しに緑色のy軸方向の矢印を上の方にドラッグしてみましょう.きちんとした立方体の姿が現れてきました:
f:id:lagrangian:20210122191938p:plain
立方体を上方向に移動
このままだとこれ以上立方体を上に持ち上げることができないのでマウスのホイールを使ってズームアウトしましょう:
f:id:lagrangian:20210122192525p:plain
ホイールを使ってズームアウト
今回は立方体の落下を見やすくするため,このくらいの位置を視点にセットしましょう.HierarchyビューでMain Cameraを選択し,メニューから[GameObject]→[Align With View]を選択します:
f:id:lagrangian:20210122193233p:plain
Main Cameraの視点をSceneビューの視点自体にする

Camera Previewを見てください.Game画面でのMain Cameraの視点がSceneビューの視点と一緒になりました!

f:id:lagrangian:20210122194314p:plain
Main Cameraの視点がSceneビューと一緒になった!
このテクニックは,いまSceneビューで見えている通りにGame中見せることができるため大変重宝します.覚えておいてください.

この状態で試しにPlayボタンを押します.Game中の画面はやはりSceneビューと同じですね:

f:id:lagrangian:20210122195221p:plain
Game時の視点がSceneビューの視点と一緒!
ただし,デフォルトではGame実行時の背景色はグリーンではなくちょっと暗くなる程度です.ここでは分かりやすいようにグリーン表示にしました.また,Scalrが1xとなっていることに注目してください.万が一ここが例えば3xなどとなっているとカメラの向きは一緒でも拡大された表示になってしまい,Sceneビューとは見た目が変わってしまいます.

さて,再生中に立方体が空中に浮かんで静止しているのが分かると思います.これはポーズがかかっているためではなく,立方体に剛体としての物理特性が付加されていないためです.特に重力が有効になっていないといけません.これはRigidbodyで設定します.HierarchyビューでCubeを選択し,InspectorビューでAdd Componentをクリックし,[Physics]→[Rigidbody]を選択します:

f:id:lagrangian:20210122200813p:plain
RigidbodyをCubeにアタッチ
RigidbodyがCubeにアタッチされます.InspectorビューのRigidbodyでUse Gravityにチェックが入っていることを確認してください.立方体を落下させるには取りあえずこれだけで大丈夫です:
f:id:lagrangian:20210122201632p:plain
Use Gravityにチェックを入れる
チェックが入っていることが確認出来たら早速Playボタンを押してみましょう.しばらく待つと立方体がちゃんと平面に落下して静止します.ただしこれだけだと画面上での立方体が小さすぎる上に,平面からの距離も近すぎて分かりづらいかもしれません.そこでCubeのInspectorビューから立方体の位置や大きさを調整しましょう.TransformのPositionのYの値を30くらい,ScaleをX,Y,Z全て10にします:
f:id:lagrangian:20210122202812p:plain
CubeのTransformを設定変更する
この状態でSceneビューを見て見ましょう.これなら立方体が分かりやすいですね!
f:id:lagrangian:20210122203444p:plain
Cubeの辺を5倍にしy軸方向に30持ち上げた
さて,この状態で再びPlayボタンを押しましょう.今度は立方体が落下するのがはっきり見えましたね!

ところでよく見るともしかしたら立方体の影が映ってないかもしれません.影は光源の位置と見る人の視点によって決まりますので今回は光源の位置のせいで写っておりませんが,光源の位置の調整は次回以降にご紹介したいと思いますので安心してください.

次回は引き続きMove Toolについてご説明します.


ゲーム制作ランキング

にほんブログ村 ゲームブログ ゲーム制作へ
にほんブログ村