この記事では、自作したアイテムに持てる機能と衝突判定機能(コライダースクリプト)を設定して、Clusterでボールをクラブで打つワールドを作成した。
この記事の参考書籍
はじめに
以前作成した「ball and bar」のワールドの棒とボールは、Unityで作成した3Dオブジェクトであったため、初めからColliderは設定されていた。しかし、自作したアイテムをUnityにインポートするとオブジェクトにはメッシュ(外殻)だけしかない。オブジェクト同士を衝突させるためには、自力でCollider(衝突判定機能)を設定する必要がある。
具体的には空のGameObjectにもColliderを設定することができるので、アイテムにコライダーを設定した空オブジェクトの子を着ける。
準備
Clusterワールドにインポートするアイテムとして、Blenderでゴルフクラブ用のアイテムを作成してFBXファイルとしてデスクトップに保存。
このFBXファイルをUnityのClusterCreatorKitにインポートして、Clusterのワールドで使えるようにする。
UnityのClusterワールド起動
デスクトップにクラブのfbxファイルがある状態で、Unity Hubアイコンをクリックして起動。ClusterCreatorKitTemplates-masterをクリック。
Clusterワールドが表示された。
![](https://nahbun50.com/wp-content/uploads/2023/04/795316b92fc766b0181f6fef074f03fa-10-500x328.png)
プレーンのワールドを開く
新たなワールドを作成するため、最低限要素3つ入りワールド(plane)を開く。
上部メニューから「File」→「Open Scene」クリック。
”Load Scene”ウィンドウで、以前保存した”plane”ワールドを選択して[開く]クリック。
Planeワールドが開いた。
![](https://nahbun50.com/wp-content/uploads/2023/04/2b530e80c7d0de90885e285c5d798063-10-800x442.png)
アイテムをUnityにインポート
Blenderで作成し保存した”club.fbx”ファイルを、デスクトップからUnityのAssetsフォルダ内にドラッグ&ドロップ。
![](https://nahbun50.com/wp-content/uploads/2023/04/c8856789ec11ab8b1013037cef6929f9-11-500x279.png)
Assetsフォルダ内に”club”ファイルが追加された。
ファイルをクリックすると、いくつかの要素が含まれているのが分かる。
![](https://nahbun50.com/wp-content/uploads/2023/04/3a4f695a458cb0ac0aceaa2eb13ac2dd-11-500x240.png)
アイテムをSceneビューに追加
次にこの”club”ファイルをAssetsフォルダ内からHierarchyビューにドラッグ&ドロップ。
![](https://nahbun50.com/wp-content/uploads/2023/04/f96d9b4281f6d16b3c7589aed5a17be5-10-500x361.png)
”club”オブジェクトがHierarchyビューに追加され、Sceneビューにも巨大なシャフトが表示された(Inspectorビューの数値は図のごとく)。でかい!
![](https://nahbun50.com/wp-content/uploads/2023/04/94ed160662be198949535a112047e9b4-12-500x277.png)
InspectorビューのScaleを変更して縮小。
![](https://nahbun50.com/wp-content/uploads/2023/04/f4a1b0aed5dc02442c433030ff24c031-10-800x339.png)
Rotationも変更して(見やすいように)縦に置いた。
![](https://nahbun50.com/wp-content/uploads/2023/04/8aa09ea6d7822fbb10331635d428d488-10-800x389.png)
空オブジェクトにコライダー設置
準備
この後、空のオブジェクトにcolliderを付ける(設定する)作業を行うのだが、colliderが見えないと作業ができないので、見えるようにしておく。
外郭表示設定
画面右上にあるGizmos切り換えアイコン(ワイヤーのボールみたいな形)をクリックして有効にしておくと見えるようになる。
この時点ではアイテムの外郭が表示されている。
![](https://nahbun50.com/wp-content/uploads/2023/04/f36fc0458607842cbf0775516687491b-8-800x455.png)
シャフト用のCollider用の空オブジェクト追加
上部メニューから「GameObject」→「Create Empty」クリック。
![](https://nahbun50.com/wp-content/uploads/2023/04/e99cc3808964d9e08ec8fb27d43842de-7-300x198.png)
HierarchyビューとSceneビューにGameObject(2)という名前の空オブジェクトが作成された。
小さい立方体の外郭が表示された。
![](https://nahbun50.com/wp-content/uploads/2023/04/b1db37a1df6c6332fc8bdf704e9d1e49-8-800x318.png)
オブジェクト名を”shaft collider”に変更し、InspectorビューのPositionを変更して見やすい位置(空中)に移動。
Scaleもシャフトの大きさに合わせる。
空オブジェクトにコライダーを設定
Inspectorビューの[Add Component]ボタンをクリックして、”Box Collider”を選択。
![](https://nahbun50.com/wp-content/uploads/2023/04/1249f2682be7181f6a6266c99ee5cae6-7-800x369.png)
Box Colliderが設定されると、Sceneビュー上でColliderの輪郭(赤色枠)が表示される。
![](https://nahbun50.com/wp-content/uploads/2023/04/ad328257df3c27d0237be29c2f1fd87c-7-800x385.png)
コライダーの位置調整
視点を横方向に変更。シャフト方向に伸びたColliderの輪郭が良くわかる。
![](https://nahbun50.com/wp-content/uploads/2023/04/90b0dfa136419ccc91fda6fec27764ca-7-500x301.png)
真横のビューにして、shaft colliderをクラブのシャフトの位置に合うように移動する。
![](https://nahbun50.com/wp-content/uploads/2023/04/571a82aa9fa95e9dd03f724dc3a94890-7-500x439.png)
真縦のビューにして、更にColliderを移動させて合わせる。シャフトのcolliderはこれで良し。
![](https://nahbun50.com/wp-content/uploads/2023/04/1229c317e01c766a53c2709efe066b18-7-500x327.png)
2つ目のコライダーを作成
次はフェイス部のColliderを設定する。
空オブジェクト作成
上部メニューから「GameObject」→「Create Empty」クリック。
![](https://nahbun50.com/wp-content/uploads/2023/04/085f435ecdb57e7076774ccbc381f72e-8-500x420.png)
HierarchyビューとSceneビューにGameObject(2)という名前の空オブジェクトが追加された(さっきと一緒)。
![](https://nahbun50.com/wp-content/uploads/2023/04/88ed93005e0cb97394dcb2f41037a9e6-6-800x426.png)
先程同様、オブジェクト名を変更(face collider)し、Positionで位置を変更。
コライダー付与
[Add Component]ボタンをクリックして、Box Colliderを設定。
![](https://nahbun50.com/wp-content/uploads/2023/04/485aac62cea3d548d1555ce3bfa037e6-6-300x331.png)
SceneビューでCollider輪郭が表示されている。
横からのビューに視点を変更し、Colliderの大きさを、クラブのフェイス部に合うようにScale値を変更する。
![](https://nahbun50.com/wp-content/uploads/2023/04/aeb80bad1055d60bd4b8dc8204f77f1c-5-800x303.png)
コライダーの位置・向きの調整
shaft colliderと同様に、真横のビューに視点変更して、face colliderの位置を移動する。
[回転]アイコンとクリックしてcolliderの向きも変える(回す)。
![](https://nahbun50.com/wp-content/uploads/2023/04/51e8fc29fa61692e70bc4c925b602ad0-5-500x666.png)
真縦の視点にして、同様にface colliderの位置を移動。
![](https://nahbun50.com/wp-content/uploads/2023/04/4b820548ffdca22d08fbb3ba51ee22f3-5-500x503.png)
face colliderの角度については、フェイス部の向きに沿った(平行な)ビューになるように視点を変更して、[回転]アイコンをクリック後、3軸の方向に回転しながら合わせた。
![](https://nahbun50.com/wp-content/uploads/2023/04/92d57db0790a5fa5b8a0cc20858a9366-5-500x501.png)
ビューを変えて、更に[移動]と[回転]で微調整。
![](https://nahbun50.com/wp-content/uploads/2023/04/c2dda1d20b57ad8d0298a15686591503-5-500x547.png)
最終的に、3方向からのface collierの位置と回転は、図のように設定した。
![](https://nahbun50.com/wp-content/uploads/2023/04/2daf4508ecfda0c22097a042b7d1c1b4-5-500x554.png)
グリップ作成(ColliderとGrabbable Item付き)
次はグリップのオブジェクトを作成し、colliderと持てる機能を設置する。
空オブジェクト作成
前2回と同様、上部メニューから「GameObject」→「Create Empty」クリック。
![](https://nahbun50.com/wp-content/uploads/2023/04/2f18037bd1f8ce03c181f385b76816e3-5-800x332.png)
コライダー設定
新しい空オブジェクトに、”grip”と命名し、位置を変えて、[Add Component」ボタンから「Box Collider」選択。
![](https://nahbun50.com/wp-content/uploads/2023/04/43814141cb3a5bcf3e479e89303d3de2-5-800x371.png)
Scaleでサイズも変更。Colliderの輪郭が表示された。
![](https://nahbun50.com/wp-content/uploads/2023/04/619338d8eae13903374c3d959b4532ea-4-800x358.png)
コライダーの位置調整
真横・真縦の視点で、[移動]によって、”grip”colliderの位置をクラブのグリップ部に合わせる。
![](https://nahbun50.com/wp-content/uploads/2023/04/5524848c92466b4f89ec7329440bb253-4-500x568.png)
”grip”オブジェクトにはcolliderとしての機能だけではなく、クラブの把持部としての機能も設定する。
そのためには”クラブ”オブジェクトに持てる機能(Grabbable Item)を設定して、そのスクリプトの”Grip”に把持部オブジェクトを指定する必要がある。
Grabbable Item設定
まず、クラブに持てる機能を設定する。
Hierarchyビューで”club”を選択。Inspectorビューの[Add Component]ボタンをクリック。検索結果から”Grabbable Item”を選択。
![](https://nahbun50.com/wp-content/uploads/2023/04/9113139b16a8da3452f5f9b7797fcd83-4-800x566.png)
”club”オブジェクトのInspectorビューに”Movable Item(Script)”と”Grabbable Item(Script)”が追加された。
![](https://nahbun50.com/wp-content/uploads/2023/04/9115b90819a46b4f54acddb9107f30bf-4-800x357.png)
空オブジェクト(grip)をアイテム(クラブ)の”子”にする
Hierarchyビューで、”grip”(と、”shaft collider”と”face collider”もついでに)を”club”表示上にドラッグ&ドロップ。
すると、すべてが”club”オブジェクトの下層に表示された(親子関係となった)。
![](https://nahbun50.com/wp-content/uploads/2023/04/c1d9c428389228a761558d2bf36b3e95-4-500x263.png)
空オブジェクトをアイテムのGripに指定
”子”とした”grip”オブジェクトを、”club”Inspectorビューの「Grabbable Item(Script)」の”Grip”指定ボックス内にドラッグ&ドロップ。
![](https://nahbun50.com/wp-content/uploads/2023/04/4acc921111f3b590f9743688883db2e8-3-800x341.png)
Grabbable ItemスクリプトのGripに、”grip”オブジェクトが指定された。
これでクラブのCollider設定はとりあえず完了したので、チェックする。
![](https://nahbun50.com/wp-content/uploads/2023/04/b655654d5058353b5b8e1a705db28541-4-800x621.png)
ワールド再生でクラブの確認
画面上部の[▶](再生)ボタンをクリックして、Gameビュー開始。
![](https://nahbun50.com/wp-content/uploads/2023/04/82045ce962a04701aaedadeeb8278987-3-500x364.png)
落ちているクラブを指定してクリックすると、クラブが持たれた。
しかし、この角度ではボールを打てないな。一度停止([▶]クリック)。
![](https://nahbun50.com/wp-content/uploads/2023/04/7eaa64ec83ce00330d2355c06434e5af-3-800x239.png)
グリップオブジェクトを軸回転
”grip”オブジェクトをZを軸に-90度回転させる(持ち位置を回す感じ)。
![](https://nahbun50.com/wp-content/uploads/2023/04/e1cf8bd018971ce07f45c1984757989e-3-800x276.png)
そして再生([▶」)。
クラブを床から拾うと、クラブのフェイス面が左を向いた状態で持たれた。
なるほど。こうやって(GripオブジェクトのRotation変更)持ち方を設定するのか。
![](https://nahbun50.com/wp-content/uploads/2023/04/7e1aeac374dc4d093f5a9e5cc729aa60-2-800x266.png)
クラブの設定は一先ず完了。
ボール追加
次はボールの制作。と言っても、難しくはない。
上部メニューから「GameObject」→「3D Object」→「Sphere]クリック。
Sceneビューに巨大な球が追加された。
![](https://nahbun50.com/wp-content/uploads/2023/04/2d69a7720e4350bf0f3fd63a4c348f2b-2-800x440.png)
InspectorビューのPosition, Scaleの数値を変更して、球の位置と大きさを調整。
![](https://nahbun50.com/wp-content/uploads/2023/04/55c9a5fa36b3bd98389f72e43c776ef2-1-800x341.png)
ボールにスクリプト・マテリアル設定
ボールにするには、球を動かせる物体にして色を付ける必要がある。
Inspectorビューの[Add Component]から”Movable Item”を選択して設置。
Assetsフォルダ内にある青色マテリアル(以前作成したもの)を、(Inspectorビューの)Default-Material部(マテリアルのエリア)にドラッグ&ドロップして変更する。
![](https://nahbun50.com/wp-content/uploads/2023/04/78d49c2ff00271c90d94ce1cec341915-1-800x467.png)
Gameビュー再生
クラブとボールが完成したので、[▶](再生)ボタンをクリックして、Gameビューを開始。
![](https://nahbun50.com/wp-content/uploads/2023/04/23f7f1e6cef24cbed0a5d06f5dc0e1c2-1-800x285.png)
クラブを持って、フェイス部をボールに当てると、ボールは転がって床から落ちた。
成功かな。
![](https://nahbun50.com/wp-content/uploads/2023/04/00f47ff90d8e51d16efad0d2dfff7f87-1-800x358.png)
Clusterにアップロードするためのアイキャッチ画像をスクリーンショットから作成・デスクトップに保存して、今回は終了。
![](https://nahbun50.com/wp-content/uploads/2023/04/b0df512cd9d158300febc6aebb409edb-1-500x215.png)
次回は、このクラブとボールのワールドをClusterにアップロードして、MetaQuestで本当にクラブでボールが打てるのかどうか検証する。
参考書籍