広がるキャラ向け3Dモデル形式「VRM」エコシステム Unity-Chan SpringBone 2.0がMITライセンスで公開
5月7〜9日に実施したUnity開発者の年次イベント「Unite Tokyo 2018」では、日本語版エディタやCarte Blancheなど多くの新要素が明らかになった。その中で、驚いたのが9日の「スマホVTuber向け揺れモノシステムを『ユニティちゃんライセンス』で無料公開!」というセッションにて発表した「Unity-Chan SpringBone 2.0」のライセンス形態だった。
当初、「ユニティちゃんライセンス」(UCL)でのリリースを予定していたが、発表当日により比較的制限がゆるくてVRMフォーマットに採用しやすくなる「MITライセンス」(MIT)に変更するという大きな方針転換があったのだ。一見、わかりにくそうな話だが、バーチャルYouTuber(VTuber)やVRChatといった日本で関心が高いジャンルとも繋がりがある話なので、簡単に解説していこう。
アバター必須のVR時代が求めた「VRM」
Unity-Chan SpringBoneの前にまず知っておいて欲しいのが、ドワンゴがこの4月に発表した、キャラクター向け3Dモデルのファイル形式「VRM」だ(プレスリリース)。
ファイル形式といえば、拡張子で挙げるのであれば、文章なら「txt」や「doc」、画像は「jpg」や「png」、動画では「avi」や「mp4」と言った具合に、それぞれ目的に合わせた共通のものがいくつも存在している。それはPCやスマートフォンといったハード、さまざまな企業がリリースするソフトを超えてどこでも意図したように動くようにするためだ。
一方でキャラクター向け3Dモデルのためのファイル形式というと、ソフトや環境間の互換性が保障された決定版とも言えるフォーマットがなく、FBXや各種モデル制作ソフトの形式で保存していることが多い。そうした3Dキャラのモデルを、バーチャル空間でコミュニケーションするVRChatや、キャラクターになりきって動画や生放送を撮影するバーチャルYouTuber制作ツールに持っていった場合、往往にして意図通りに動かないことが多い。
というのも、キャラの初期位置や体の向き、サイズや、シェーダー(陰影の表示方法)、モーフ(表情)、マテリアル・テクスチャ(モデルの表面に描画する画の仕組みと素材)が、同一ファイル形式であっても各アプリケーションでの解釈が変わってくるため、使う前に制作ツールで調整する手間が必要なのだ。画像でいうなら、Twitterのプロフィール画像をFacebookに持って行く際に調整が必要、というような話だ。
少し前までなら3Dモデルの利用者は、扱う方法を心得ている熟練のクリエイターが中心だったものの、今やVRChatやバーチャルYouTuber配信ツールが一気に存在感を出していて、細かい事情を知らない一般ユーザーも手を出す一歩手前だ。
そんなタイミングで提唱されたのがVRMになる。
このVRMが特徴的なのは権利周りまで考慮していることで、例えばアバターについて、誰が使えるのか、暴力や性的な表現はありなのか、商用利用はできるのかといった人格まで定義可能だ。例えば、ソーシャルVRでは、自分で使っている3Dモデルのデータがインターネットを介して他人の端末上に表示されてしまうが、これが従来のようなゲームやアニメーションに組み込んでの利用を想定している権利規約とも微妙に異なっている。そうしたコミュニケーションにおける3Dモデル利用のありなしも決められるので、使い勝手がいい。
なお、VRMはOpenGLの仕様を策定しているKHRONOSが手がける3Dフォーマット「glTF 2.0」をベースとしており、拡張子を「.vrm」から「.glb」に変えるとWindows 10に標準で含まれる「3D Builder」でも開くことが可能だ。Unityでのファイルを読み書きを提案しているものの、他のゲームエンジンなどでも普通に扱える汎用性の高さも魅力だろう。
セッションの裏でMITをスピード採用
そうしたVRMを踏まえた上で、「揺れもの」(ダイナミクス)の話だ。
3Dモデルの髪や服、胸、尻尾などが物理法則にしたがって動く揺れものは、現状、専用のスクリプトを使って実現していることが多い。Unityで有名なアセットでいえば、「Dynamic Bone」や、ユニティちゃんのアセットに含まれる「SpringBone.cs」などが挙げられる。
これらのスクリプトをVRMで使う際、どのサービスやアプリでもキャラクターの髪や服の揺れ方が同じに見える必要がある。あるアプリAではいい感じに揺れる髪が、ある別のアプリBではビヨンビヨン暴走して跳ね回ってしまってはやはり困るわけだ。そのためには「VRMフォーマット標準の揺れものスクリプト」を固定した上で、VRMフォーマットに揺れものに関するパラメータを含める必要があった。
VRMを推進するドワンゴとしても、すでに著名な揺れものスクリプトがあるなら「車輪の再開発」を避ける意味で採用したかっただろう。一方でVRM関連ツール群はなるべく自由に使ってもらうために、OSSライセンスの中では比較的制限のゆるいMIT Licenseで統一する方針を採用しており、そことの兼ね合いで揺れものスクリプトについてはドワンゴが新たに開発することになったようだ(とソースコードから読み取れる)。
そんな状況の中、Uniteにて、前述した「ユニティちゃんのアセットに付帯する揺れものスクリプト」がパワーアップした「UnityChanSpringBone 2.0」を紹介するセッションが開催。さらに同時刻、VTuberの関係者を集めたメディア向けのインタビューが開催されて、以下のような質疑応答があった。
──(揺れモノのデファクトスタンダードである)Dynamic Boneのようなスクリプトが、Unityの標準機能にはならないのか?
ユニティ・テクノロジーズ・ジャパン 大前氏 ちょうど今の時間、紹介セッションを実施しているが、UnityChanSpringBone 2.0を開発し、無料公開するのでそれを使える。
ドワンゴ 岩城氏 (VRMに採用することができるように)ユニティちゃんライセンスじゃなくて、MIT Licenseにしてほしい。
大前氏 できるかどうか確認してみますか。
さっき大前さんもその辺話してたので、そうなるかも?
・ 商用で皆が使える事
・ 知見が集まる事
が目的なので、とにかく皆で同じものをバラバラに開発してるのをなんとかしたいなと思ってたので https://t.co/7Fs56B0ND4— 安堂ひろゆき/FlightUNIT (@drunkenAndo) 2018年5月9日
そんなざっくばらんな会話があった結果、驚くべきスピードでUnityChanSpringBone 2.0はMIT Licenseに変更となった。
#unitetokyo2018 で発表されたあたらしい揺れものシステム UnityChanSpringBone 2.0 は、VRMと一緒に使って欲しいのでライセンスをユニティちゃんライセンスから MIT Licenseでの提供に変更しました!
今後このレポジトリでアップデートしていきまーすhttps://t.co/xtNJyz94ps— unity-chan!公式 (@UnityChan_PR) 2018年5月9日
より一歩進んだ互換性の確保を
めでたしめでたし……と言いたいところだが、もう少しだけ課題がありそうだ。
VRMの揺れものスクリプトは、髪などが貫通しないように、跳ね返る領域を球状の領域で指定する「球体コライダー」と対応ボーングループにのみ対応したシンプルなものであるのに対して、UnityChanSpringBone 2.0は関節の角度制限や地面処理の機能を持ち、設定できるコライダー形状も球体に加えてカプセルや板を指定できる。
VRMというエコシステムがUnityChanSpringBoneに対応するには、これらの機能について(必要であれば取捨選択を検討した上で)VRMフォーマットを定義し、ツール群のバージョンアップを行った上で、すでにVRMを採用しているプラットフォームへの互換性で問題がないような手順を踏む必要がある。
VRMの現在の揺れモノはシンプルがゆえに使いやすく効果的に動作している。そして今後の発展のためにVRMエコシステムとしてやることが山積みであると想像される今、揺れものを優先させてバージョンアップさせるという戦略は取りづらいかもしれない。
ただし逆に、スカートなどの衣服の貫通対策において「モデル側で対応が必須か、スクリプト側でカバーが可能か」といったモデリング工程にも影響するであろう揺れものの仕様について、例えば「過渡期では両方対応とし、将来的にはUnityChanSpringBoneに一本化します」と言ったロードマップの検討を、対応サービスが多くない今のうちに行っておくことは、将来の拡張コストを削減する効果があると期待できる。
このように、揺れものという要素を1つ切り取っても面白いVRMというフォーマットと関連するエコシステムについては、今後もぜひ注目していきたい。
*Unite Tokyo 2018記事まとめはこちら!
●関連リンク
・VRM
・UnityChanSpringBone 2.0(GitHub)
・Unite Tokyo 2018