こんにちは!!
ケーキです♪♪
皆さまVRChatで物は出したりしてますか?
私も出しておりますよ!主にケーキをね!!
こういった出したものをワールドに固定しておいて、好きな時に手で持てたら便利じゃないですか?
できますよ!!
UnityでRigidbodyとFixedjointを使用しアニメーションオーバーライドでそんな夢も叶えることができます!
アニメーションオーバーライドで持ったり・離したりすることを”疑似ピックアップ”と言います。
今回はそんなことができる疑似ピックアップ機能を使って物を持ったり離したりしてみたいと思います!
準備するもの
アバターモデルと持たせたいモデル(小物など)
まずは、皆さまがお好きなアバターモデルをご用意ください。
今回は私は、くろちゃん様(Twitter:@All_Alone_kuro)が作成したくろちゃん(分霊)モデルを使用させていただきます。
あと、アバターに持たせたい小物モデルなどお好きなものをご用意ください♪♪
私は今回”どら焼き”の3Dモデルを用意しました♪♪
ちなみにこの”どら焼き”モデルは私が作成させていただいたものになります♪♪
BOOTHでも配布しておりますので、ご自由にお使いください!!
作業編
ではここからアバターモデルに疑似ピックアップ機能を付けていきます。
アバターモデルへの小物を仕込み
まずはアバターのどこに小物を入れていくかになりますが、
今回は”くろちゃん(分霊)”の右手の平にどら焼きを持たせるような形で進めていきます。
Hierarchy内のアバターのツリー構造を展開していき、右手の平(モデルによって名前が違います)まで進みます。
右手まで開いたら、右手(Bip_R_Hand)を選択して、右クリック→”Create Empty”を選択。
画像のような構造で作成してください。また、作成したら名前も変えておきましょう。(画像では”Separate”,”Combine”,”RB_R”としております)
上記で作成した”Combine”のオブジェクトの中に”どら焼き”モデルをドラッグ&ドロップをしましょう。
追加したどら焼きを選択し、右側Inspector内のトランスフォームで手の平の位置になるように位置・回転を調整しましょう。
調整が済みましたらどら焼きが入っているオブジェクトの”Separate”を選択し、アバターの一番上の階層までドラッグ&ドロップしましょう。
これでオブジェクト構造は完了です。
次に”持つ・離す”などの設定をしていきます。
持つ・離すの設定
ここでは上記で作ったどら焼きを持ったり・離したりできる機能を追加していきます。
ではまず右手に設定してある”RB_R”を選択し、右側Inspectorから”Add Component”を押し”Rigidbody”を追加しましょう。
(検索欄に”rig”など入れると出てきます)
追加してできた”Rigidbody”のコンポーネントは以下のように設定してください。
次にアバターモデルの上位階層に出した”Separate”と”Combine”にコンポーネントを設定します。
“Add Component”から”Fixed joint”を両方共に設定しましょう。
“Separate”と”Combine”の設定は以下のようにしてください。
最後に一つ”Combine”にコンポーネントを一つ追加しておきましょう。
“Add Component”→”Animator”
では次に上記で作成した機能をアニメーションオーバーライドで持つ・離すの設定をしていきましょう。
アニメーションの設定
ではアニメーションを作成していきましょう。
まずProject内に適当なフォルダを作成し、そこにアニメーションクリップ”dorayaki”とアニメーションコントローラ”Empty”を作成しましょう。
上記で作成した”Empty”は”Combine”のAnimatorにドラッグ&ドロップしましょう。
また、Animator内の”Apply Root Motion”にチェックを入れましょう。
では次にアニメーションクリップを作成していきます。
まずはアバターモデルをCtrl+Dで複製し、複製したアバターに先ほど作成した”dorayaki”をドラッグ&ドロップします。
ドラッグ&ドロップしたら、メニューバー→”Window”→”Animation”からアニメーションウィンドウを開きましょう。
表示したアニメーションウィンドウ内で”Add Property”を押し、以下の階層まで行き”Is Kinematic”を追加しましょう。
“Add Property”→”Separate”→”SeparateCombine”→”Combine”→”Rigidbody”→”Is Kinematic”(右の+ボタン)
“Combine”-“Rigidbody”内にある”Is Kinematic”にチェックが入っていると手から離れ、チェックが外れると手に持つ(戻る)ようになる。
つまりこのアニメーションではオーバーライド時に小物を”持つ”という動作が入っている。
他のオーバーライド時には手から”離れる”ようになる。
このアニメーションクリップを設定しアップロードをすれば完成です!!
ですが、常に小物を持っていたくない場合もありますよね?
そういう場合は元怒様が作成されている”EmoteSwitch V3″と組み合わせることで、
エモートで小物を出す→持つ・離す→エモートで消す
ということも可能になります。
設定時はこんな感じ
アップロードして動画を撮ってみました♪♪
最後に
お疲れ様でした~!!
疑似ピックアップの内容は以上になります♪
私がこれで試した結果、他の人にもちゃんと持ったり離したりしている様子が見えているそうなので、
ワールド側にもちゃんと固定されているみたいです。
※ただし、自分以外の方が触ることはできないです。。。
あくまで想像ですけど、これを使ってパーティクルなんかを持ったり離したりして何かができそうですね♪
ではでは、今回はここまで!
最後まで読んでいただきありがとうございました~!!