cluster SDK を用いたギミックの作成

こんにちは!
cluster アドベントカレンダー5日目の記事です.

概要

モデリング
unityでAnimation設定
会場設営
おわりに


※予定ではSDKのトリガー機能を用いてなんやかんやするはずでしたが,ナンニモウマクイカナイ状態なのでunityのAnimationを用いたエスカレーターの紹介記事になりました.🤔


準備するもの

・unity 2019.2.8f1
・cluster SDK
・blender2.8
・エスカレーターの3Dモデル
やる気
アドベントカレンダーを書く計画性


モデリング

※各種操作方法については省略させていただきます.
まずエスカレーターのステップ部分を作成するために立方体を追加します.追加したら大きさを(x,y,z)=(1.2,0.7,0.4)の大きさ(実寸大)に拡縮します.

ループカットで長辺を細切りにしてできた面を押し出しを用いて溝を作ります.

あとは実物を見ながら形を整え,マテリアルを割り当てると階段部分は完成です!

土台となる部分は特筆すべきことはなく,立方体を押し出したり拡縮を繰り返して作成します.

あとはfbx形式で土台とステップ部分を別々に出力すればモデリングのフェーズは終了です.お疲れさまでした.(。・∀・)ノ゙


cluster SDK の導入

公式ドキュメントを参照しながら進めていきます.
URL: https://clustervr.gitbook.io/sdk/guide/setting_up_the_sdk

まず最初にunity 2019.2.8f1とcluster SDK を入れてください.
環境が構築できれば8割方完成したようなものです.
(筆者はunityのバージョンを2回間違えてインストールしました.😢)


unityでアニメーションの設定

先ほど作成したエスカレーター.fbxをunityにインポートします.
土台の大きさに合わせてステップをHierarchy上に複数配置します.
今回は10個配置しました.

次に空のGameObjectを作成し土台・ステップともに,その子にします.
GameObjectの名前を適宜変更してください.
ここで GameObject にAnimation を作成し,Add Property に ステップのPositionを追加します.

今回は10秒周期のものを作成します.
1つ目のステップのパラメータに以下の値を打ち込みます.

次に打ち込んだキーの始端と終端をShiftキーを押したまま選択し,Ctrl+Cでコピーします.

コピーしたキーを他のステップを選択した状態でペーストするとキーの位置情報をコピーすることができます.
これを利用してすべてのステップに0:30ずつずらしてながらペーストしていきます.10秒周期でAnimationしたいので10:00を超えたところは10:00にカーソルを合わせてKキーを押してキーフレームを作成します.超えている部分はコピーして先頭をずらして空いたスペースにペーストします.
そしてこちらが出来上がったキーフレームです.

しかし,この状態ではコライダーを仕込んだとしてもエスカレーターに乗っても移動できません・・・🤔

ひたすら上下運動を繰り返すカプセルコライダー君

ここでこの問題を解決する方法はステップ間隔でステップ自体に壁状のコライダーを設置しました.これにより後ろからプレイヤーのコライダーを押し続けるので移動することができます!!天才かな?🤔

追記

さらに良い方法を考案しました.前述の壁のコライダーを作る方法ではステップ一つ一つに乗ることができず,複数人が利用すると見栄えが悪くなってしまっていました.😓
ここでunityの標準で用意されているPleneを用いることでこの問題を解決できました!Pleneは裏から表には通り抜けられ,表から裏には行けないようになっているので,この性質を利用しエスカレーターを登ることは出来ますが,後ろには下がれない機構を実現することができました.q(≧▽≦q)

やはり天才でした.

1つ目のエスカレーターが旧機構を用いたもの
2つ目のエスカレーターが新機構を用いたもの

出来上がったものをPrefab化しておきます.


会場設営

ここからはアドベントカレンダーのブログ公開日に建てるイベントのcluster会場を作っていきます(o゚v゚)ノ

まず,blenderを立ち上げます.記念ホールをモチーフにしてみました. これをもとにパースがおかしいところを修正しながら作っていきます.

会場ができたのならunityへインポートします.このとき会場をイチから設定するのは面倒なので,clusterSDKのサンプルシーンを利用します.Asset/ClusterVR/Scenes/Venues の階層にあるMinimalSampleを複製して名前を変更します.

複製したシーンに作成した会場を配置し,色々します(以下略)
そして完成したものがこちらです.

簡単な工夫としては,デスクトップではコメントボードがないとコメントを読めないので出来る限り常に視界に入るように配置しておきましょう.あとはアップロードをすれば完了です.お疲れさまでした!


おわりに

去年の夏頃からclusterを利用し始めましたが,今年は本当にイベントの数も増えいろいろな人達と出会えることができました.

また,思い返せばclusterで遊ぶために3Dモデリングをはじめたのでモデリング歴がちょうど1年になりました.あまり実感はないですが,こうして文字として書き起こしてみるとほんの少しは成長しているのかなぁと思いました.😊

成長の機会を得られ感謝していることをここで述べさせていただきます.m(_ _)m

明日の記事はクラスター社Webエンジニアのわらび餅∞さん(@kohei_miura)です.
URL: https://blog.cluster.mu/2019/12/06/cluster-web-2019/

追記 2019/12/05

イベントにたくさんの方が参加していただけました!
ねおりんさんがおっしゃっていたように,clusterSDKを用いたアセットがもっと利用できるようにBoothで配布していきたいですねヽ(゚∀゚)ノ

ありがとうございました!

当日利用したスライドはこちらになります!
https://docs.google.com/presentation/d/1QrGrmhtMIK6uisSFC26G6to56vABR3F_Sz2cSSYI3tE/edit?usp=sharing
またこちらからダウンロードも可能です!
https://alert194.booth.pm/items/1713315
イベント会場はこちらでした
https://cluster.mu/events/3403e0d0-6428-4f94-b335-0609a410960f