【Blender】BlenderでのVRM1.0設定

目次

この記事の目的

この記事ではBlenderのVRM formatアドオンを用いてVRM設定をする際のポイントについて記載する。

この記事で使用したBlenderのバージョンは4.3.2、VRM formatのバージョンは2.33.1。

 

VRM formatのサイトは以下のリンク。

VRM format

 

そしてVRM1.0のドキュメントはこちら

specification/VRMC_vrm-1.0/README.ja.md

 

あとはVRM1.0のポイント解説動画

 

オペレーター 

VRM formatアドオンをインストールすると3Dビューポートのサイドバーに「VRM」というタブが現れる、VRMタブ内はいくつかのセクションに分かれており、オペレーターセクションではVRM形式に対応したボーンの作成、VRMモデルのチェック、エクスポート時の設定、VRMのバージョン指定ができる。

VRMのバージョンは0.0と1.0のどちらかが指定することが可能で、どちらを指定したかによって以降の設定内容が変わる。この記事では1.0で進めていく。

 

Meta

MetaセクションはVRMファイルの基本的な情報やモデル利用条件についての情報を記載するセクションとなっている。

Thumbnail

サムネイル画像を指定する、解像度は1024×1024推奨。

名前とAuthors(作者)

必須項目。

Avater Permission

アバターとして操作できるユーザーの指定で、Authorは作者のみ、Everyoneは誰でも、onlySeparatelyLicensedPersonは別のライセンス文書によって許諾されたユーザーのみ許諾するといったもので、販売アバターに対して用いられることを想定しているらしい。

Commercial Usage

商用利用の可否で禁止、個人の許可、法人も許可の3つがある。

Credit Notation

クレジット表記の要否となる。

Modification

改変の可否で、改変不可、改変のみ可、改変したものを再配布可能の3つ。

Allow Excessively Violent UsageとAllowExcessively Sexual Usage

それぞれ過剰な暴力表現、性的表現への許可となる。どこからが過剰なのかは公式ドキュメントに記載されてないのでここではR18かそれ未満かと解釈することにする。

 

その他の項目について知りたい場合は以下の公式ドキュメントに記載されている。

specification/VRMC_vrm-1.0/meta.ja.md

 

Humanoid

HumanoidセクションはVRMモデルのボーン設定について記述する場所となっている。オペレーターセクションの「VRMモデルを作成」で追加したボーンを使用しているのであればいじる必要はない。

 

First Person

First PersonセクションではVRアプリなどで1人称視点で操作する際に表示するメッシュの設定をすることが出来る。

髪の毛や頭部オブジェクトに対して「Third-Person Only」を設定することで1人称視点で髪の毛が視界を妨げるといったことを防ぐ。

 

First Personに関するドキュメントはこちら

specification/VRMC_vrm-1.0/firstPerson.ja.md

 

Look At

Look Atセクションでは視線制御についての設定をする。

Type

視線の移動をボーンでやるかExpression(シェイプキー)でやるかを指定する。

Preview Target

プレビューを有効にする、のチェックをONにしてこの項目にオブジェクトを指定すると、そのオブジェクトを移動させたときに視線が追従するようになる。

Offset from Head Bone

ヘッドボーンからの視線移動の基準点(つまり目の位置)を設定する項目。

 

その他の項目はよくわかんないので以下をみてね。

specification/VRMC_vrm-1.0/lookAt.ja.md

 

Expressions

Expressionsセクションでは表情についての設定を行う。プリセットとしてVRMの表情、口の形、視線、まばたきの設定があり、上の画像ではHappyに対応する表情としてfaceメッシュのeye_smileシェイプキーを動かして、その際はまばたきを無効かするように設定している。

Is Binary

表情を変える際に途中の状態を経由せずに0か1かの状態のみ使用するように指定する。

Override Blink/Look At/Mouth

表情変更時にまばたき/視線移動/リップシンクをさせないようにするか設定できる、目を動かす表情の時はBlinkをBlock、口も動かす表情であればMouthもBlockにするとよい。

Morph Target Binds

ここで動かすシェイプキーを指定する。”+”ボタンを押すとアイテムが増えるので対象のメッシュ、シェイプキー、動かすウェイト値を設定する。

 

ドキュメントはこちら

specification/VRMC_vrm-1.0/expressions.ja.md

 

Node Constraint

Node Constraintセクションで設定する項目は無く。ここに記載されている条件を満たすボーンコンストレイント設定のボーンがあるとこのセクションに表示される。

 

ドキュメントはここ

specification/VRMC_node_constraint-1.0/README.ja.md

 

Spring Bone

Spring Boneセクションでは揺れもの関連の設定を行うことが可能で、「アニメーションを有効にする」チェックを入れることでアニメーション再生時に設定したボーンを揺らすこともできる。

 

Spring Bone Springsセクションで揺らすボーンの設定をする。一番上のエリアで”+”を押すとグループが作成され、そのグループ内に揺らすボーンを登録していくという流れになる。

中心

平行移動(歩き、走り等)による揺れを制御する際に指定する。基本は空でよいが、走るたびに動いて体にめり込むのが気になる場合などはrootやhipsを指定する。

Joints

実際に揺れるボーンを指定していく。最初に根元のボーンを指定してから”+”を押すと設定を引き継ぎつつ次のボーンが自動的に指定されて楽。

Stiffness Force

元に戻ろうとする力、小さい値にするほどボーンが良く動き、大きいほど動きが小さくなる

Gravity Power

重力の強さ、フレーム毎にGravity Dirで指定した方向への重力がかかる。

Gravity Dir

重力の方向、Z=-1.00で下方向への重力になる。

Drag Force

減速の大きさ、小さいほど素早く動き、大きいほどゆっくり動くようになる。

Joint Radius

ジョイントごとの衝突判定の大きさ。

Collider Groups

このボーングループに対して衝突させるCollider Groupの設定。ここに登録しないと衝突判定が起きない。

 

Spring Bone設定の注意

Spring Boneで1つのボーンを揺らすためには最低2つのJointsを指定する必要がある(Unityではボーンの長さという概念が無いため揺らすボーン→次のボーンまでの長さでボーンの長さを認識するため)。

上の画像ではメッシュを動かすためのbone_mainを動かすためにはbone_mainとその子要素のbone_leafをJointsに指定する必要がある。この時パラメータの設定はbone_mainのものだけで良く、bone_leafに設定したパラメータは反映されない。

 

Spring Bone Colliders

コライダーの設定。ここで設定したコライダーを後でCollider Groupsに設定する。ここで作成したコライダーはBlender内にシェイプが球のEmptyオブジェクトとして生成される。

 

ボーン

コライダーの基準となるボーンを設定する。

Collider Type

コライダーの種類、球かカプセルを選択する。

オフセット

コライダーの位置を調整する際に使用する、なお名前もここで指定する。コライダーの種類でカプセルを指定した場合、終点の名前と座標を入力する欄が増える。

半径

コライダーの大きさを指定する。

Extended Collider

通常のコライダーはボーンがコライダーの内側に入らないように動作するが、逆にコライダーの外側にボーンが出ないようにするときに使う。らしい。

 

Spring Bone Collider Groups

上記で設定したコライダーをグループとして登録する。例えばキャラモデルの揺れものが髪の毛とスカートがあった場合、髪の毛用のコライダーとして頭付近のコライダーを1つのグループ、スカート用の足周りのコライダーを別のグループとして登録しておくなどのように使う。

 

ドキュメント

specification/VRMC_springBone-1.0/README.ja.md

 

Spring Boneを設定したアーマチュアにキーフレームを打ってアニメーションさせることで動作確認することが出来る。

 

VRMエクスポート時の注意

テクスチャが消失する

VRMファイルをエクスポートするとなぜかMToonマテリアルに設定したテクスチャが解除されてしまうことがあるが、これが起きる場合テクスチャノードの接続先を間違えている可能性がある。

 

例えばLit Color TextureのテクスチャノードはLit Colorではなく、Lit Color Texture Colorに繋ぐのが正しい。間違えてLit Colorにつないだ場合上記のような事象が発生する。

 

ボーンが消失する

Blenderでの作業時に揺れもの用のボーンの先端にリーフボーンをつけていたのだが、VRMエクスポートした際にこのリーフボーンが消えてしまった。

 

エクスポートしたVRMファイルをUnityにインポートすると画像のように「ear.L.010」の下についていたはずの「ear_end.L」ボーンが消えてしまっている。

 

ほかにも消えているボーンがあったので共通点を調べてみたところ、ボーンプロパティの「変形」がオフになっていることが原因だった。

 

「変形」をオンにしてエクスポートしなおした結果、ちゃんと「ear_end.L」ボーンもエクスポートされていることを確認できた。

TOP

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA