ボールに棒を衝突させて打つClusterワールドを作成する Unity

この記事では、Unity上で棒でボールを打つClusterワールドを作成する。Clusterワールドに必須の3要素のみ存在するプレーンワールドを作成した後、そのワールドにボールと棒のオブジェクトを作成。オブジェクトにScriptでそれぞれの機能を追加。ワールドを再生。棒がボールに当たるとボールは転がった。

Cluster用のプレーンワールドを作成

Unity上でボールと棒が設置されたワールドを作成するために、まずはClusterに必要な3要素があるだけのプレーンのワールドを作成する。
UnityHubを起動して、ClusterCreatorKitTemplate-masterを開始する。
以前に作成したオブジェクトが設置されているだけのワールドが表示された。

ワールドをプレーン(無)にしたいので、現在設置されているトロフィー(の親オブジェクト)を選択。右クリックメニューから「Delete」クリックして削除する。

これで、必要3要素だけのワールド(プレーンワールド)になったので、今後のために保存しておく。
上部メニューから「File」→「Save As」をクリック。
ファイル名(plane)を入力して[保存]ボタンをクリック。
これから作っていくNewWorldは、このファイル(plane)から作成していくと簡単なのかも。

いよいよ今回のワールドを作成する。

ボール作成

はじめに“ボール”を設置する。
上部メニューから「GameObject」→「3D Object」→「Sphere」をクリック。

Hierarchyビューに“Sphere”が、Sceneビューにオブジェクトが追加された。

Inspectorビューはこんな感じ。

オブジェクトの名称を“ball”に変更。

ボール位置変更
ボールの位置が床よりも下にあるようで見えない。
InspectorのPositionを変更すると見えるようになった。

サイズ変更
大きさを縮小(Scale値を減少)した。

マテリアル設定
以前に作成した青色マテリアルをProjectビューから、Sceneビューのオブジェクト上にドラッグ&ドロップするとInspectorビューにマテリアルが追加されて、オブジェクトも着色された。

Planeワールドとは別のものとするために、ここで一度このワールドを保存。
上部メニューの「File」→「Save As」クリック。
ファイル名を“ball and bar”と入力して[保存]ボタンをクリックして保存した。

棒を追加

続いて“棒”をワールドに設置する。
上部メニューから「GameObject」→「3D Object」→「Cylinder」をクリック。

Hierarchyビューに“Cylinder”、Sceneビューにはオブジェクトが追加された。

Inspectorビューはこんな感じ

棒の位置・サイズ変更
ボールと同様に棒も床下に隠されており見えない。
オブジェクト名を“bar”に変更し、InspectorのPositionとScaleを変更

マテリアル設定
こちらは茶色のマテリアルをドラッグ&ドロップして着色した。

更にスケール調節
Scaleを再調節して長細い形状にした。

ボールに動かせる機能、棒に持てる機能を設定

必要なオブジェクトは設置できたので、これらに機能を設定していく。

ボールに動かせる機能設定
ボールオブジェクトを選択して、Inspectorの[Add Component]ボタンをクリック。
検索バーから「Movable Item」スクリプトを選択して設定する。

ボールオブジェクトのInspectorに、“Item(Script)”、“Rigidbody”、“Movable Item(Script)”が追加された。
このスクリプトの意味は、ボールを、動かせる・重さのある・実体にする、ということ。

棒に持てる機能を設定
次は棒に機能を設定する。
“bar”を選択、Inspectorビューで[Add Component]ボタンをクリック。
検索バーで“Grabbable Item”を選択して、設定する。

Inspecorビューで、“Item(Script)”、“Rigidbody”、“Movable Item(Script)”、“Grabbable Item(Script)”が追加されている。
これらのスクリプトにより、棒は、動かせる・持てる・重さのある・実体となった。

ワールド再生してオブジェクトの挙動を確認

画面上部中央の[▶](再生)ボタンでGameビュー開始。

ボールと棒のあるワールドが表示された。

棒に近づくと棒が青く縁どられる。
左クリックで棒をもつ。
[Q]ボタンを押すと棒が離されて倒れる。
倒れた棒が転がってボールに当たると、ボールも共に転がっていった。
予定通り、衝突で動かせている!

棒でボールを打ってみる
今度は棒を持って、下を向いて、棒の先でボールを突くと、ボールは転がって行って、床の端から落ちた。

違う角度からも確認。ボールを突くと、ボールは転がって床から落ちた。
もう一度[▶]ボタンを押して、Gameビュー停止してSceneビューに戻る。

棒が縦にあると持ちにくかったので、“bar”のRotationを変更して、横向きに設置した。

もう一度[▶]ボタンでGameビュー開始して、棒とボールの挙動を確認。大丈夫。

ワールド完成。

ワールドアップロード用画像作成
次回のワールドアップロード登録用に、アイキャッチ画像を作成してデスクトップに置いておく。

Unityでのワールドは完成したので、今回は終了。
設置したボールと棒の両方に、予定していた物理法則は設定できているはず。
次回はこのワールドをアップロードして、MetaQuest2での挙動を確認する。

タイトルとURLをコピーしました