2020.12.07はじめまして、「内儀・似非」です。Avatars3.0も実装から随分と経ちましたね。ヴァリアールの理念、それはこの仮想世界を我らのような異形・怪人・悪の姿を持つ者達が堂々と闊歩する場所に造り替える事にある。特殊なVRChatアバターギミックを紹介する事を目的としている。本記事が新たなる異形誕生の切っ掛けとなれば幸いである。※基本的に当シリーズでは公開時点でのPCVR環境での動作を想定している。Questでは使用不可ギミックを紹介する事がある点にご注意頂きたい。VRChat」にて検索を勧める。Litでの使用を想定していない点もご注意を。今回はAvatars3.0のギミックを紹介する。昨今は結社としても喜ばしい事に、メカ系の身体や装備を持つアバターが溢れている。フルフェイスヘルメットや完全にロボットの頭部を持つ者の悩みが一つ、ある。それはリップシンクしない事だ。これは音と視覚情報でコミュニケーションを行うVRChatにおいて、声とアバターの結び付きを一つ失っているという事である...特に複数人が入り混じる交流所やイベントにおいては、尚更今誰が喋っているのか分かり辛いと言えるだろう。そこで今回ご紹介するのはメカ系アバターにふさわしい改造...「リップシンクによる発光」である。メカなんだから喋ったら光るでしょう。勘の良い市民諸君は気が付いたかもしれないが、応用すれば別に発光以外の挙動を仕込む事も可能である。Descriptorが追加されている。Layers項目の、FXにAnimatorControllerが設定されている。・アバターのシェーダーにEmissionまたはこれに相当する項目がある。・アバター用のアニメーションを作ったことがある。Menuを作らないので「FXにAnimatorControllerを設定する」「ParameterにVisemeを作成」「AnimatorControllerの新しいレイヤーを追加し、歯車アイコンでWeightを1にする」「Stateを作り遷移の矢印を繋ぐ」などが理解出来るならば問題無しだ。SDK2のアバターを何らかのツールで3.0へ変換していた場合は知らぬ間にFXにAnimatorControllerが設定されている事もあるだろう。※もし、既にFX欄へAnimatorControllerが設定されているのならこの(1)(2)の作業自体が不要なのですよ!!!(1)Asset/VRCSDK/Example3/Animation/Controllers内のvrc_AvatarV3HandsLayerを念の為にShift+Dでコピーして、これを左に並んでいる自分の作業し易いフォルダへ、ドラッグ&ドロップで構わないので移動するのです。Layers項目の、FXのボタンをクリックし、先程のAnimatorControllerを設定してください。Descriptorの、LipSyncのModeがDefault以外であれば大丈夫だと思う。Shape]でしか動作確認していないです。※もし既にアバターのマテリアルのEmissionを最も明るい白に設定している場合には、普段の明るさを若干暗く設定するとアニメーション時との差が分かりやすいと思う。※また、Emissionにマスクが設定されていないアバターは全身が光る。発光させるアバター(CubeChanと命名している)をShift+Dで複製する。名前の後ろに(1)とか付くと思う。以後アニメーション作成作業はこちらで行う。明らかにキューブだがGenelicアバターでの動作確認はしていない。(1)アニメーションを作成(HikaruVoiceと命名した)し、このアニメーションを上記のコピーされたアバターへドラッグ&ドロップ。(2)Animationウィンドウから赤丸の録画ボタンをクリックする。発光させたいメッシュを選択し、一旦アニメーションの0:30辺りでマテリアルのEmissionの初期値のキーを入力する。(3)アニメーションの0:00(先頭)でアバターのマテリアルのEmissionを白にし、更にIntensityの値を+2程度に調整する。赤丸を再度クリックし、録画を終了する。これで「発光後に0:30秒で元の明るさに戻るアニメーション」が作成された。高速点滅するアニメーションでも構わないが、目が痛い。先頭に初期値カラーのキーを打ってもっとゆっくり丁寧に光る位で丁度いいんじゃないですか?Intensityの値はUnity上では確認し辛いテクスチャを使用しているアバターもあるが、この値を大きくすると発光する箇所はより白に近くなる。Bloomの設定されたワールドでは特により強く光る事がわかりやすい。筆者は+10くらいに設定した結果、Bloomで光り過ぎて目が潰れた。◆vrc_AvatarV3HandsLayerのパラメーター設定◆FXへ設定したAnimatorControllerを開き、Animatorウィンドウを確認。Parametersをクリック、+アイコンをクリックして「int」をクリックで新しいparameterが作成されます。このparameter名を「Viseme」としてください。大文字と小文字が区別されるのでコピペが無難。この「Viseme」parameterはリップシンクに用いられます。引き続きAnimatorウィンドウを確認。Layersをクリック、+アイコンをクリックし新しいレイヤー(HikaruVoiceLayerと命名)を作成。歯車アイコンからWeightを1にします。Weightの値を入れ忘れると機能しなくなるので注意。Stateという名前)次に先程作成したアニメーション(HikaruVoice)をProjectから隣にドラッグします。グレーの四角がさらに増え、矢印の少ない下記画像のようになると思う。Transitionをクリック、伸びた線を次のStateへ繋げるようクリックします。矢印の向きには注意だ。State]→[HikaruVoice]間の矢印(Transition)の条件設定をする。◇右下の+アイコンをクリックし、左から順に[Viseme][Greater][1]とする。これは0が無言状態のパラメーターであり、1~14が何かしらの音声を発している際のパラメーターな為である。※もちろん前述の公式ドキュメントを参照して1~14それぞれに細かく条件を設定すれば、一般的なアバターの様なリップシンクを設定する事も可能だ。内容に応じて色が違うとか。State]を用いた方法も検討したい。次に[HikaruVoice]→[Exit]間の条件設定をする。これ↓には「前のStateのアニメーションを完全に再生し終えてから次のStateへ遷移する」という意図があるらしいが、筆者もあまり意味を分かっていない。◇無編集でよい以上で設定は完了です。あとは通常の3.0同様にアップロードを済ませれば完璧だ。発声する度にアバターが発光点滅すれば成功です。最初の方で本ギミックはGenelicアバターでは機能しないと書いている。筆者以外のHumanoidアバターに設定できたのか気になる市民諸君も居るだろう。そこで筆者が以前に個人的にお借りしているDJ9氏の量産型アバターに、この発光リップシンクを設定した動画ツイートを引用しますよ!Emissionのマップは無いので、代わりに既に設定されているテクスチャを再度Emissionに設定して自然な発光に寄せられている...はずだ。◆余談◆ところで筆者の場合は発声に加えて「左手のハンドサインが丁度HandOpenであるならば」という条件、つまり[GestureLeft][Equals][2]という条件を加えたものも作成し、更にStateも複数繰り返し並べることで「左手のハンドサインが丁度HandOpenの状態に、0.5秒おきに発声しているという条件を4度満たせば(2秒間発声し続ければ)更なるアニメーションを再生する」というものを作成している。ショートカット機能も加えたりしてこんな事になっている。別に真似しなくてもいい。工夫次第では「喋るほどにどんどん顔が青くなっていくアバター」「アイウエオに応じて虹色各色に光るゲーミング・リップシンク」「喋ると煙パーティクルを放出する」「モニターが光りノイズ音を再生する」といったアバターを作成する事も可能かと思います。※本ギミックはVisemeの値を参照してギミックを作成している為、EXメニューを用いたギミックとは異なり、場合によっては同期しない相手が居る事があります。参照した公式ドキュメントにもVisemeの項目でそう書いていた気がする。ギミック表示時間が長いなど、目の前の相手以外にもギミックを見せる事を想定する場合には、EXメニューを使用するのが無難と思う。それでは、諸君の新たな姿を楽しみにしているよ。この記事を書いた怪人NAIGI論理的な発想で創作活動を試みているが、非論理的な理由で脱線し、完成像の曖昧なまま得体の知れない何かが産み出され続けている。自身のアバターも現在進行形で試行錯誤を繰り返しており、次回の目標としては全長40mの巨体を駆動させる実験を試みている。!気軽にTwitter(@VRHeel)よりDMを。LICENSED『悪役結社ヴァリアール』が公式に関連商品と認めたもののみに発行されるロゴマーク及びタグである。