16
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

VRCで座った人を踊らせる椅子をアバターに仕込む

Last updated at Posted at 2019-11-26

前提知識

  • Unityの基本的な操作
  • 購入アセットのインストール方法
  • カスタムオーバーライドでオブジェクトの出し入れをするヤツ(出し入れする場合のみ)

必要なもの

以下のものをプロジェクトに用意しておいてください。

  • VRCSDK
  • お好きなアバター
  • 仕込むアニメーション
  • FinalIK(有料)

やりたいこと

  • Sitした他のプレイヤーを踊らせる

なぜやろうと思ったか

近頃Sitしたプレイヤーを踊らせるギミックが仕込まれたパブリックアバターをよく見かけるため。
ぜひその仕組みを知りたい…!という知的好奇心もあり。

手順

大まかな手順は以下の通り。

  1. 椅子の作成
  2. Animationファイルの編集
  3. アニメーションを椅子へ適用
  4. アニメーション椅子をアバターに仕込む

1. 椅子の作成

椅子はVRC_Stationを使うと作れます。
VRCSDKのパッケージの中に入っているサンプルの椅子を使っても良いですが、
アバターに仕込めないスクリプトは削除しましょう。

今回はCubeを使うことにしました。
1.PNG

Box ColliderはRemoveしましょう。
2.PNG

このような状態にしておきます。
3.PNG

2. Animationファイルの編集

次にAnimationファイル(踊らせるモーション)を編集し、以下の2つのスクリプトを無効にするキーを打ちます。
両方ともFinalIKに入っているスクリプトです。

  • VRIK (3点トラッキング用)
  • Full Body Biped IK (フルトラ用)

今回はCLAZYさんのRunner Action Animation Packをお借りしました。
(有料ですがBlack Fridayで半額です!クールなモーションが大量に入ってます!オススメ!)

まずは適当なGameObjectを作成します。
4.PNG

作成したGameObjectにVRIKとFull Body Biped IKを追加します。
以下のような状態になります。
5.PNG

GameObjectに踊らせるモーションのアニメーションファイルをドラッグ&ドロップします。
6.PNG

GameObjectを選択した状態でAnimationウィンドウを開き、VRIKとFull Body Biped IKを無効にするキーを打ちます。
黄色くなっているヤツは気にしなくて良いです。
7.PNG

以下のような状態になります。
アニメーションの最初から最後まで、2つのスクリプトがオフになるように設定してください。
8.PNG

なお、座っている間ループしていてほしいので、Loop Timeにチェックを入れてあります。
これはアニメーションファイルを選択した状態でInspectorから設定できます。
9.PNG

3. アニメーションを椅子へ適用

アニメーションを椅子に設定します。
Assets/VRCSDK/Example/Sample Assets/Animationから、AvaterControllerTPose.controllerをひったくってきます。
Ctrl+Dで複製などして使うと良いと思います。

ひったくってきました。
10.PNG

ひったくってきたAvaterControllerTPoseを選択した状態で、Animatorウィンドウを開いてください。
Entryから矢印が伸びてTPoseがつながっていると思います。
11.PNG

TPoseをクリックしてください。
Inspector内に出てくる設定画面のMotionを、手順2で編集したアニメーションに差し替えます。
12.PNG

手順1で作成したCubeのVRC_StationにAvaterControllerTPoseを設定します。
VRC_StationのAnimator ControllerのNoneってなってるところにAvaterControllerTPoseをドラッグ&ドロップします。
13.PNG

プレイヤーが座ったときのトランスフォームと離席したときのトランスフォームを設定します。
Cubeの子供に空のGameObjectを作成して、Locationという名前をつけましました。
これを設定したいと思います。
14.PNG

最終的にこのような状態になりました。
ScaleとPositionは適当に調整しました。
15.PNG

これで椅子の設定は終わりです。

4. アニメーション椅子をアバターに仕込む

アバターにアイテムを仕込むときと一緒の手順です。
私はアバターの直下に入れてます。
16.PNG

あとはマテリアルを作ってCubeを装飾したり、
カスタムオーバーライドを設定して出し入れしたり出来るように設定すれば完成です:clap:

所感

入れるモーションによっては視界が大変荒ぶるので、一度テスト用ワールドを作って自分で座ってみたほうが良いです。
あと、VRIKとFullBodyBipedIKをオフにするためだけにFinalIKを買うのか?と聞かれると何も言えねえです。
大いなる目的をもってFinalIKを購入したついでにでも試してみると良いです。

参考文献

16
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?