新着情報

機能紹介 VRMのバージョン(0.x/1.0)と変換について (2024/03/01)

前回のVRMモデルのセットアップの解説内では省略しましたが、今回はVRM 0.x/1.0のバージョンの違いと変換を含めた運用について説明します。

2018年に最初に発表されたVRM規格(「VRM 0.x」と呼ばれるもの)は、その後色々と見直しが行われながら、最終的に2022年に「VRM 1.0」として正式な規格になりました。ファイルの拡張子は「.vrm」のままですが、内部のデータ構造も大きく変化して互換性が失われた別物になっているため、VRM 0.xにしか対応していない古いアプリ・サービスではVRM 1.0のデータを読み書きすることができず、本記事執筆時点(2024年3月)でもVRM 1.0に対応したものはまだそれほど多くないようです。

VRM 0.x/1.0間では細かな差異まで含めると多数に登りますが、Metasequoia 4上で編集するにあたって注意が必要となる違いとして以下が挙げられます。

  • 前方向の定義
  • ばねボーンの構造
  • メタ情報

前方向の定義

VRM 1.0では同じく手前側(+Z軸方向)が前と定義されていますが、VRM 0.xでは奥側(-Z軸方向)が前と逆になっています。

手前側を前としてモデリングする人のほうが多数派と思いますが、その逆だと扱いづらいだけでなく、glTF標準の定義でも手前側が前のため、VRM 0.xはglTFをベースとしながら標準に反する問題のあるものでしたが、それが是正された形となっています。

VRM 0.xファイルの読み書き時に前方向を反転させることもできます。VRM 0.xモデルが前を向いている場合、出力時には必ず反転させてください。

VRMファイルを読み込む以外の方法で用意したVRM 0.x用モデルが既に前向きになっている場合、[視線情報]内にある[前方向反転済み]をオンにしてください。これをしないと、VRMプレイヤー内で正しい姿勢でアニメーション再生されません。

ばねボーンの構造

VRM 1.0では親子間で一続きにつながっているばねボーンを一つのグループとして扱います。グループ内の個々のばねボーンに対してパラメータを設定できます。

6つのグループにそれぞればねボーンが4つずつつながっている

VRM 0.xではグループごとに、(つながりの有無に関わらず)複数のばねボーンをまとめて管理していました。ばねボーンごとに、指定したボーンから末端のボーンまで(分岐を含む)をばね制御の対象とします。グループ内の各ばねボーンには共通のパラメータが適用されます。

同じグループ内に6つのばねボーンがある

VRM 1.0のほうが自由度は高いのですが、VRM 0.xのほうが簡便に設定できるため、好き嫌いがあるかもしれませんね。

メタ情報

著作権や各許諾などの情報を含むメタ情報は、VRM 0.x/1.0で共通になっている項目がある一方で、1.0では「政治・宗教用途の利用」や「反社会的・憎悪表現」などいくつか追加されています。また、0.xでは「商用利用」はOKかNGだけだったのが、1.0では個人のみ商用利用可(法人不可)も選択できるなど、より実用性の高い設定ができるようになっています。

0.xと1.0どちらを使うべき?

目的のアプリ・サービスが既にVRM 1.0に対応しているなら1.0用にデータを作成すればいいでしょう。しかし、まだ0.xにしか対応していないものへ持っていく可能性があるなら、0.xで作成すべきです。後で0.xから1.0へ変換することもできます。

VRM 0.xから1.0へのデータ移行

既にVRM 0.x向けに作成しているデータをVRM 1.0へ移行するには、以下の手順で操作してください。

  1. 「前方向を反転」をオンにしてVRMファイルを読み込みます。
    VRM形式ではなくmqozで保存している場合、いったんVRMファイルに出力してから、そのファイルを再度読み込んでください。
  2. 読み込み後、モデルが手前側を向いていることを確認してから、[VRM 1.0へ変換]を呼び出してください。[ボーン設定モード]が「VRM 1.0」に切り替わり、またばねボーンがVRM 1.0向けの構造に変換されます。
  3. メタ情報はVRM 0.x/1.0で共通の項目のみ引き継がれますが、それ以外の項目は設定し直す必要があります。必ずメタ情報の内容を確認し、適切に設定してください。

これでVRM 1.0への変換は完了です。VRMファイルを出力すると、VRM 1.0に対応したものが出来上がります。

表情モーフのうち「surprised」(驚き)に限ってはVRM 1.0のみに存在します。表情モーフ自体が必須ではないのですが、VRMデータを持っていく先のサービス等でsurprisedの表情を使用する場合は、[モーフ]コマンド内でプリセットを追加してください。

VRM 0.x/1.0両方の出力に対応した共通モデルを用意したい

複数のアプリ・サービスで同じVRMモデルを利用する際に、既に1.0に対応しているものとまだなものがあって、VRMのバージョンを分けて出力しないといけない場合に、出力元のデータを1.0と0.xで別々に管理するのは煩雑なので、できることなら共通化したいものです。

この場合、VRM 0.xを基本としつつも、下記項目を押さえておくことで同じデータからVRM 0.x/1.0の両方の出力を行うことができます。

  • 常に[ボーン編集モード]はVRM 0.xにして、ばねボーンなどを編集すること。
    うっかりVRM 1.0でばねボーンを追加してしまった場合は戻せないので消す。
  • 手前側を前にする。(VRM 0.xと逆、VRM 1.0と同じ)
    • 既に奥を向いているなら、「前方向を反転」をオンにしてVRMファイルを読み直す。
    • 前を向いている状態で、[視線情報]内にある[前方向反転済み]をオンにする。(VRM 0.xファイルを反転読み込みした場合は既にオンになっているはず)
  • メタ情報の編集時のみ[ボーン編集モード]をVRM 0.xと1.0で切り替えながら、それぞれ編集する。(共通しない項目の両方を保持することができる)

この状態でmqozを保存しておけば、いつでもVRM 0.x/1.0どちらにも出力が可能です。出力前に[VRMを検証]を呼び出して、問題がないことも確認しておきましょう。

表情モーフsurprisedについても、VRM 0.x向けの段階で用意して構いません。標準以外の表情モーフが含まれることは問題ありません。

VRM 0.xで出力する場合

[ボーン編集モード]をVRM 0.xにしてVRMファイルを出力しますが、その際に必ず「前方向を反転」をオンにしてください。

VRM 1.0で出力する場合

[VRM 1.0へ変換]してからVRMファイルを出力します。出力後にmqozファイルを上書き保存してしまうと戻せないので注意してください。

 

機能紹介 VRMモデルのセットアップの基礎 (2024/02/29)

本記事ではVer4.8.6で数回に渡るマイナーアップデートにより強化されたVRM編集機能について解説します。

VRMはVR/メタバースなどで使用されることを想定した3Dキャラクター・アバター用のファイル形式です。glTFをベースに、キャラクターに特化した属性を持たせられるよう、主に下記の情報を付加する形で拡張が行われています。

  • アニメ調表現を行うMToonシェーダ
  • 標準的な人体のボーン構造(ヒューマノイド)
  • ばねボーン
  • 視線の制御
  • 1人称/3人称視点における可視設定
  • 著作権や利用用途・配布の許諾などを含むメタ情報

VRMファイルそのものの詳細ついてはVRMコンソーシアムvrm.dev技術仕様などをご参照ください。

VRMモデルのセットアップ作業の大半は[ボーン]コマンド内で行います。以下の説明は[ボーン]や[モーフ]コマンドの基本操作を理解していることを前提としています。一般的なボーン・モーフのセットアップ方法についてはヘルプ内のチュートリアルなどを参照してください。また、全体的な流れをつかむのが目的で、詳細な操作方法の説明までは踏み込んでおりませんので、実際に操作しながら確認したり、またヘルプも併せてご覧下さい。

MToonシェーダの設定

VRMでは材質のシェーダには以下が利用可能です。

  • Constant(陰影のない単色)
  • glTF(物理ベース)
  • MToon(アニメ調)

このうち、MToonシェーダがVRMモデルには最も一般的に扱われています。MToonシェーダを適用するには、[材質設定]の[シェーダ]欄から「VRM1.0 MToon」を選択してください。(VRM 0.xを使用する場合もこちらを指定)

MToonシェーダの特徴として、陰影・リムライト・輪郭線が挙げられます。

陰影はアニメ調表現において最も核となる要素で、光の当たる箇所と当たらない箇所をはっきりと分けて、明暗を強調する表現を行います。陰影の色や位置(シフト)、幅の調整が可能です。

左:デフォルト、中:陰影シフトを下げる、右:陰影幅を上げる

リムライトは後方から光が当たったようにオブジェクトの端付近が明るくなり、輪郭を際立たせることができます。

左:リムライトなし、右:リムライトあり

輪郭線はオブジェクトの境界の外側にオブジェクトと異なる色の領域を設けることによって、オブジェクトと背景や、オブジェクトの重なる箇所を明確に分ける効果が得られます。

左:輪郭線なし、右:輪郭線あり

VRMモデル用ボーンのセットアップ

ボーンを一からセットアップする場合と、VRM以外の用途に既に作成したボーンセットアップ済みモデルをVRM向けに改変する場合でそれぞれ説明します。

一からのセットアップ

VRMモデル用のボーンも、(VRM以外の)一般的なキャラクターモデルと同様に、おおまかには以下の手順でセットアップ行います。

  1. スキン用のオブジェクトを作成する
  2. オブジェクトに合うようにボーンを作成する
  3. [スキン設定]を行う
  4. [スキニング > ペイント]でウェイトを調整する

一般モデルと異なるのは、2でのボーンの作成時に[リギング > ボーン > 追加]コマンドで一から作成する代わりに、VRM用のテンプレートを用います。

[テンプレート]>[標準テンプレート]から「VRMヒューマノイド」を選択すると、VRMモデル用の標準構造を持ったボーンが生成されます。

生成後は、各ボーンをスキン用のオブジェクトに合うよう位置を調整します。スキン用オブジェクトは肩から両腕を横に伸ばした、いわゆる「Tポーズ」が基本となります。

標準構造で定義されていない、例えば髪や衣服、尻尾などのボーンが必要な場合は、さらに[リギング > ボーン > 追加]でボーンを追加します。

また、テンプレートの適用と同時に[ボーン設定モード]がVRM用に切り替わりますが、(既にVRM 0.xが指定されていない限り)VRMのバージョンは1.0となります。必要に応じて[表示設定]内の[ボーン設定モード]でVRM 0.x/1.0を切り替えてください。(VRMバージョンによる違いについては別記事を参照

既存のボーンセットアップ済みモデルをVRM向けにする

ウェイト調整済みのボーン付きモデルをVRM向けに改変したい場合、各材質にMToonなどのVRM向けシェーダを適用した上で、まず[ヒューマノイド]を設定します。

モデルを読み込んだ状態で、上でも説明したように[ボーン設定モード]を「VRM 0.x」または「VRM 1.0」に切り替えてください。

この状態で[ボーン設定]を呼び出すと、[基本情報]内に[ヒューマノイド]の設定項目が付加されているので、どのボーンが腰・頭・手・足などのどの部位に当たるかを一つずつ設定します。どの部位のボーンが必須かはVRM仕様書に記載されています。

ヒューマノイドの設定が一通り終わったら[VRM 0.x]または[VRM]タブ内から[VRMを検証]を呼び出し、ヒューマノイドの設定に不備がないかを必ず確認してください。(ヒューマノイド以外のチェック項目はこの時点では気にしなくて構いません)

ばねボーン・衝突体の設定

ボーンとヒューマノイドの設定を終えたら、ばねボーンのセットアップを行います。ヒューマノイドで設定されたボーンが動いたときに、形を変えながら追従して動くような「揺れ」を表現するためにばねボーンは用いられ、長い髪や衣服などに適用すると有用です。

紫色の球体がばねボーン、オレンジ色の球体が衝突体を示す。ばねボーンの表示はVRM 0.x/1.0で異なる。

髪や衣服にも追加のボーンをセットアップしている状態で、以下の手順で既存のボーンに重ねるようにばねボーンを作成します。

  1. [ばね]内の[新規作成]をオン
  2. 3Dビューやボーンリスト内でボーンを選択
  3. [ばねボーン作成]ボタンを押す

ばねボーンの作成後、[VRMプレイヤー]内で揺れ具合を調整します。

VRMプレイヤー内でばねボーンを選択し、各パラメータを変更しながら、モデルをドラッグで動かして、実際にどう揺れるかを確認してください。

ばねボーンを設定しただけの状態では、ばねボーンを設定した箇所が体内にめり込んでしまうので、合わせて衝突体(コライダー)の設定も行います。頭や胴体、腕、足などめり込む可能性のある箇所に球体またはカプセル型(VRM 1.0のみ)の衝突体を配置すると、ばねボーンがその内部には入り込まずに避けてくれる動きになります。

髪の毛用のばねボーンに対して、頭・腕・胴体に衝突体が設定されている

表情モーフの設定

表情モーフはVRMに必須の項目ではありませんが、特にフェイシャルトラッキングを用いたアバター配信には欠かせない要素です。VRMでは以下の表情が定義されています。(VRM 0.x/1.0で若干違いあり、詳細は技術仕様を参照)

  • 感情(喜・怒・哀・楽・驚)
  • リップシンク(あ・い・う・え・お)
  • 瞬き(両目・左目・右目)
  • 視点(上・下・左・右)

これらの表情は、顔のオブジェクトを複製して頂点の位置のみを動かしたものを対象オブジェクトとして複数用意した、頂点モーフのプリセットとして設定します。

各表情は頂点を動かしただけで元は同じオブジェクト

表情モーフは[モーフ]コマンド内で設定します。[ターゲット設定]でモーフの対象オブジェクトを指定するのと併せて、[設定モード]にVRM 1.0またはVRM 0.xを指定すると、プリセットの選択項目が表示されます。

プリセット選択欄の横にVRM 0.x/1.0用プリセット追加の項目があり、必要なプリセットを一括して追加することができます。

追加されたプリセットごとに対象オブジェクトのスライダーを調整して、どのモーフを適用するかを指定します。スライダーの値を変更した後は必ず[登録]してください。

プリセット「a」にA用の対象オブジェクトを100%適用した例

プリセットごとに対象オブジェクトを1つずつ用意するのが基本ですが、1つのプリセットに複数の対象オブジェクトを組み合わせることも可能です。

その他の設定

メタ情報のうち、モデル名と作者名は必須です。配布や用途に応じた許諾、サムネイル等も併せて設定しましょう。

視線情報と可視設定は通常は初期設定のままで構いませんが、配信システムやメタバース用ソフトなどで使用されるものがあります。必要に応じて設定してください。

VRMファイルへ出力

ファイルを出力する前に、ヒューマノイドの設定でも説明した[VRMを検証]を呼び出します。問題が残ったまま出力すると、受け側ソフトで読めないことがあるので、修正が必要です。「オプション」と記載されている項目はそのままでも構いません。

問題がないことが確認できたら、[名前を付けて保存]でVRM形式を指定して保存します。

最後に

駆け足ぎみに一通り説明しましたが、単に記事を読んだだけで理解するのは難しいので、併せて既存のVRMモデルを眺めることをお勧めします。VRMモデルはVRoid Studioを使って自身で作成したり、VRoid Hubニコニ立体などのサイトでダウンロード可能な既存のモデル(※著作権や利用許諾に注意すること)が配布されていますので、ばねボーンやモーフなどの構造がどうなっているかを確認しながら理解を進めていましょう。

リリース情報 Metasequoia 4 Ver4.8.6e リリース (2024/02/16)

Metasequoia 4 Ver4.8.6eをリリースしました。

今回のリリースも引き続きVRM対応の強化を行い、VRMプレイヤー内で中心ボーンの設定や、視野情報(LookAt)の確認・設定ができるようになりました。

注視点への視線の変化も確認できる

これですべてのVRM用パラメータが設定だけでなく、表示にどう影響するかの確認もでき、外部ビューアなしでのVRMモデルの完全なセットアップが可能になりました。

その他の詳細な変更点についてはリリースノートをご覧ください。

リリース情報 Metasequoia 4 Ver4.8.6d リリース (2024/02/01)

Metasequoia 4 Ver4.8.6dをリリースしました。

今回もVRM編集機能の強化が中心で、一部環境でVRMプレイヤーが起動しない問題の解決の他、VRM 0.xから1.0への移行を含むワークフローの改善が中心となっています。具体的には、ばねボーン構造の0.xから1.0への変換、1.0用ばねボーンの再設定、VRM 0.x出力時にも前方向反転のサポートなど、多数の機能追加・改良が行われています。

その他の詳細な変更点についてはリリースノートをご覧ください。

リリース情報 Metasequoia 4 Ver4.8.6c リリース (2024/01/18)

Metasequoia 4 Ver4.8.6cをリリースしました。本アップデートでは新たに「VRMプレイヤー」を搭載しました。その他の詳細な変更点についてはリリースノートをご覧ください。

VRMプレイヤー

VRMプレイヤーはthree.js / three-vrmをベースにしたVRMモデル専用のビューア機能です。

VRM独自の仕様であるばねボーンは、一つ前のバージョンでもMetasequoia内でパラメータを設定することはできましたが、結果を確認する方法がないため、外部サービス等を利用する必要がありました。

新しく搭載されたVRMプレイヤーではドラッグ操作でVRMモデルを平行移動で動かしながら、VRMモデル内のばねボーンの各パラメータを編集することができます。選択されたばねボーンの固さや抵抗などの値を変更して、思い通りの動きになるまで調整してください。

固さを下げ、抵抗を少し上げると、スカートの動きがふわっとしたものになる

Mixamoアニメーション

平行移動だけでは確認が難しいものについては、Mixamoアニメーションによってダンスのような複雑な動きをつけることができます。MixamoはAdobe社から提供されているキャラクターアニメーション作成用のサービスで、アニメーションデータのダウンロードにも対応しています。ダウンロードしたfbxファイルをVRMプレイヤーにドラッグ&ドロップすると、fbxファイル内のアニメーションがVRMモデルに適用されます。

Mixamo(.fbx)ファイルをドラッグ&ドロップ

Mixamoのデータは、映像制作などの用途に商用・非商用を問わず無料で利用することができるとのことです。データそのものの再配布はできないなど一部制限もありますので、Mixamoのライセンス(EULA)やFAQで詳細を確認してからご利用ください。

リリース情報 Metasequoia 4 Ver4.8.6b リリース (2023/12/18)

Metasequoia 4 Ver4.8.6bをリリースしました。

本バージョンではVRMへの対応を大幅強化し

  • VRM 1.0/0.xファイルの読み書き
  • ばねボーン、衝突体(コライダー)、表情などVRM 1.0/0.xの仕様内の一通りの項目設定

に対応し、VRM編集ツールとして本格的に利用できるようになりました。

VRoidで出力したVRMデータの読み込み例

VRM関連以外にも、不具合修正などいくつかの修正項目が含まれます。詳細な変更点についてはリリースノートをご参照ください。

リリース情報 Metasequoia 4 Ver4.8.6aaリリース (2023/11/20)

Metasequoia 4 Ver4.8.6aaをリリースしました。

本バージョンではmacOS Sonomaで発生していた不具合の修正を行っています。macOS固有の問題のため、macOS版のみのリリースとなり、Window版の提供はありません。

リリース情報 Metasequoia 4 Ver4.8.6a リリース (2023/10/08)

Metasequoia 4 Ver4.8.6aをリリースしました。

暫定的ですが本バージョンでmacOS Sonomaに対応としました。以前のバージョンでのmacOS Sonoma上での動作保証はいたしませんので、必ず本バージョンをご利用ください。

なお、暫定的とする理由として、macOS Sonomaにおける未解決の問題が存在しています。詳細は別ページの「macOS Sonomaへの対応について」にてご確認ください。また新たに問題が見つかる可能性もあります。お気づきの点などありましたらお気軽にお問合せください。

また、Windows/macOS共通の改良として、VRM MToon/PMDシェーダで輪郭線がプレビュー表示に反映されるようになりました。ただし、この輪郭線表示は専用ビューアなど比べて簡易的な手法での表現のため、板ポリゴンなど開いた形状ではうまく表示されません。気になる方はターゲットとなるビューア上で最終確認されることをお勧めします。

お知らせ macOS Sonoma (14.x)への対応状況について (11/20追記) (2023/09/29)

Metasequoia 4 Ver4.8.6aaにおけるmacOS Sonoma (14.1)上での動作について、現在下記の問題について一通り対応が完了しました。

  • (4.8.6aaで対応済み)「キャプチャして保存」内でファイル名を指定する際にファイル形式を変えようとするとエラー表示される
  • (Ver4.8.6aで対応済み) メニューの右側にアイコン表示される箇所の反応が悪く押しづらい。(ビュー上部の[表示]ボタンで出てくるメニュー内など)

現時点では他の問題は確認されておらず、macOS Sonoma上での基本的な利用について大きな支障はありませんが、新たに問題が確認された場合は追記いたします。

また、上記以外で何かお気付きの問題点などありましたらご一報いただけると幸いです。

リリース情報 Metasequoia 4 Ver4.8.6 リリース (2023/09/22)

Metasequoia 4 Ver4.8.6をリリースしました。

VRM対応

VRMファイルについて、出力への対応、入力の強化を行いました。入出力ともにVRM 1.0規格のメタ情報・MToonシェーダを扱うことができます。

glTF対応強化

モーフ情報の差分出力、メッシュ圧縮に対応し、出力ファイルサイズを小さくできるようになりました。また、glTFシェーダの拡張設定に異方性反射(Anisotropy)が追加されました。

 

上記以外の大きな変更点として、RenderMan連携機能が標準機能としては廃止となりました。外部プラグインとして引き続き提供されますが、今後のアップデートは予定しておりません。(RenderBridgeダウンロード)

その他、詳細な変更点についてはリリースノートをご参照ください。