[unity/VRC]巨大なアバター(bot)がいるワールドを作ったので簡単に手順を書いた

# 0.前書き

非実在レベルのおっきな女の子のVRChatのワールドがもっと増えて欲しい。つまりは巨大娘よな。
ということで作ったのですが、なかなかに躓く事が多かったのでそこに辿りつくまでに
苦労した点をピックアップしてHowToを作ろうかなと思った次第。
調べればすぐに出てくるものは割愛します。
（ほんまワールド系の情報（文章）少なすぎるよぉ）

## 目標
### 10000倍の女の子の凄さをVRC(public)で味わえるようにする。
10000倍で動けば10も100も1000も一緒だからね。10000が一番大変。
（100000は…たぶん死ぬほど思いのでpassさ...)

## 対象
VRCにアバター上げたことあるけどワールドは作った事はないレベル

## 用意するもの
●お金（MAX約１万円※）
　Assetとかはわりとセールするので、狙えば安くなる。
●Unity
　VECだから当たり前だよね。
●VRMアバター
　おっきくさせたいアバター。
●のVRC系Asset(VRCSDK2package)
　アバター入れたなら持ってるはず。
●アニメーション作る系のソフトもしくはasset
　頑張ればblenderでいけるらしいけど、さすがに面倒なので、僕はVeryanimation（Asset）買いました。
●terrain系asset
　それなりの地形を作る用。
　面倒なので地形自動生成のassetを入れると楽。僕はGaia2のAsset買いました。
　そこにこだわらないなら不要。
　（だけど、やっぱ山とか海とかあったほうが気分が盛り上がるので良いです）
●その他Asset
　あとはお好みでこだわりたければこだわってください。
●大きなディスプレイ
　２画面あると捗ります。分割して色々な画面を外出しして見れるので。

# １．ワールドの基盤を作ろう
とりあえず下準備しましょう。

### 必要なassetやパッケージをインポートしよう
　アバター作った人ならわかると思うので割愛

### 必要なprefabを突っ込もう
　VRCで使うならVRC_WORLDというprefabが必須なので入れましょう。
　ここがスポーン位置になります。
　（VRChat Examplesの中にあります）

### 地形を作ろう
　人によって違うと思うので基本的に割愛。
　Gaia2の場合は「Gaia2 作り方」とかでググってください。
　（僕もまだよくわかってないので）
　地形を大きくしすぎると重くなるのでほどほどに。
　テストが大変になります。

### 建物を作ろう
　好きなAssetを使っていい感じのにするといいですね。

### アバターを入れよう
　適当にVRMファイルをD&D。

# ２．巨大化させてみよう
巨大娘ちゃんを生み出してみましょう。
animationとanimator(animator controller)を利用して仕掛けを作ります。

### animationとanimatorの関係を知ろう
　animation…アバターのアニメーション。そのまま。ポーズもアニメーションに含まれる。
　animator…アニメーション遷移の管理。フラグによって行先を決めたりする。
　そんな感じ。

## とりあえずアバターを巨大化させてみよう
　とりあえずアバターを巨大化させてみましょう。

### まずは棒立ちにさせてみる
　まず下のAssetに適当なAnimatorを作りましょう（右クリック、Create→AnimatorController)
　そうしたらScene（左画面）にあるアバターのprefabをクリックして、
　InspectorのAnimatorのコンポーネントのControllerに作ったAnimatorを突っ込みましょう。
　これでこのアバターはこのanimatorControllerに準じて動く。ということが紐づけられました。

　そしたら上のタブからanimatorをクリックしましょう。
　そうするとanimatorの画面が出てくるので適当な所で右クリックして、CreateState→Emptyを選びましょう。
　するとEntryから線がのびたオレンジ色の箱が出てくると思います。このオレンジ色の箱はリスポーン直後の初期アニメーションです。
　かなり重要になるのでよく覚えておきましょう。

　オレンジの箱を選択した状態でinspector画面（右画面）を見るとMotionの欄がNoneになっていると思います。
　ここに実際のanimationをぶち込むことになります。
　でもまだanimationはないのでExampleのモノを適当借りましょう。右のボタンを押してIDLEってやつを選びましょう。
　これでキャラクターは棒立ちになったと思います。
　（IDLEで実際にやってないので嘘だったらごめんなさい。仕組みだけ理解してくれればいいです。どうせ仮なので）


### アバターを巨大化させるアニメーションを作ろう
　animator画面で上と同じ要領でもう一つ箱を作ってください。そうすると灰色の箱ができると思います。
　そしてそこにぶち込む為のアニメーションファイルを作りましょう。
　作り方はAsset画面で右クリック→Create→Animationです。
　作ったら灰色の箱のInspectorにあるMotionにぶち込みましょう。
　そうしたら、Animationタブをクリックします。（Sceneでアバターを選択していること）
　Animation画面ではアバターに紐づいたアニメーションを上のタブで選択できます。
　そこで今作ったアニメーションを選択しましょう。

　何もないのでAdd Propatyからtransformation→Scaleを選択しましょう。
　そうしたら、右のタイムラインの白線を動かして、適当なタイミングまで動かします。
　動かしたら、ScaleをXYZ軸すべて大きくしましょう。適当です。
　これで大きな女の子になるアニメーションができました。
　ポーズが嚙み合ってないと思いますが、気にせずに。
　とりあえず、基本はこれだけです。
　また、大きくなる速度に変化をつけたい場合は、Animation画面の下にあるタブから
　Curvesを選んで好みの曲線に変えましょう。

# ３．アニメーターのフラグ管理をしよう
　今のままだとVRCに入ったタイミングで直ぐに大きくなってしまうので、
　フラグが立った時に大きくなるようにしよう。
　そろそろ勝手がわかってきたと思うのでちょいちょい省きます。

### スイッチを作ろう
　何でもいいのでオブジェクトを作ってスイッチにしよう。
　オブジェクトのInspectorのAdd Componentをクリックして、VRC_Triggerを選択しよう。
　VRC_Triggerを選択しよう。VRCTriggerでOnInstantを選択。
　（これはクリックするとフラグが入るタイプ）
　その中（タブ）にあるInterectionTextは近づいた時にでる単語。
　そしてActionsにはAnimationBoolを選択してReceiversにアバターを選択、
　Variableはフラグ名なので自分で決めよう（忘れないように）。
　Operationはとりあえずtrueで。
　これでスイッチの完成

### スイッチに対応するフラグを作ろう
　アバターのAnimator画面左側にParametersタブがあるのでそれを選択して、追加する。（bool)
　名前を先ほどのスイッチと同じ名前でセットしよう。間違えると動作しないので注意。
　（右側のチェックボックスはよくわからないけどチェックしない方がよさそう）

### Animatorでフローを作って、条件をセットしよう
　Animatorの箱から別に箱に遷移する為には、フローを作ってあげる必要がある。
　まず伸ばしたい箱を右クリックしてmakeTransitionを選択。
　宛先まで伸ばしてあげればOK。
　今回だとIDOLから巨大化の箱に伸ばしてあげる。

　そして条件は中のConditionsでセットできるのでtrueになったら巨大化するようにしてあげよう。

### あれ？ループするんだけど。
　この状態で動かしてスイッチを入れると巨大化するけど、
　おそらく巨大化アニメーションがループしてしまう。
　これを解除するのはanimatorで該当の箱をダブルクリックしてLoopTimeを外してあげれればOK。
　これで基本的なanimationとanimatorの設定方法が雰囲気理解できたと思う。


# 4.アニメーションを作ろう（Very Animation)
　Blenderとかでの作り方はようわからんのでvery Animationでの話
　基本的にバグらないようにするためにやっちゃいけない事とかを書く。

### とりえあず適当に動かしてみよう
　まずは動かしてみよう。でチュートリアル動画とか解説ページをサクサクっと読んでみよう。
　で実際にちょっと動かすと凄い便利。簡単にアニメーション（ポーズ）が作れちゃう！！
　ここでIKとかの意味を理解出来ておくと良い。
　（IKは子ボーン主体で親のボーンに自動的に補正をかけてくれるやつ。のはず）

### とりあえず使っとけ機能
　●OptionalのMirror
　　左右反対で色々やってくれるすごいやつ。手の動きはこれがないとやってられない。
　●PoseのSave機能
　　その時のポーズをSaveしてくれる(asset形式)
　　後ほど使いたい時やポーズは同じだけど、アニメーションの途中で分岐かけたい時に重宝する。
　●selection
　　実際にやるとわかるがボーンの角度とかの調整は謎のフィルターに阻まれる事が多いので、
　　selectionで変更するのが楽。

### Conflictに気を付けよう
　VeryAnimationを起動した状態でTransformation系をいじろうとすると、Conflictと表示されて拒否される。
　なので、位置・方角・大きさを変更する時はVeryAnimationを切った状態で行おう。
　（RootXとかはいじらない方がよさそう。リファレンス読んだ感じ。わからないけど）　　

### 巨大アバターでは使ってはいけない機能
　Collision…色々と動かなくなるのでNG
　IK…バグるのでNG

### その他よくわからないけどやってること
　アニメーションのLoopを設定する画面の下のRoot云々については、リファレンス読んだ感じ
　全部ONにしてOriginalにしておくとよさそう。よくわかってないけど。


# 5.超巨大アバターをちゃんと見るために
　ここを書く為に書いたと言ってもよい。
　だって書いてないんだもん。

### とりあえず1万倍アバターを作ってみてみよう
　やってみましょう。
　なんか途中で切れてるし、途中で色がなくなっていると思います。
　これを解消していきます。

### Cameraの設定を変えて、見切れないようにしよう。
　まず、VRC_WORLDのRefarence CameraにCameraをセットしよう。
　これはVRCプレイヤーの視点について、どれを参照しますか？という内容。

　で、CameraのClipping Planesのfarの値を十分に大きくしよう。
　これはどこまで見える用にしますか？という値なので大きくすると見切れにくくなる。（なお処理速度）

### Fogの設定を変えて色がなくならないようにしよう。
　windowからRending→LightingSettingを選択。
　FogのEnd欄を大きくすると色がなくならなくなる。
　いい感じの値にすると大きさが際立って凄いので調整しよう。
　面倒だったあら切ってもいい。

### ついでに
　Gaia2持っている人限定になるが、GX設定のSkies設定のocullusionの部分を入れて、
　色々調整するといい感じの色合いになったりするのでお試しあれ。
　

# 6.アップロード
　規約違反してないことを確認して、アップロードして終わり！終了！！
　みんなたくさんつくってアップロードしてくれよな！遊びに行くから！（instanceで）

# おまけ：今のところわかってないこと
　情報プリーズな話
　●エフェクトのかけ方
　　魔法陣とかさ。欲しいじゃん。そういうの。
　　オブジェクトのスタートとかエンドの仕方がよくわからないので、
　　有識者助けて…。
　●オブジェクト（スイッチ）の一時的撤去
　 DestroyObjectで消して、Prefab化したやつをSpawnさせるのかと思ったんだけど、
   うまくいかなかったので謎。
  ●テキスト出せるのか。
  　やっぱシチュエーション楽しむにはテキストとか欲しいじゃん？
  　音声はできるけどさ。テキストほしいよね。できないのかな？


とりあえずザクザクっとメモみたいな感じになったけど、
こんな感じで終わり。
とりま作ったワールドの参考動画。
(publicにするにはtrustレベルが足りなかったよ…悲しいね)
[https://youtu.be/yTGI9LVi92E]

よくわからねぇとかあったらコメントくれればできる限り回答します。