VRChat アバターにライトを入れる(PC向け)

VRC内で明るさ、光の届く距離、照らす範囲を変更できるライトを実装した話とそのやり方

今回の完成図

前提知識
・VRChatにアバターをアップロードしたことがある
・前の記事モノの出し入れを管理するを読んだ
・ライトはQuest対応できない

目標
・アバターにライトを持たせる
・明るさ、光の届く距離、照らす範囲をそれぞれExpressionで変更する

手順
①ライトを持たせる
②アニメーションファイルを作る
③FXレイヤー、Float関数、Expressionの設定


①ライトを持たせる


ヒエラルキーで右クリックしてライト→スポットライトを出す
スポットライトは懐中電灯のような形状のライトになるので
提灯やランタンのようなライトが欲しいときはPointLightを使う

ライトの位置を右手のボーンの子(指と並列の位置)に入れる
シーン上でもライトの角度や位置を調整して手のひら当たりに持っていく
銃と同じように人差し指と同じ向きに持つのが一番直感的に操作しやすい
デスクトップユーザーの場合はHeadに固定した方が使いやすいかも

ライトのパラメータのうち今回変更する場所
・Range (光の届く距離)
・SpotAngle (照らす範囲の角度)
・Intensity (光の強さ・明るさ)

これより後はマニア向けなのでライトが使えたらOKという人はON/OFF設定だけして終わりでもOK

ーマニア向けー

②アニメーションファイルを作る

ヒエラルキーのアバターをCtrl+Dで複製してアバター(1)を作り作成したアニメーションファイルをD&Dでアバター(1)に入れる

アニメーションファイルをダブルクリックして開く
アバター(1)を選んでから録画ボタンを押す

録画ボタンを押したらアバター(1)の階層を開きライトを選択
インスペクター上で使いたいパラメータを適当に触って録画欄に加える

作ったアニメーションファイルをCtrl+Dで複製して計5個にする
1つ1つ開いていきリムーブプロパティで単一の項目が残ったファイルにする

5個のアニメーションファイルがこんな感じに出来る

Float関数で使えるようにRange、Angle、Intensityのアニメーションファイルにキーフレームを作る
青いダイヤマークを0.10秒までスライドさせた後0.00秒のところでAdd Keyをしてダイヤマークを追加する

後々作るExpressionの0%~100%のスイッチを操作した時に
0%の時には0.00の数値が、100%の時は0.10に入力した数値が再生されるようになる
Angleは0~180
Rangeは0~100
Intensityは1~10
など広い値を入れておけばゲーム内で微調整しやすい
録画ボタンの近くにある”▶|”  ”|◀”のスイッチで白い縦線が動くのでキーの数値を入力する
Angle、Range、Intensityの3個はこの操作をする
ON/OFFの2個はキーを増やさずにONなら1、OFFなら0を入れるだけでOK

コピーしたアバター(1)と自動で作成されたアニメーションコントローラはもう必要ないので消してOK

アバターのFXレイヤーに設定されているファイルを探す

FXを開きON/OFFを作る
※ON/OFFについては前の記事で書いてるのでちょっと割愛
完成図はこんな感じboolのパラメータを1個作って設定する
前の記事で最初にEmptyを作っていたがOFFを最初に入れてオレンジにするのが最適っぽいのでこの図と同じように作ってください

③.1 Float関数で再生するアニメーションを設定する


Float関数を追加、3種類使うので名前はAngle,Range,Intensityとしておく

レイヤーを作りウェイトを1にして名前もわかりやすく設定
Angleのアニメーションファイルを入れてMotionTimeの欄にチェックを入れる、参照するパラメータもAngleを指定する
WriteDefaultsのチェックは外す
Range、Intensityについても参照パラメータ以外は同様に設定する

③.2 Expressionの設定

前記事で紹介しているので駆け足で紹介
パラメータのファイルを開いてFloatでFXで設定したのと同じ数値を入れる
数値のTypeはFloatで、Savedにもチェックを入れた方が良い

メニューの設定
TypeをRadialPuppetに変更
ParamaterRotaionにパラメータで設定したFloatを入れる
これも同様に3つ作る

終わりに

ライトを持つとホラワが苦手でも何とかなる気がしてくる
ワールド製作者や同行するメンバーの迷惑にならない範囲で活用して下さい


宣伝

今回画面にチラチラ映ってたモデルは
私がBlenderで制作したオリジナルアバターです
ライトは設定されていませんが是非見て下さい


いいなと思ったら応援しよう!