動かせるアイテムを作る Cluster Creator Kit - Grabbable Item
動かせるアイテムは楽しい!そんな楽しい動かせるアイテムを作ろうとして、学んだこと、教えてもらったことをメモしていく投稿です。
「はい、エビフライですよ」 in えんきすぺーす
「柄杓で水をくんでー」in IchiKon Caffee 3号店
動かせるアイテムがあるとつい持って遊びたくなる
clusterのワールドでは、あちこちに動かせるアイテムがおいてあります。アイテムがあって、そこにだれかいると、渡してみたくなったり、なにかしてみたくなったりして、つい遊びたくなりますよね。
この投稿は、動かせるものを作りたい!となったときに、あれ?うまくいかないなってなることがあったので、繰り返さないようにするために、わかったことをメモしていく投稿です。
とにかく動かせたらよい時
一番最初はこれ、とても簡単です。HierarchyでSceneか何もないところを右クリックして、GameObject → 3D Object -> Cube(ほかの形でも大丈夫)を選択します。
Cubeができたら、HierarchyでCubeを選択します。(画像ではCubeだったのでCube(4)となっています)
Cubeを選択すると右側にCubeのInspectorが表示されるので、Add Componentをおして、Grabbable Itemを選択します。(検索用の窓があるのでgraくらいまで入力すると絞り込まれて選ぶのが簡単です)
こんだけ、簡単。もうこれで持てるCubeができました。
ちなみに、追加するとInspectorにはなんだかいろいろくっついてくるようになります。この、いろいろがわからなくても、とりあえず大丈夫、持てるから。(いい感じにもちたいんだけどな、、、とかなと設定をするようになります。はまるたびに説明をこの記事に追加していこうとおもいます。)
水平に動かすアイテムを作りたい
テーブルを作ってみて、ならべてあそんでいたんだけど、向きがバラバラになって困る。。。と、いうことで、いっつも水平を維持するアイテムを作ってみることにしました。
今回動かしたいアイテムは「サイドテーブル」です。DimensionというAdobeのソフトでつくってみたobjectをunityにいれてみました。
Inspectorはこんな感じ。「あれ、このサイドテーブルにはコライダーがない、コライダーがないということは、ものを置けないぞ」ということでまずコライダーを付けます。
Add ComponentからMesh Colliderを選択します。(検索窓にmesとか入れると絞り込まれます)Box Colliderにすると軽くなるけど、立方体になってしまうので、ここはテーブルの形どおりになるMesh Colliderにすることにしました。
Mesh ColliderをつけたらConvexにチェックを付けます。(ここにチェックをつけないと、Mesh Colliderは衝突するようにならないらしい)
そしたら次は、Add ComponentからGrabbable Item(Script)を選択します。
これで持てるようになりました。そして、次にいよいよ水平に動かすための制限をつけます。Add Componentから、Rotation Constraintを選択します。
Rotation Constraintは、回転を制限するものです。
まず、Rotation Constraintと書いてあるところの横の三角形をクリックして開いてIs Activeにチェックをいれます。
次にFreeze Rotation Axesは、Xにチェック、Yはチェックなし、Zにチェックを入れます。これで、X,Z軸方向に回転しないようになって、Y軸(縦軸)方向だけ回転するように制限をかけることができます。
そして、Sourcesにある+をクリックし、固定する対象を選択します、Select TransformというWindowが出てくるのでそのWindowの中のSceneのタブをクリックします。今回は床にしているPlaneを選択しました。
これで、水平に動くアイテムの出来上がり。
失敗の例
Mesh ColliderをつけたときにConvexをつけわすれると、無限落下するアイテムができあがります。がんばって落ち続けるサイドテーブルをみていると、かわいそうだなという気持ちになります。なんでなのかわからないけど、Mesh Colliderはそういうものらしいです。
また、RigidbodyにIs Kinematicをつけると、重力がはたらかなくなり空中でとまるようになります。これはこれで使い道があるのですが、今回は普通のテーブルみたいにつかいたいということだったので、Is Kinematicはつけないのが正解。
この辺のはまりポイントがよくわからないので、メモをしていくことにしました。書き続けていたら何かそのうちわかるかもしれない。わかりたい。