CGRecotte Studio,VRM,Vroid,VroidStudio

前回の話の通り、VRoid Studioから出力したVRMファイルをBlenderに持っていき、そこでメッシュの追加やマテリアルの調整などを行うことでボステリ店長のモデル自体は出来ました。…が、そのモデルをBlenderから再度VRMファイルで出力し、Recotte Studioに持っていこうとすると、クラッシュが発生して読み込めないという状況にブチ当たりました。

他のツールでは読み込めているVRMである事、VRoid Studioの公式サンプルAちゃんでも一度Blenderを経由すると同様の現象が起きる事、でも公式サイトには全てのVRMの読み込みを保証するものではない、とある事などから、これは仕様なのか不具合なのかの判断も難しいな、という事でこの点については折角サポートIDもあるので、サポートの方に問い合わせてみました。

で、質問は投げておいて、とりあえず現状どうするか色々検討。やはりUnity環境へ読み込んで再度UnityのVRMでエクスポートするのが可能性あるのかなーと。

Unityに読み込んでみる

はるばる来たぜUnity…

Unityの環境自体は以前、OpenCVとか触ってみた時に構築したのがあったので、さっそくテスト読み込み用のプロジェクトを用意して環境自体はすぐ準備出来ました。で、VRMを読み込むのに必要な情報を「UniVRMをインストールする」や「vrm-c/UniVRM」を参考に自分の環境にもインポーターやエクスポータ等を含むUniVRMをインストールしました。

これだけ出来てしまえば後は単純で、BlenderからのVRMをシーンにドラッグドロップし(UniVRMで読み込まれる)、アセットに登録されているモデルを再度UniVRMでエクスポートします。

Recotte Studioで動いた!

Unityからエクスポートしたボステリ店長のVRMファイルを恐る恐るRecotte Studioの話者設定に指定すると・・・今度は読み込めました!どこかちょっとフォーマットが違うんでしょうかねぇ…。

どうにか到着した店長

折角読み込めたので、早速軽いサンプル動画を作成してみました。

パピフォンの声はCeVIO AI、ボステリ店長の声はVOICEPEAKを割り当てています。2つの合成音声ソフトを同時に使用していますが、割と違和感無く行けましたね。なお、ボステリ店長、もう少しおっさん声で良かったんですけど、VOICEPEAKはイケメン声しか無くて…(汗

何はともあれ、これで自分のアバターを登場させる、対話動画を作る、という目標は一応達成出来ました。

AHSのサポートさんから返答がありました

実はそんなこんなしてるうちにあっという間にRecotte StudioのサポートをしているAHSさんから返事のメールが届いておりました。全文を公開するようなことはしませんが、要点だけ記載しておきますと、

  • 現在、VRMの読み込みに関してはVRoid Studioで検証しており、Blenderを含めそれ以外のツールから出力されたVRMに関しては検証確認は出来ていない
  • 現状ではVRoid Studio以外のツールで出力したVRMファイルに関しては非対応という仕様

という事でした。まぁ、概ね、デスヨネーという所ではありますが、回答して頂いた事でモヤモヤせずに済みますね^^;。 そもそもRecotte Studioの3D話者モデルってMMDの方がベースだと思うので、VRMと両対応している時点で色々大変というのは想像に難しくなく…となれば正式なサポート範囲もそんなに広げられないでしょうし。

ただ、最後に一文ありまして、VRMファイルの提供が出来るなら開発元に要望として転送しますよ、と言って頂けました。なんという神対応…。ここはご厚意に甘えてVRMファイルを提出させて頂きました。この場合は僕の変なデータよりはより一般的なデータの方が良いだろうと思って、VRoid Hubに上がっている公式サンプルAちゃんをBlender通したものを同じ現象が起きるのを確認してから提出させて頂きました。

まぁ、あくまでも1ユーザーの要望なので(*1)まったく実装される確約はありませんが、いつかそのまま読めるようになったらUnity通す必要も無くなってスマートで良いなぁと楽しみにしておこうと思います。

と、いい感じに収まった所で、今回はここまでとしたいと思います。次は何しようかな…。

(*1)…とはいえVRoid HubなんかにもBlender等で編集済みのモデルは多いので同じ要望持ってる人は割といそうな気もしたり…。

※2022/06/21追記 Ver 1.6.0.0で修正された模様です!

Recotte Studioが1.6.0.0にアップデートされました。アップデート項目の中に、

【修正】
・一部VRMファイルを読み込んだ際にクラッシュする不具合を修正

という記述!これは試すしかないと思い、恐る恐る今までクラッシュしていたVRMファイルを投入してみたところ…問題無く読み込めました!ありがとうございます!

折角なのでクラッシュしていたデータ達で一本(^^;

CGRecotte Studio,Substance,VRM,Vroid,VroidStudio,ZBrush

自分のアバターを登場させたいナ

前回まででサイトの看板娘的なキャラクターを作成してRecotteStudioで動画作成してみたりしました。まぁ、VRoid周りのアプリケーションで遊ぶ時とかは可愛い女の子キャラの方が絵的にも映えるしいいなと思うのですが、反面、自分のサイトで自分の行動、意見について動画にまとめる時なんかは、やはり自分のシンボル的なキャラクターがあった方が良いよなぁと思う所がありました。

という訳で、またVRoid Studioで自分のアバターを作ってみる事にしたのですが、どーにもイケメンしか作れない仕様のようでして、まぁ自分に寄せるのもちょっと無理だな、と。どうしようかなぁ…とApple Musicで音楽聴いてると流れてきたのが、MAN WITH A MISSIONの曲「database」。よし、この手で行こう、我が家には幸いモチーフもいるwとなりました。

尻尾と腰リボン

以前、習作でサクラバクシンオーを作成した事があるのですが、この時、尻尾とリボンはVRoid Studioではどうにも表現出来ない範囲だったので、この部分だけBlenderで調整しなおした事があります。

この時は元々VRoidSudioの持っていたリボンパーツの移動とサイズ調整、尻尾はVroidStudio上の髪の毛として一旦作成したボーンとメッシュを腰骨の方に移動、ウェイト微調整みたいな事をやっただけなので、新規のメッシュの追加等は行っていません。

今回はメッシュを追加するのでその辺が各ツールで上手く動作するものか分からなかったので、実験も兼ねて作業を始めてみました。


ZBrushで被り物を作る

上手く最後まで作業パスが通るかどうかも良く分からない所だったので、今回の方針は兎に角「ちゃちゃっとワークフローを通してみる」でした。なのでクオリティに関しては後で調整すればいいやのノリなのでクオリティアップのテクニックとか求められてる方はごめんなさいです…。

適当に作ったら25万ポリゴン

さて、今回は”時短の為に”ZBrushを使ってみました。Blender等でポリゴンをパキパキ割りながら作っても良かったのかも知れませんが、ブラシでサーっと作って解像度落とす方が速いかもな、という思い付きもあったもので…。

ひとまず、我が家の愛犬(ボストン・テリア)を参考にサクサクっと頭部だけZBrushでモデリングしてみました。眼球は一応後のことを考えて別で作ります。作り方の好みが色々あると思いますが、今回はダイナメッシュを使う事で、ここもあまり深く考えずザクザク描き込みです。

当然、何も考えずにダイナメッシュを使っているので、この頭部だけで25万ポリゴン超あったりします。さすがにこれをそのまま最終アプリにまで持って行くのは重過ぎるので、ここでは複製を取ってからジオメトリ>Zリメッシャーを使って1万ポリゴン程度にまで一気に落としたメッシュを用意しています。

ポリゴン削減にはもう一つ意味があって、この後段のSubstance Painterがあまり多いポリゴン数を持って行くと重くなるなどトラブルの元になる事が多いそうで、予防的措置でもあります。

UVの方はZBrushの方でZプラグイン>UVマスターを使用してこちらもほぼお任せで作成しました。(…が、後々ここはもう少し要調整だな、という事が分かりました^^;)

ある程度形状が出来た所でZプラグイン>FBXインポートエクスポートで.fbxファイルとしてエクスポートしておきます。

Substance Painterで着色

FBXで出力したボステリ頭に色を塗ります。いつもだとUVガイド見ながらAffinity Designerで作成するのですが、これもSubstance Painterで作成した方が時短になるだろうかという事で使ってみています。ハイポリモデルもあるのでそのうち別の遊び方も出来るかもな、というのもあります。

Substance Painterでテクスチャ作成

うーん…。UV適当に作ったせいで顔周辺の解像度が足りないですな…。まぁ、モタモタすると即死亡または解放できないよとどこぞの神がおっしゃってたので、ここではとりあえずそのまま作業続行。

そもそも、最終的にはVRoid Studio連携アプリ等へ持って行く予定なので、トゥーンシェーディングなんですよね。なもんで、使うのはカラーマップぐらいかなぁ…という所でしょうか。ここでもあまり深く考えず着色だけしたら各テクスチャを単体テクスチャとしてエクスポートしておきました。

Vroid Studioで本体を作る

まぁ、ここに関してはいつも通りというか、通常のVRoid Studioの作り方で。

ボストン・テリアモチーフなので黒ベスト+白いシャツでカラーリングを寄せて、今回は自分のアバターという事もあり、普段愛用しているタミヤのエプロンのような何か(^^;を重ね着機能で作成してみました。

頭は被り物を被っちゃうので、髪が飛び出さないように坊主頭を選択。極端な話、顔のメッシュもいらないのですが、なんとなく無けりゃ無いで表情まわりのモーフとかでトラブりそうな気もしたので今の所そのままにしてあります。

で、VRMで出力しておきます。

Blenderに読み込む

ここまで出来た所で一応リソースとしては揃いましたので、今度はBlender上でこれらを読み込んで行きます。

Blenderには比較的標準的に皆さん使われている「VRM_Addon_for_Blender」をインストールしてあります。これのインポート機能により、VRoid Studioから出力したVRMを読み込みます。

今のBlenderだとFBXは標準で読み込み機能を持っているようなので、続けてボステリ頭のFBXファイルを読み込みます。ボディ側とスケール感とか全然違うと思うので、この辺は読み込んだ後に調整しました。

ZBrushからFBXでやってきたボステリ頭は当然、マテリアル周りはボディと全然合わないので、この辺は要修正です。基本的にはボディ側のパラメータ設定を見つつ、同じような構成にしていけば良いかと思います。シェーダ関連はボディ側が「MToon_unversioned」になっていたので、ボステリ頭側もそれに併せました。それと同時に、Substance Painterで作成したカラーテクスチャをMain TextureとShade Textureで刺しておきます。

目玉はBlender側の球モデルで適当に作成しました。シームを水平方向に切ってUV展開しなおしてというあくまでも簡易的な感じですが。

で、最後にボステリ頭モデルをAmature配下に入れてHeadあたりにウェイト振って、キャラとして動かせるような感じにはなりました。

これを再度VRM Addon for Blenderにより、VRMファイルにエクスポートしてひとますの完成です。テストがてら、このキャラをLuppetに突っ込んでみました。セリフは先日購入したVoicepeakの男声を使用して喋らせたものを、Luppetの音声入力に入れています。

UVの関係で解像度低かったり若干色味が頭だけ暗い感じもありますが、これは今後データの方を直していこうかと思います。取り敢えず動作に関しては期待した通り動いているかな、と。

看板娘とボステリ店長の感動の対面の道は険しかった

よし、これで看板娘キャラであるパピフォンとボステリ店長との掛け合い動画が作れるぞ、という事で早速ボステリ店長のVRMをRecotte Studioの話者選択画面から読み込み~!

なんで死んでしまうん…?

・・・ですよね、人生そんなに甘くないですよね。まぁ、トントン拍子で進んだ時に限ってメインの舞台ですっ転ぶもんですよね…。

とりあえず、例外が発生しているようで何度読み込んでもクラッシュになってしまいました。まぁ、僕の作った適当なデータだからどこか直さんといかんのかな~と思って色々検証してみたのですが、実は手持ちの他のVRM対応ツールでは全て正常に読み込めてしまっていたり、VRoid Studioの公式サンプルAちゃんのVRMをダウンロードして、Blenderに読み込み>再出力するだけでもやはり同様の現象が起きてしまっています。

実の所、Recotte Studioのサイトには「全てのモデルデータの読み込みを保証するものではありません」という注意書きがありまして、たぶんこういう辺りはある程度わかってはいるんだろうな、という気もします。

で、次回に続く

・・・という訳でこの辺で躓いて、色々試していたのですが、結論から言ってしまえば、一応目標は達成出来ました。また、Recotte Studioのサポートさんの方にも問い合わせさせて頂いて、現状のお話とかちょっと伺ってみたりしました。今回は長くなってしまったので次の記事でその辺の話を記述出来れば、と思います。話が途中な感じがすごい有るのでなるべく早めに…。

CGAffinityDesigner,Vroid,VroidStudio,パピフォン

最近、Oculus(Meta) Quest2だったりLooking Glass Portraitだったり、弄るにしてもやはりオリジナルのキャラクターモデルが欲しいナぁ…と思う所がありまして、去年の暮れに丁度Vroid Studioの正式版が出たことも有り、キャラクターの方をダラダラと弄ってました。

年末の休み明けてそういえばVroid Hubで衣装コンテストやってたなぁ、折角だからちゃんとコンセプト決めて作ってみようという事で、1月の末の締め切りに向けて作成しました。

VroidStudio 01

コンセプトは折角1月からサイトもリニューアルしたし、電脳茶房という名称の事もあってコンセプトは喫茶店のウェイトレス風がいいかな…と思ったのですが、でもVroid Hubには既に完成度高いメイド服っぽいので溢れてるしなぁという感じでした。

サイトは電脳茶房という名称で長いことやってるのでそれにちなんでややSF寄りがいいのかな、メカっぽいのはVroid Studioのシェーダ的に厳しそうかな、んじゃせめてインジケータ系だけでも…なんかうちのゲーミングPCみたいだな…等と目的や手法を組み合わせていくうちにおおよそのコンセプトが決まりました。

コンセプト決まってしまえば衣装ガリゴリと作りこみ。Vroid Studioだけでもテクスチャのペインティング機能があるので、手軽に書き込みたい人にはこちらで取り敢えず何か描いてみるのがいいのかな、と思います。ある程度、正確な書き込みを行いたい人はVroid Studioからガイド(ポリゴンのラインが描かれた画像)をエクスポートして、それをPhotoshopなどに持ち込み下絵にしてそちら側で塗っていくのが一般的な作業でしょうか。

AffinityDesigner02

今回、僕の方ではPhotoshopでは無く、Affinity Designerというベクター系のイラストツールで作成する事にしました。元より、使い方覚えたかったので良い機会かなという事、比較的色のコントラストがはっきりしているアニメっぽい塗りならベクター系でも行けるかな?という甘い予測(^^;)、何よりベクターデータなので一度描いた後の色やサイズの変更がとてもしやすい事などから、今回はAffinty Designerだけで完結する事も目標の一つとしました。まぁ、こちらの細かい話についてはまた機会があれば書いてみようかな…と思います。

期間にして2週間ぐらいでしょうか、就寝前の少しの時間とかでやってたのであまり時間は取れませんでしたが、Affinity Designerのおかげで、初めに大きくデザインを決めて、後から時間の許す範囲で詳細を詰めたりバランスを調整したりといった作り方が出来ました。

で、1月末にある程度まとめまして、Vroid Hubの衣装コンテストはVroid Studio付属のサンプルA~Cのキャラに適用する必要があったので、今回は派手な衣装に合いそうなサンプルBちゃんを選択して、そちらへの微調整を行いました。

SampleBChan_Gaming_Full01

という事でまずサンプルBちゃんが完成。

サンプルBちゃん、おかげさまで既に100件以上のいいね頂いております、ありがとうございます。周りにはテクニックを駆使した衣装がひしめく中なので、コンセプト…というかネタが評価されたんですかね…(^^; 以下からVroid Hubのページへ飛べます。

サンプルモデルB / ゲーミングメイド by 荻窪 流

で、当サイトで今後使用していくマスコットとして、去年からぼちぼち作っていたオリジナルキャラ「パピフォン」にもこの衣装を着用。著作権的に問題の無いオリジナルなので、今後いろいろな所で働いてもらおうと思っています。

Papiphone05

作ってるうちに髪が犬のパピヨンみたいだなー+持っているギターのエピフォンから、「パピフォン」と命名しました。まぁ、マスコットなんて多少目立つ名前の方がいい、面倒ならパピ子でいいやという感じで…(横暴)。

パピフォンもたった今、世に放ちました。

パピフォン / ゲーミングメイド Ver by 荻窪 流

こちらはVRAST!などの格闘ゲームでの利用等も可能な設定にしておきましたので、よろしかったらご利用いただければ。

そんなこんなで、サンプルBちゃんはここまでとなりますが、パピフォンは今後いろいろな所で登場してもらおうかな、と考えています。お見知り置き頂ければ幸いです。

PapiSampB00m

ヨロシク!