【VRChat】world固定メモ
この前フレンドさんに聞かれたときグダグダしちゃったのでnoteにメモしてリンク貼り付けたらいっかと書いてるメモです。
下準備
1:まずはヒエラルキー上で右クリック→Create Emptyを押して、空のGameObjectを作成してください。
2:そのobjectの名前を固定やworld原点などわかりやすいものに変更してください。
3:Assetsにドラック&ドロップでprefab化し、ヒエラルキー上にある方は削除してください。
ゲームオブジェクトの設定
1:図1のようにゲームオブジェクトを組んでください。
2:図2のように、私が固定と名前を付けているオブジェクトを選択してInspectorからAdd Componentを選択、出てくる検索窓からParent Constraintを検索して追加します。
3:sourcesの+を押して、できた枠にassetsから下準備3で作ったプレハブをドラック&ドロップし、zeroを押します
4:次にオブジェクトの位置決め用に作ったオブジェクトを選択、2の時のようにParent Constraintを追加、sourcesの+を押して、できた枠にヒエラルキー上からアイテムの位置にしたいオブジェクトをドラック&ドロップしたあとzeroを押してください(図3と図1参照)
アニメーション
1:Assets上で右クリック→create→animation、それと同じくcreateからanimation controllerを選択し作成します
2:私がどこでもお布団ギミックと名前を付けているオブジェクトに作成したanimation controllerをドラック&ドロップします
3:animation controllerをダブルクリックしanimatorを開き、そこにanimationをドラック&ドロップしてください
4:animationをダブルクリックで開いた後、どれでもいいのでオブジェクトをクリックします。
5:オブジェクトの位置決め用コンストを入れたオブジェクトを選択し、開いたanimationのPreview横の録画マークを押します
6:コンスト自体の✓を外し、また付けます、sources内に入れたオブジェクトの値を0にした後再度1にします
7:出来たらもう一度録画マークをおします
8:その後assetsにあるanimationを一度クリック、ctrl+Dで複製し開きます。
9:複製したanimationもcontroller内にドラック&ドロップし、3~5と同じことをします。
10:開いたanimation内のsources内に入れたオブジェクトの値のほうを選択し右クリック→Remove Propertyで削除します。出来たら二つのanimationとanimation controllerの名前をわかりやすいものに変更してください。
アニメーションコントローラーの組み方
1:animation controllerを開き、図6のように組んでください。組み方はワールド固定オフを選択、右クリック→make transitionを選択した後ワールド固定オンを選択、とその逆の動作です。
2:animatorのparametersを選択して+→boolを選択しboolを作り名前をworldに変えます。
3:ワールド固定オフとワールド固定オンのWrite Defaultsを確認しご自身の使用アバターに合わせてください(MA Merge AnimatorコンポーネントのアバターのWrite Defaults設定に合わせるに✓を入れとけば大丈夫です)
4:1で作った遷移(transition)を選択し図7のようにしてください。
青くなってる遷移が選択されてる遷移です。
パラメーター設定とメニュー設定
1:MA parametersコンポーネントからworldの同期するを✓してください。
2:MA Menu Itemコンポーネントでメニューを作る時に、ワールド固定はタイプをToggleにしてパラメーター名をworldにしてください。
終わり
これでワールド固定が出来るようになりました。
少し応用すれば手を離せばワールド固定、とかもできます。
最後の項目のみモジュラーアバターでメニューが作れること前提になってしましましたが許してください<(_ _)>
因みにこれくらいならMAを使わないほうがいいと思います。(MAを使用したギミックを2つ以上使うと、元からアバターに入っているメニューからオンオフできる表情を変えるレイヤーのみ無効化するタイプのMMDWorld対応化ギミックが破壊される事があるため)