【VRChat】 Unityでオリジナルの表情をつくる方法 Expressionsを作成

vrchatで表情の設定をすることに成功しましたので、ご紹介したいと思います。
このやり方は、あくまで私が成功したやり方なので、この方法が正しいとは限りませんのでご了承ください。

VRChatで、表情を切り替えるのに使うのは、下記画像の円形のメニューです。

VRのコントローラーのボタンや、デスクトップモードではキーボードのRキーで出すことができます。
その中に、Expressionsという項目がありますので、アニメーションや自分で作った表情に切り替えることができます。

目次

VRモードでExpressionsはOculusコントローラーのBボタンを押しながら中指ボタンで出すことができます。

 

Unity VRChat Expressions オリジナル 表情 アバター AVATOR

標準で搭載されているExpressionsは、手を振ったり、バック転などがあります。
これをオリジナルで作成したいと思います。

Unity VRChat Expressions オリジナル 表情 アバター AVATOR

Expressionsに3つの表情を作る

表情は、BlenderのShape Keysで作った表情をUnityで作ります。
Smile、ω、Hauの3つの表情を作ります。

Smile

Unity VRChat Expressions オリジナル 表情 アバター AVATOR

ω(オメガ)

Unity VRChat Expressions オリジナル 表情 アバター AVATOR

Hau

Unity VRChat Expressions オリジナル 表情 アバター AVATOR

Unityを立ち上げ、FBXのモデルとテクスチャをインポートます。
また、VRChatSDK3もインポートした状態から始めます。
この方法は、過去の記事をご覧ください。

Unity VRChat Expressions オリジナル 表情 アバター AVATOR

 

Expression ParametersとExpression Menuを作成

Projectメニューを右クリックして、Create > VRChat > Avatars >からExpression ParametersExpressions Menuを追加します。

Unity VRChat Expressions オリジナル 表情 アバター AVATOR

このようにProjectに追加しました。

Unity VRChat Expressions オリジナル 表情 アバター AVATOR

HierarchieのFBXモデルを選択し、Inspectorを確認します。
VRC Avatar Descriptorの中のExpressionsに、MenuParametersの項目がありますので、Projectに作ったVRCExpression ParametersExpressions Menuをドラッグでアサインします。

Unity VRChat Expressions オリジナル 表情 アバター AVATOR

Expression Parametersの設定

ProjectメニューのExpression Parametersを選択し、Inspectorsを見ると、デフォルトで下記画像の通りになっています。

Blenderで作ったBlendShapeの名前に変更しました。 Typeは3つともIntにしました。
VRCEmote → Smile
VRCFaceBlendH → ω
VRCFaceBlendV → Hau

Unity VRChat Expressions オリジナル 表情 アバター AVATOR

Expressions Menuの設定

次にProjectのExressions Menuを選択してInspectorを見ます。
Add Controlをクリックし、先ほど設定したExpression Parametersと同じ名前で3つ追加します。

それぞれ、以下のように設定します。

Smileの設定
Name :Smile
Icon : None(Texture 2D)
Type:Button
Parameter : Smile.int

ωの設定
Name :ω
Icon : None(Texture 2D)
Type:Button
Parameter : ω.int

Hauの設定
Name :Hau
Icon : None(Texture 2D)
Type:Button
Parameter : Hau.int

Unity VRChat Expressions オリジナル 表情 アバター AVATOR

Animationの作成

Window > Animation > Animationウィンドウを出します。

Unity VRChat Expressions オリジナル 表情 アバター AVATOR

Animationウィンドウが出てきました。

Unity VRChat Expressions オリジナル 表情 アバター AVATOR

Smileのアニメーションを作成

Project内で右クリック> Create > Animationを作成します。

Unity VRChat Expressions オリジナル 表情 アバター AVATOR

Animationが作成されましたので名前をSmileに変更しました。

Unity VRChat Expressions オリジナル 表情 アバター AVATOR

AnimationのSmileをHierarchyのFBXにドラッグでアサインします。

Unity VRChat Expressions オリジナル 表情 アバター AVATOR

HierarchyのFBXを選択したまま Add Propertyをクリックします。
下記画像のようなものが現れますので、BlendMeshを指定しているMeshを選択します。
私の場合、HeadのメッシュにSmileのBlendShapeを作っています。

Unity VRChat Expressions オリジナル 表情 アバター AVATOR

▶︎をクリックして中のツリーを開いていきます。その中のSkinned Mesh Renderer > Blend Shape.Smile+ をクリックします。

Unity VRChat Expressions オリジナル 表情 アバター AVATOR

AnimationウィンドウのSmileのアニメーションキーフレームが打たれました。

Unity VRChat Expressions オリジナル 表情 アバター AVATOR

その時に、Sceneに配置したモデルが、変なポーズをしますが、これは仕様なので気にしなくて構いません。
次に、タイムラインに2つキーフレームが打たれましたが、右側のキーフレームを2フレーム目まで移動します。
また、0フレームと移動した2フレーム両方に、タイムラインを合わせて、Head:Skinned Mesh Renderer.Blend Shapeのパラメーターを100にします。

Unity VRChat Expressions オリジナル 表情 アバター AVATOR

次に、タイムラインを2フレームにして同じようにパラメーターを100にします。

Unity VRChat Expressions オリジナル 表情 アバター AVATOR

ωのアニメーションを作成

次は、ωの表情のアニメーションを作っていきます。
方法は、Smileと全く同じです。
Projectで右クリック>create > Animationで作成したアニメーションをωに名称変更し、HierarchiesのFBXにドラッグしてアサインします。
FBXは選択したままAnimetionタブをωに変更します。
AddProperty > Skinned Mesh Renderer > Blend Shape.ω+ をクリックします。

キーフレームを0フレームと2フレームにし、2つのHead:Skinned Mesh Renderer.Blend Shapeのパラメーターを100にします。

Unity VRChat Expressions オリジナル 表情 アバター AVATOR

Hauのアニメーションを作成

次も、同じようにProjectを右クリックし、Animetionを作成、Hauに名称変更しHierarchiesのFBXにドラッグしてアサインします。FBXを選択したままAnimetionのタブをHauに変更します。Add PropertyをクリックしてSkinned Mesh Renderer > Blend Shape.Hau+ をクリックします。

キーフレームを0フレームと2フレームにし、2つのHead:Skinned Mesh Renderer.Blend Shapeのパラメーターを100にします。

Unity VRChat Expressions オリジナル 表情 アバター AVATOR

 

Animator Controllerの追加

次に、Projectを右クリック>Create >Animator Controllerを追加します。

Unity VRChat Expressions オリジナル 表情 アバター AVATOR

Animator Controllerを追加いたしました。
名前をDigimotto.Animator Controllerに変更いたしました。

Unity VRChat Expressions オリジナル 表情 アバター AVATOR

HierarchieのFBXファイルを選択し、Inspectorを確認します。
VRC Avatar Descriptorの中のPlayable Layersに、FXという項目がありますので、Projectに作ったAnimator  Controllerをドラッグでアサインします。

Unity VRChat Expressions オリジナル 表情 アバター AVATOR

Animator ControllerをダブルクリックしてAnimetorタブを出します。
Parametersタブにして、をクリックしてintで表情3つ分(Smile、ω、Hau)を追加します。

Unity VRChat Expressions オリジナル 表情 アバター AVATOR

下記画像の左上に3つ追加いたしました。
次に、Base Layer上で、マウスの右クリック > Create State > Empty

Unity VRChat Expressions オリジナル 表情 アバター AVATOR

オレンジ色のNew Stateが作られました。Entryから→で繋がっています。
もう一度マウスの右クリックからCreate State > Emptyを出します。

Unity VRChat Expressions オリジナル 表情 アバター AVATOR

グレー色のNew Stateが作られました。
ブルー色のAny Stateを右クリック、Make Transitionを選択します。

Unity VRChat Expressions オリジナル 表情 アバター AVATOR

Any Stateからができますので、New Stateにつなげます。

Unity VRChat Expressions オリジナル 表情 アバター AVATOR

New Stateを右クリックし、Make Transitionを選択
New Stateから→が出ますので、赤色のExitに繋げます。

Unity VRChat Expressions オリジナル 表情 アバター AVATOR

このように、New StateからExitに→でつなげました。

Unity VRChat Expressions オリジナル 表情 アバター AVATOR

グレーのNew State を選択しInspectorを確認します。
一番上の枠にSmileと入力します。New StateがSmileに変更されます。
Motionの割り当てをします。作成したSmileのMotionをあてはめます。

Unity VRChat Expressions オリジナル 表情 アバター AVATOR

同じようにグレー色のState(ω、Hau)を作りました。
ωとHauのStateをそれぞれ選択し、InspectorのMotionの設定もします。
ωのMotion欄には、ω Motion、
HauのMotion欄には、Hau Motionを入れます。

 

次に、水色のAny Stateから伸びているを選択してInspectorを見ます。
タイムラインがありますが、右にあるキーフレームを0に持っていきます。
そして、Conditionsの+をクリックします。
Smileを選びます。

これも同じように、Any Stateからωに伸びている→と、
Any StateからHauに伸びている→にも同じ設定をします。
Conditionsの設定はω、Hauそれぞれのものを選択します。

Unity VRChat Expressions オリジナル 表情 アバター AVATOR

ライムライン部分はこのようにします。
右のキーフレームを一番左にドラッグで移動しました。

Unity VRChat Expressions オリジナル 表情 アバター AVATOR

キーフレームの設定は動画の方がわかりやすいので、gif動画でもご覧ください。
動画はHauの設定の時のものです。

Unity VRChat Expressions オリジナル 表情 アバター AVATOR

以上で、VRChatにアップロードして完成です。
ExpressionsにSmile、ω、Hauが使うことができます。

最後までご覧いただきありがとうございました。