今回の記事では、自作した3DオブジェクトをClusterのアバターが持てるようにする方法を説明する。Unity上で3Dモデルのサイズを持てる大きさに調整し、さらにスクリプトで持てる機能を設置した後、Clusterにアップロードして完成。
前回、トロフィーモデルを作成して、Clusterアイテムとしてアップロードすることができた。しかしこのオブジェクトは大きさは1m四方と大きく、しかも持つことのできない置物であった。
詳細は以下を参照。
トロフィーは装飾品でもあるが、本来は持つ物である。
今回は、アイテムの大きさを調整、さらにアバターが持つことができるアイテムとして作成し、アップロードまで行う。
Grabbable Item
Clusterのクリエイターズガイドを見ると、持てるアイテムにするために”Grabbable Item”というスクリプトを追加することが必要とされている。
![](https://nahbun50.com/wp-content/uploads/2022/12/795316b92fc766b0181f6fef074f03fa-3-500x199.png)
Unity起動 オブジェクト準備
いつもの通り、デスクトップのUnity Hubアイコンをクリック。
ProjectsウィンドウのClusterCreatorKitTemplates-masterをクリックしてUnity起動。
![](https://nahbun50.com/wp-content/uploads/2022/12/2b530e80c7d0de90885e285c5d798063-3-800x326.png)
Unity画面が開く。
前回アイテム登録した”trophy10”を持てるアイテムにする。
Assetsフォルダ内の”trophy01”を、Hierarchyビューにドラッグ&ドロップ。
![](https://nahbun50.com/wp-content/uploads/2022/12/c8856789ec11ab8b1013037cef6929f9-3-800x475.png)
Sceneビューにオブジェクトが表示された。
Inspectorビューで詳細を確認すると、オブジェクトのScaleはX・Y・Zのすべてが1(m)。
この大きさでは持つアイテムとしては巨大過ぎる。
![](https://nahbun50.com/wp-content/uploads/2022/12/3a4f695a458cb0ac0aceaa2eb13ac2dd-3-800x349.png)
オブジェクトのサイズ調整と空オブジェクト追加
サイズ調整
オブジェクトが大きいので、サイズを30%に縮小する。
InspectorビューのScaleをX・Y・Zすべて0.3に変更する。
Sceneビューのオブジェクトは小さくなった。
![](https://nahbun50.com/wp-content/uploads/2022/12/f96d9b4281f6d16b3c7589aed5a17be5-3-800x350.png)
空オブジェクトの子とする
アイテムとするオブジェクトは、空のオブジェクトの”子”として編集する必要があるので、まず空オブジェクト作成(前回同様)。
上部メニューから「GameObject」→「Create Empty」クリック。
![](https://nahbun50.com/wp-content/uploads/2022/12/94ed160662be198949535a112047e9b4-3-800x273.png)
GameObject(2)が作成される(Hierarchyビューで確認)。
前回同様に、作成された空オブジェクトは空中に浮いている(Sceneビューでも、InspectorビューのPositionでも)。
![](https://nahbun50.com/wp-content/uploads/2022/12/f4a1b0aed5dc02442c433030ff24c031-3-800x375.png)
InspectorビューのPositionを(X,Y,Z)=(0,0,0)に変更し、アイテムオブジェクトの原点に合わせる.
![](https://nahbun50.com/wp-content/uploads/2022/12/8aa09ea6d7822fbb10331635d428d488-3-800x222.png)
次に、アイテムオブジェクトを空オブジェクトの”子”にする。
Hierarchyビューで、”trophy10”を”GameObject(2)”にドラッグ&ドロップ。
GameObject(2)の下層にアイテムオブジェクトが設置された(”子”になった)。
![](https://nahbun50.com/wp-content/uploads/2022/12/f36fc0458607842cbf0775516687491b-3-800x268.png)
持てるスクリプト追加 途中で失敗2回
持てるスクリプト(Grabbable Itemスクリプト)追加
ここから、アイテムに持てる機能を追加する。
親オブジェクト(GameObject(2))を選択。
Inspectorビューの[Add Component]ボタンをクリック。
Searchバーで検索して”Grabbable Item”を選択してクリック。
![](https://nahbun50.com/wp-content/uploads/2022/12/e99cc3808964d9e08ec8fb27d43842de-3-800x386.png)
GameObject(2)のInspectorビューにいくつかの項目(Script)が追加された。
この中で知っているのは”Item(Script)”と”Grabbable Item(Script)”だけ。
![](https://nahbun50.com/wp-content/uploads/2022/12/b1db37a1df6c6332fc8bdf704e9d1e49-3-800x579.png)
Itemサイズ設定
Item(Script)の大きさは設定する必要がある。
[Set Default Size]ボタンをクリック。
自動設定の確認ウィンドウが表示されるので[OK]クリック。
しかし、SizeはX0,Y0,Z0のまま変わらなかった(これが後の失敗の原因となった)。
![](https://nahbun50.com/wp-content/uploads/2022/12/1249f2682be7181f6a6266c99ee5cae6-3-800x409.png)
ここからしばらく失敗編となる(赤マーカー表示部分)
アイテムをPrefab化
アイテムをアップロードできるようにするためには、Prefab化しなければならない。
方法は簡単!
Hierarchyビューの”GameObject(2)”(親オブジェクト)をProjectビューのAssetsフォルダ内へドラッグ&ドロップ。
![](https://nahbun50.com/wp-content/uploads/2022/12/ad328257df3c27d0237be29c2f1fd87c-3-800x399.png)
Assetsフォルダ内にPrefab化されたファイル(GameObject(2)(prefab Asset))が追加され、HierarchyビューのGameObject(2)の前に表示された立方体は着色された(Prefab化成功の合図)。
![](https://nahbun50.com/wp-content/uploads/2022/12/90b0dfa136419ccc91fda6fec27764ca-3-800x296.png)
一応アップロードの準備ができたので、アップロード操作。
上部メニューから「Cluster」→「クラフトアイテムアップロード」クリック。
![](https://nahbun50.com/wp-content/uploads/2022/12/571a82aa9fa95e9dd03f724dc3a94890-3-800x295.png)
クラフトアイテムアップロードウィンドウが開く。
作成したPrefabファイル(GameObject(2))をAssetsフォルダ内からクラフトアイテムアップロードウィンドウにドラッグ&ドロップ。
![](https://nahbun50.com/wp-content/uploads/2022/12/1229c317e01c766a53c2709efe066b18-3-800x490.png)
クラフトアイテムアップロードウィンドウ内に“×”が表示された。
この×の項目に「Prefab読み込み時に例外が発生しました。詳細はConsoleを確認してください。」とのコメントあり。
Consoleって何?と思ったら、画面左下に赤字でコメント(!MissingComponentException: GrabbableItem and RidableItem require Collider)が表示されていた。
コメントをクリックすると詳細が表示された。これがConsoleだな。
つまりColliderがついてないから“×”ということみたいだ(これが失敗の原因だった)。
![](https://nahbun50.com/wp-content/uploads/2022/12/085f435ecdb57e7076774ccbc381f72e-3-800x454.png)
とういことで、ここから本編に戻って問題解決する。
Colliderを設置する
持てるアイテムにするには、さらに“子”オブジェクトにColliderを付ける必要がある。
Hierarhcyビューで子オブジェクトである“trophy10”をクリックして選択。
Inspectorビューで「Add Component」ボタンをクリック。
Searchバーで“collider”と入力すると候補が表示される。
“Box Collider”を選択した。
![](https://nahbun50.com/wp-content/uploads/2022/12/88ed93005e0cb97394dcb2f41037a9e6-3-800x394.png)
Inspectorビューで“Box Collider”が追加された。
![](https://nahbun50.com/wp-content/uploads/2022/12/485aac62cea3d548d1555ce3bfa037e6-3-800x256.png)
ここからまた失敗編が始まる(今度は青色マーカー部分)。
オブジェクトをPrefab化
アイテムをアップロードできるようにするためには、Prefab化しなければならない。
方法は簡単!
Prefab化するため、GameObject(2)をHierarchyビューからProjectビューAssetsフォルダ内にドラッグ&ドロップ。
同名のPrefabファイルが先に存在する場合(今回はそうなってしまった)、original Prefabを作るか、Prefabのvariantを作るかを選択するウィンドウが開く。
![](https://nahbun50.com/wp-content/uploads/2022/12/aeb80bad1055d60bd4b8dc8204f77f1c-3-800x546.png)
[Prefab Variant]ボタンをクリック。
Assetsフォルダ内に別ファイルが追加された(つまりPrefabファイルは2個になった)。
![](https://nahbun50.com/wp-content/uploads/2022/12/51e8fc29fa61692e70bc4c925b602ad0-3-500x393.png)
作成されたファイルをクリックしてInspectorビューを見ると、ファイル名は”GameObject(2)Variant(Prefab Asset)”であった。
![](https://nahbun50.com/wp-content/uploads/2022/12/4b820548ffdca22d08fbb3ba51ee22f3-3-800x242.png)
アップロード試みるも・・・・
上部メニューから「Cluster」→「クラフトアイテムアップロード」クリック。
![](https://nahbun50.com/wp-content/uploads/2022/12/92d57db0790a5fa5b8a0cc20858a9366-3-500x186.png)
クラフトアイテムアップロードウィンドウが開くので、新たに作成したPrefabファイルをAssetsフォルダ内からアップロードウィンドウにドラッグ&ドロップ。
![](https://nahbun50.com/wp-content/uploads/2022/12/c2dda1d20b57ad8d0298a15686591503-3-500x229.png)
失敗!
アップロードウィンドウ内に、また”×”の表示。
アイテムの外観、0×0×0、とコメントが表示されている。さっきよりは進んだ?
コメントには、Itemの名前を入力することと、ItemSizeは1以上とすること、と記載されている。
これが失敗の原因か。
![](https://nahbun50.com/wp-content/uploads/2022/12/2daf4508ecfda0c22097a042b7d1c1b4-3-800x459.png)
Hierarchyビューで”GameObject(2)”をクリックして選択。
InspectorビューのItem(Script)を見る。
確かに、Nameは未入力で、Sizeは0,0,0だ。
![](https://nahbun50.com/wp-content/uploads/2022/12/2f18037bd1f8ce03c181f385b76816e3-3-800x393.png)
ここからまた本編にもどって、問題を解決する。
Item名とItemサイズを入力
InspectorビューのItem(Script)の、ItemNameを入力し、SizeをX 1, Y 1, Z 1と入力。
アイテムオブジェクトを包むように黄色の立方体が表示された。
オブジェクトをPrefab化
アイテムをアップロードできるようにするためには、Prefab化しなければならない。
方法は簡単!
Prefab化するため、GameObject(2)をHierarchyビューからProjectビューAssetsフォルダ内にドラッグ&ドロップ。
![](https://nahbun50.com/wp-content/uploads/2022/12/43814141cb3a5bcf3e479e89303d3de2-3-800x457.png)
同名のPrefabファイルが先に存在する場合、original Prefabを作るか、Prefabのvariantを作るかを選択するウィンドウが開く。
[Prefab Variant]ボタンをクリックすると、Assetsフォルダ内に新しいPrefebファイルが追加された。
このファイルの名前は”GameObject(2) Variant 1 (Prefab Asset)”であった(Inspectorビューで確認)。
![](https://nahbun50.com/wp-content/uploads/2022/12/619338d8eae13903374c3d959b4532ea-3-800x413.png)
Clusterにアップロード
アイテムのアップロード可否の確認
上部メニューから「Cluster」→「クラフトアイテムアップロード」クリック。
クラフトアイテムアップロードウィンドウが開くので、新しいPrefabファイルを、Assetsフォルダ内からアップロードウィンドウ内にドラッグ&ドロップ。
![](https://nahbun50.com/wp-content/uploads/2022/12/5524848c92466b4f89ec7329440bb253-3-800x567.png)
成功!!
アップロードウィンドウに、アイテム外観、アイテム名(trophy10)、サイズ(1×1×1)と「正常なアイテムです。」のコメントが表示された。
Clusterにアップロード
ウィンドウの下にある[アップロード]ボタンをクリック。
![](https://nahbun50.com/wp-content/uploads/2022/12/9113139b16a8da3452f5f9b7797fcd83-3-800x377.png)
アイテムアップロードが実行されて完了。
[閉じる]ボタンをクリック。
![](https://nahbun50.com/wp-content/uploads/2022/12/9115b90819a46b4f54acddb9107f30bf-3-500x370.png)
Clusterのマイコンテンツページが自動的に表示される。
作成したアイテム(trophy10)がアップロードされている。
アップロードが確認できたのでネットページは閉じる。
![](https://nahbun50.com/wp-content/uploads/2022/12/c1d9c428389228a761558d2bf36b3e95-3-500x245.png)
アイテムが持てるかどうかの確認
アイテムが本当に持てるアイテムとなっているのか確認する。
Unity画面に戻り、上部にある再生ボタン([▶])をクリック。
![](https://nahbun50.com/wp-content/uploads/2022/12/4acc921111f3b590f9743688883db2e8-3-800x262.png)
Gameシーンとなり、上下左右キーでシーン内を移動できる。
床に落ちているトロフィーに近づくと、アイテム周囲が青く光る。
左クリックすると、その状態で持ち上がる(持てた!)。
[Q]キーを押すとアイテムは離される。離されると床に落ちる。
キーが反応しないときにはロックされている。[Esc]キーでロック解除。
アイテムが下向きに床に落ちている場合には、持ち上げた時にも下向きのまま。
アイテムは持てることが確認できたので、[▶]をクリックして、停止・終了。
![](https://nahbun50.com/wp-content/uploads/2022/12/b655654d5058353b5b8e1a705db28541-3-500x270.png)
持てるアイテムを作ることができて、アップロードもできたので今回は完了。
終了
上部メニューから「File」→「Exit」クリック。
保存を促されるので[Save]クリック。
Unity HubのProjects画面となり終了。
![](https://nahbun50.com/wp-content/uploads/2022/12/82045ce962a04701aaedadeeb8278987-2-800x440.png)
今回、作成した3Dモデルの大きさを調節し、かつ持てる機能を追加して、アップロードすることができた。