先日ふと思いついて、『寝るアニメーション』と『布団の3Dモデル』を組み合わせてみました。
結果はめっちゃ可愛かったので、やり方をシェアしようと思います。
ざっくり説明すると、
- アバターが寝た時に、ピッタリの位置に布団がくる設定
- 小物(枕・布団)を出し入れする設定
- アバターを寝かせる設定
をそれぞれ行う必要があります。
この方法を一度理解すれば、
- あなたの好きな3Dモデル(小物)と、
- アニメーションで、
- 無限の組み合わせが楽しめる
ようになります。
理想のポーズで写真撮影をしてみませんか?
それぞれの設定は簡単なので、初心者の方向けに説明します。
この記事は、
- Unityはインストール済み
- VRChatのアバターをアップロードした経験がある(1回でもOK)
という方が対象です。
という方はこちらの記事をご覧ください。
Unityに初めて触れる方向けに、Unityのインストールからアニメーションの導入、アバターのアップロードまで丁寧に解説しています。
※この記事はアバター3.0を前提に解説します。(アバター2.0とは設定が異なるのでご注意ください)
2021/6/15 「仮眠セット」が新しくなりました!!
仮眠セットを導入される方は、新しい導入マニュアルをご覧ください。
目次
【Unity】アバターと小物(3Dモデル)の位置を合わせる方法
(今回も狐雪ちゃんを使って説明します!)
設定の流れは以下の通りです。
- BOOTHで素材を入手
- Unityを起動してアバターと素材をインポート
- アバターが寝た時に、ピッタリの位置に布団がくるよう合わせる
- 小物(布団)を出し入れする設定
- アバターを寝かせる設定(AFKモーションなど)
- アバターをアップロード
という流れになります。
完成すると、
このようにアクションメニューから、
- 枕と布団
- 寝るアニメーション
をON・OFFで切り替えられるようになります。
まずは③まで進めます。
①BOOTHで素材を入手
今回はこの素材を使って解説します。
このセットには、
- 枕
- 布団
- 寝るアニメーション
が全部入っています。
布団にVRChatで撮影した写真を入れて、あなただけの『オリジナル掛け布団』を作ることができます!
詳しくはこちらからご覧ください。↓
【AFK】離席モーション15 仮眠セット – Eagle – BOOTH
②Unityを起動してアバターと素材をインポート
アバターのアップロードに必要なファイルをインポートしてください。
完了したら、アバターのprefabをHierarchyに入れます。
③アバターが寝た時に、ピッタリの位置に布団がくるよう合わせる
- 『Assets』の中で右クリック
- 『Create』→『Animator Controller』をクリック
- 『Animator Controller』をアバターに設定
- Animator画面でアニメーションファイルを設定
- 『Window』から『Animation』を選択
- アニメーションを再生させて3Dモデルを合わせる
- アバターのBoneの中に3Dモデルを入れる
という手順で行います。
まず『Assets』の中で右クリックをして、『Create』→『Animator Controller』を選択します。
次にHierarchyの中のアバターを選択して、追加した『Animator Controller』をマウスで掴んで入れます。
入れた『New Animator Controller』をダブルクリックして、Animator画面に移ります。
Animator画面に切り替わったら、設定したいアニメーションファイルを、マウスで掴んで中に入れます。
『Scene』をクリックして最初の画面に戻ります。
『Window』から『Animation』を選択し、アニメーションを再生できる状態にします。
『Preview』をクリックすると、Animator画面で設定したアニメーションが再生されます。
アニメーションを再生させたままの状態で、Hierarchyに3Dモデル(枕と布団)のprefabを入れて、位置を合わせます。
3Dモデルの位置が決まったら、アバターのBoneの中に3Dモデルのprefabを入れます。
入れ方は簡単です。
- Hierarchyに入れたアバターの▽をクリック
- Armatureの▽をクリック
すると、各部位の名前がズラリと出てきます。
今回は、
- 枕は『Head』
- 布団は『Spine』
に入れることにしました。(狐雪ちゃん以外のアバターは、名称が異なる場合があります。)
それぞれのBoneを発見したら、枕・布団のprefabを、マウスで掴んでBoneの名前の上に重ねて離します。(ドラッグ&ドロップ)
↓こんな感じです。
Boneの中に入れる作業をすることで、
- アバターと3Dモデルが別々の状態だったものが、
- Boneの中に入れることで、
- アバターの体の一部になる
ということです。
この状態でVRChatにアップロードした場合、
- 枕を『Head』に入れたので、
- 頭を動かすと、
- 頭と一緒に枕も動く
という状態になっています。
ですので、基本的には「3Dモデルを合わせた位置と同じBoneの中に設定する」と考えてもらえればOKです。
入れるところがわからない人は、適当なBoneに入れて、試しにアップロードしてみてください。
【VRChat】アバター3.0で小物を出し入れする方法
このままアップロードすると、枕と布団が出しっぱなしになってしまいます。
それでは邪魔なので、アクションメニューからのON・OFFで、出し入れができるように設定します。
この設定をすることで、
- 布団が必要な時に出す(ON)
- 不要な時はしまう(OFF)
ということが可能になります。
ポイントは、
- 小物の出し入れもアニメーションである
ということです。
アニメーションと聞くと、上述したような、
- アバターが寝ころんだり、
- ダンスを踊ったり
するイメージですよね。
小物の出し入れの場合は、
- 普段は小物が見えない状態(OFF)から、
- 小物を見えるようにする(ON)
という動作をするアニメーション…となるわけです。
作業は、
- 『Preview』をクリックしてアニメーションを止める
- 小物の出し入れアニメーションを作る
- FXレイヤーの編集
- パラメータの編集
- アクションメニューの編集
という流れになります。
①『Preview』をクリックしてアニメーションを止める
『Preview』をクリックしてアニメーションを止めてください。
T字のポーズになったところでアバターを選択します。
アバターの『Animator』の端にある○を押して、『None』に変更します。
②小物の出し入れアニメーションを作る
次に小物を出し入れするアニメーションを作ります。(めっちゃ簡単です)
まず、
- 『Assets』の中で右クリック
- 『Create』→『Animation』を追加
してください。
アニメーションファイルの名称は、出し入れしたい小物の名前をつけます。
今回は枕と布団を別々に設定します。(面倒な人は2つ一緒に出し入れしてもOK)
まず枕から設定するので、『makura』と名付けます。
文字は半角で入力してください。(日本語はバグる可能性あり)
『makura』のファイルをHierarchyの、アバターの名前の中に入れます。
次に先ほど使用したAnimationタブを開いて、『Preview』の下が、『makura』になっているか確認します。
『makura』になっていない場合は、
- Hierarchyのアバターを選択
- アバターの『Animator』の項目を見て、
- 『Controller』の項目(狐雪の場合 SDK3.0Koyuki)を、
- 右端の○を押して、『None』に変更します
『makura』をHierarchyのアバター名に重ねた時に、アニメーターファイルが自動的に作られているので、そのファイルを『None』の中に入れてください。
そのあともう一度、Animationタブを確認して、『Preview』の下が『makura』になっていればOKです。
ここからが重要なのですが、小物の出し入れアニメーションを作る時に、
- (A)通常時は出しっぱなしにしておいて、邪魔な時だけ消したい
- (B)普段はしまっておいて、必要な時だけ出す
という2つのパターンがあります。
- (A)は眼鏡や帽子など、身に着けるアクセサリー
- (B)は剣や杖などを手に持ちたい時
というイメージで考えてください。
今回の枕と布団は、必要な時以外は邪魔なので、(B)のパターンで作ります。
小物の出し入れアニメーションを作る時に、
- (A)はアニメーションを録画する時にチェックを外す
- (B)は録画する前にチェックを外しておき、録画中にチェックを付ける
という違いがあります。
今回は(B)のパターンなので、アバターのBoneに入れた枕を選択して、チェックを外します。(重要)
次に赤色の○を押して、録画状態にします。
アバターのポーズが変化しますが、問題ありません。
ここで他の部分をクリックすると画面が変わってしまうので、端の小さな鍵マークをクリックします。
(鍵マークが無い人は、写真のようにLockを選択しておく)
ここで事前に消しておいた、makuraのprefabを選択し、チェックを付ける。
アニメーションに◇のマークと、『makura : Game~』というのが追加されたのを確認したら、再び赤色の○を押します。
Hierarchyのアバターを選択して、アバターのAnimatorの項目を見ます。
右端の○を押して、再び『None』に戻します。
これでアニメーションファイルの編集は完了です!
③FXレイヤーの編集
次にレイヤーの編集作業をします。
『アバター3.0でアニメーションを導入する方法』を読んでくださった方は、『Action』レイヤーに馴染みがあると思います。
が、今回編集するのはFXレイヤーです。
違いをざっくり説明すると、
に分けられます。
- Actionレイヤーは、アバターの体全体にアニメーションを適用させる…というイメージ。
- FXレイヤーは体の一部だけに、アニメーションを再生させる
というものだと考えてください。
(※僕の解釈なので、間違いがあるかもですが、ここでは上記のように考えてもらえたら嬉しいです。)
Hierarchyのアバターを選択して、
- VRC Avatar Descriptor(Script)の中の、
- Playable Layers の中から、
- FXの欄を見て、
- KoyukiFX(狐雪の場合)をダブルクリック
します。
(※FXレイヤーの画面はアバターごと異なると思いますが、やることは同じです。)
- 『Parameters』を押して、
- +をクリックし、
- 『Int』を選択
して新規のデータを作成します。
データの名前を分かりやすく『makura』に設定します。(短い名前がおすすめ)
次に、
- 『Layers』を押して、
- +をクリックすると、
『New Layers』が出るので、名前を『makura』に設定します。
この名前は、『Parameters』で作ったデータの名前と、同じ名前を設定する必要があります。
名前が1文字でも違うと、バグってアニメーションが動きません。
繰り返しますが、短くわかりやすい名前がおすすめです。
次に、
- 名前の横にある歯車マークをクリックして、
- 『Weight』を0→1に変更
します。
次に、
- 右クリックから、
- 『Create State』→『Empty』を選択
すると、オレンジ色の『New State』が出てきます。
次にAssetsの中から、先ほど作った『makura』のアニメーションファイルをマウスで掴んで、『New State』の横に入れます。
『New State』を右クリックして、『Make Transition』を選択して、写真のように繋ぎます。
繋ぎ方は、
- 『New State』→『makura』
- 『makura』→『Exit』
という順番になるよう、写真を見て真似してください。
矢印が繋がったら、
- 『New State』→『makura』に繋いだ矢印をクリックして、
- 『List is Empty』の+をクリック
- 『GestureLeft』を『makura』
- 『Greater』を『Equals』
- 数値を0から1へ※
にそれぞれ変更します。
※この1は『1つ目』という意味だと思ってください。
枕に続いて、布団も設定する場合、『2つ目』の設定だから数値は2となります。
同じように、
- 『makura』から『Exit』に繋いだ矢印をクリックして、
- 『List is Empty』の+をクリック
- 『GestureLeft』を『makura』
- 『Greater』を『Equals』
- 数値は0のまま(変更しない)
としてください。
④パラメーターの編集
- 『Scene』をクリックして最初の画面に戻ります
- 『Hierarchy』のアバターを選択して、
- 『Expressions』から、
- 『Parameters』の欄の、
- 『KoyukiParameters』をダブルクリック※
します。
(※アバターごと名称が異なりますが、問題ありません)
パラメーター画面に移ったら、
- Parameter1~16の空いてるところに、
- 上から詰めて、
- makura(FXレイヤーで入力した名前)を入力します
名前の横は『Int』になっているか確認します。(FXレイヤーの編集で、データをIntで作っているので)
パラメーターの編集はこれで終わりです。
⑤アクションメニューの編集
最後にVRChat内で手軽にON・OFF操作ができるように、アクションメニューの編集をします。
Hierarchyのアバターを選択して、
- 『Expressions』から、
- 『Menu』の欄の、
- KoyukiMenuをダブルクリック(アバターごと名称が異なる)
します。
- 『Add Control』をクリックして新規を出す
- 『Name』を枕に変更(日本語OK!)
- 『Type』を『Toggle』に変更
- 『Parameter』を『makura, Int』に変更
- 『Value』を1に変更※
してください。
※Valueの数値は、『New State』→『makura』に繋いだ矢印に設定した数値と同じにします。
今回は1つ目の設定なので数値は1です。
しかし枕に続いて、布団の出し入れ設定を行う時は、2つ目の設定なので、数値は2と入力します。
※布団の3Dモデルも、枕と同じように設定してみてください。(説明は割愛します)
【Unity】VRChatのAFKモーションを設定する方法
最後にアバターを寝かせる方法をお伝えします。
結論から言うと方法は2つあって、
- AFKモーション(離席中のポーズ)
- アクションメニューからのON・OFF
という感じです。
今回は①の『AFKモーション』に設定する方法をお伝えします。
②の『アクションメニュー』に設定する方法は、こちらの記事で詳しく解説しています。
アクションメニューに設定すれば、小物の出し入れと同様に、好きなタイミングで寝かせる(アニメーションを再生させる)ことができます。
AFKモーションの設定はめっちゃ簡単なので、サクッとお伝えします。
①vrc_AvatarV3ActionLayerを開く
アバターを選択した状態で、
- 『VRC Avatar Descriptor(Script)』の中の、
- 『Playable Layers』の『Action』から、
- 『vrc_AvatarV3ActionLayer』を選択
します。
『Action』の欄の、『Default Action』となっているところをクリックしてください。
すると、『None』と表示されると思います。
『None』の右端に小さな○があるので、そこをクリックします。
ズラリと表示される中から、『vrc_AvatarV3ActionLayer』を探して選択します。
②アニメーションファイルを設定する
Animator画面に移ったら、
- Assetsを見て、
- 枕と布団を合わせた時に再生したアニメーションファイルを、
- 『AFK Init』
- 『AFK』
- 『Blend Out』
- それぞれの『Motion』の中に入れる
ところまで進めます。
『AFK Init』をマウスでクリックして、アニメーションファイル(枕・布団の位置を合わせたアニメーション)を、マウスで掴んで、『Motion』の中に入れる…という感じです。
3つとも同じアニメーションファイルを入れたら完了です。
↑こちらの記事にも、
- アニメーションと小物を合わせる別のやり方(手順)
- 不具合の解決策(アニメーションが再生されないなど)
- 超初心者目線の手引き
を載せています。
合わせて参考にしてください。
まとめ:VRChatで小物を出し入れする方法
- アバターが寝た時に、ピッタリの位置に布団がくる設定
- 小物(枕・布団)を出し入れする設定
- アバターを寝かせる設定
についてまとめました。
今回お伝えした手順を応用することで、
- BOOTHの無料素材を組み合わせたり、
- 自分でアニメーションや小物を作った場合
に無限の組み合わせで遊ぶことができます。
解説を読みながら設定するのは、ぶっちゃけ面倒だったと思うのですが、3~4回繰り返すうちに覚えられると思います。
説明は以上です。
おしまい。