BlackIceCoffeePhenomenon

溶け出す氷によって味が薄くなると併せ、味覚が苦味に慣れていくことで、加速度的に味覚への刺激が減衰する現象に関するブログです。

【unity2017対応済】VRChatで足跡の波紋(パーティクル)を残す

せっかくなので足跡を残してみませんか。
きっと歩くのが好きになりますよ。

 

今来たところなんです!

f:id:yananann:20181221232841p:plain



モノを持たせたり放ったり、手から出るものばかりでしたが
今回は足から出ます。手が出る足が出る。

これの足版です

yananann.hatenadiary.jp

 

久々の記事なので、がつがつに丁寧に書きます。

 

全体の流れ

 0,下準備
 1,パーティクルの実装
 2,放たれたパーティクルの設定
 3,パーティクル放出時のアニメーションの設定
 4,カスタムオーバーライドの設定

 

0,下準備

yananann.hatenadiary.jp

 これの「Unityで詳細を設定しアップロードする」の
 通常のアバターの出力手前の準備まで済ませます。

 

1,パーティクルの実装

  1. パーティクルの設計
    どんな波紋を作りたいか考えます。大抵はパラメーターで実現できます。
    使うパラメーターよりも、どんな形にしたいかが大事!
    ということで今回はこんな感じの挙動を考えました。

    f:id:yananann:20181221223325p:plain
    またExcelかよ!!!きったねー図だなぁおい。
    って、本人がわかりゃいいんです。

  2. 両足にParticleSystemを配置する
    Armatureから階層掘って、LeftAnkleとRightAnkleを選択し右クリックより
    Effects→ParticleSystemを選択します。

    f:id:yananann:20181221223501p:plain
    (クリスマスエディションです。ニーソの色がカラーコーン・・・。)

  3. 設計した挙動の実装
    今回は赤丸と青丸のところだけカスタマイズしました。
    EmissionのTimeの部分の青丸は右足と左足で数値をずらしてください。
    両足とも0.000だと、同時に波紋が出るのでキョンシーみたいになります。
    右足が0.000なら左足は0.300とかが良いかと思います。
    Radiusは0.01推奨です。画面ショット撮るタイミングミスったw
    f:id:yananann:20181221223723p:plain

  4. 最後にふわっと浮いて消えるやつの実装
    Force over Lifetimeはパーティクルの寿命に応じて粒子の挙動を変えるやつです。Yの最後を少し浮かせる事で、消滅間際に浮くようになります。
    Size over Lifetimeはパーティクルの寿命に応じて粒子の大きさが変わります。
    消える時にパッと消えるのもあれなので、フェードアウトするように小さくします。

    f:id:yananann:20181221224109p:plain

2,放たれたパーティクルの設定

  1. リネームする。
    ParticleSystemでもいいけど名前つけてあげよう。
    Foot Printで足跡ということで・・・
    f:id:yananann:20181221224444p:plain


  2. 外部から操作する下準備をします。
    CreateEmptyからできたGameObjectの中にfootprintを入れてあげます。
    リネームもしてあげよう。

    f:id:yananann:20181221224543p:plain

    下の画像のようにリネームして、パーティクルを入れたら、Armatureの外に出します。

    f:id:yananann:20181221224703p:plain

    f:id:yananann:20181221224829p:plain

    外に出したGameObjectはScaleが100なので全部1にします。
    RotationとPositionを触ると変なことになるのでそこは触らないようにします。

  3. RigitBodyとかの設定
    両足選んで、[Add Component]よりRigidbodyを追加します。

    f:id:yananann:20181221225125p:plain
    赤丸のあたりを編集します。

    f:id:yananann:20181221225233p:plain

  4. FixedJointの設置
    GameObjectを選んでAdd ComponentよりFixed Jointを選択します。

    f:id:yananann:20181221225334p:plain
    セットでRigidbodyが入るので、同じように設定して
    FixedJointに3で設定したRigidbodyと関連付けます。

    f:id:yananann:20181221225442p:plain

3,パーティクル放出時のアニメーションの設定

主な流れとしては、メインのパーティクルのスイッチ切って
アバター複製した方のスイッチいれて、アニメーション設定してゴーです。

  1. ParticleSystemのスイッチを切ります。
    指先で出してる間はオブジェクト自体のスイッチオンオフで問題ないのですが、
    今回はWalkやRunで放出し、立ち止まった後も既に出た分は残したいので
    スイッチの方法を変えます。
    パーティクルのEmissionのスイッチをオフにします。

    f:id:yananann:20181221230036p:plain

  2. アバターを複製します。

    f:id:yananann:20181221230311p:plain
    メインアバター右クリックでDupricateで複製します。
    複製後メインアバターのオブジェクトのスイッチをオフにします。

  3. アニメーション(箱もの)の作成
    Assets直下にAnimationフォルダでも作成し、フォルダ内にAnimationを作成します。
    名前はここではFootPrintにします
    f:id:yananann:20181221230425p:plain

  4. 作成したAnimationを複製したアバターに投げ込みます。
    画面上部のメニューをWindowからAnimationを出して青丸部分が
    FootPrintとかになっていることを確認します。f:id:yananann:20181221230607p:plain

  5. アニメーションにスイッチをアサインします。
    Animationの●押して録画モードっぽくなったら
    両方のパーティクルを選択して、Emissionを2回(オフオン)します。

    f:id:yananann:20181221230749p:plain

  6. アニメーションの実行時間の設定
    録画モードを外したら0:00をコピーし1:00に貼り付けます。
    モノ持たせる場合0.00-0.01でしたが、オーバーライドした時に超高速で歩くので
    1秒かけて右足と左足を交互に出すアニメーションにします。

    f:id:yananann:20181221230907p:plain

  7. 歩くアニメーションをアニメーションに組み込む
    Assets→VRCSDK→Examples→SampleAssets→Animationより
    Walkをを選択し→の▲押してWalkのアニメーションを開きます。
    するとこんな感じでびっしりアニメーションが出ます。
    そしたら全部コピーしてFootPrintのアニメーションに貼り付けます

    f:id:yananann:20181221231142p:plain

    f:id:yananann:20181221231336p:plain

    超ボリュームになりました。
    この状態で再生ボタンを押すと実際に歩いてくれます。かわいい。

  8. オーバーライドする部位を取捨選択する
    デスクトップでプレーするときは上のままにすると、いい感じに手や足を動かしてくれます。
    VRでプレーする時は、手を挙げながら歩いたりもできちゃうのですが
    このアニメーションがあると上書きされてしまいます。
    なので、足の部分以外のアニメーションを捨てます。
    青で選択された部分あたりは捨ててよいと思います。

    f:id:yananann:20181221231615p:plain



4,カスタムオーバーライドの設定

  1. CustomOverrideをコピーします。
    どこでもいいですが、私はAnimationに入れてます。

    f:id:yananann:20181221231810p:plain

  2. オーバーライドするアニメーションの設定
    今回はWalkにオーバーライドしたいのでWalkの二つに入れます。
    WALKBACKは後ろ歩き、WALKFWDは前進です。

    f:id:yananann:20181221231957p:plain

    RUNから始まるやつは走るやつにアサインし
    STRAAryは横歩きにアサインします。
    RUNにアサインすると走るスピードで、歩くアニメーションをするので
    3-7でつくったアニメーションの設定を変える必要があります
    具体的には3-8とかで取捨選択終わった後でSamplesのレートを60から90にすると1.5倍速で歩いてくれます。
    納得のいくアニメーションをしてくれないのでなかなかつらいです。



  3. オーバーライドしたアニメーションをメインのアバターに設定する
    BluePrintID見えちゃってるし。。。まぁいいや。
    メインのアバターのカスタム部分にさっき設定したOverRideを設定します。

    f:id:yananann:20181221232443p:plain

  4. アップロード前の準備
    メインのアバターを表示にして、複製したアバターを非表示にします
    メインのアバターのパーティクルのEmissionはオフにして
    複製したアバターのパーティクルのEmissionがオンであることを確認します。

そんな感じですかね。