AVASTARで作成したデフォームボーンのアップロード設定と注意点

今回の制作での問題解決、記事作成にあたってはSecondlifeでクールなモノづくりをされているショップ[ ridi-ludi-fool ]chiki.vita様にご助力いただきました。
改めてこの場にて、心より感謝申し上げます。

ボーンの変形を行った装着物の作成で起こったトラブルと、その解消法について記載します。

※2022年9月13日追記 記事最下部「デフォームボーンされたアイテムを複数装着する事でのジョイントオーバーライドの優先度」について、JIRAに記事があり、リンデンがこの問題を把握し解決に向けて作業に取り組む予定、とのコメントがありました。
この問題が完全に解消されるまでにはまだ少し時間がかかると思われますが、希望が持てそうな事を確認しています。

※2022年9月15日追記 記事最下部「デフォームボーンされたアイテムを複数装着する事でのジョイントオーバーライドの優先度」について、一応の解決策を取る事ができたので改めて記事にしました。ご参考ください。


はじめに

本記事で使用しているのはBlender 2.79bとAVASTAR 2.79.2となります。
どちらも既に現行のバージョンではないため、最新の環境で作業している方の参考にはならないかもしれません。
また、Secondlife向けの制作を熟知されている方から見ると、間違っている箇所があるかもしれません。その際は緩く見ていただくか、コメントにてご指摘いただければ嬉しいです。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

今回作成したのは、装着型のリグ入りメカハンド。
大きな手を作りたかったので、手首から先のボーンを約2倍にしました。

メッシュに合わせて、指の関節位置や関節の長さを調整(デフォームボーン)。


リギング、ウェイト設定を行い Collada(Avastar).daeでエクスポート。

ベータグリッドでアップロードしたところ、デフォームした手のボーン以外にも変形している箇所が見つかった。(下画像参照)


装着前はボーンが緑(変形していない)状態。

アップロードしたメッシュを装着すると、変形させていないはずの右肩~肘のボーンが変形してしまっている(右肩~肘のボーンが赤く表示される)


これまで、ボーンをリギングしたものは全てアニメッシュだったためな問題にならなかったが、装着メッシュでこの状態は意図していない変形でこのまま完成させるわけにはいかない。

そこでアップロード時の情報を確認すると「リグ」の項目で手の入れていない不要なボーンが読み込まれているのが確認できました(黄色枠内、mShouderRight、mPelvisやmSpine1など細字の部分)。


さらにmChest(胴)やmCollarRight~mShoulderRight(右肩)のボーンはBlender上で手を加えていないにも関わらず「変形している」と見なされ、ポジションのオーバーライドが発生している、と表示されています。

これがアップロードしたメッシュを身に着けた時に、肩の変形が起こる原因となっていた。
(今まで作ったリグ入りの物は全て同様の現象が起こっていましたが、アバター自体に影響を及ぼさないアニメッシュ装着物だったため、今回のような問題が起こっていませんでした)


●解消するために~原因と解決方法

原因はBlenderからのメッシュエクスポート時の設定にありました。

(1)問題が起こっていたエクスポート設定



エクスポート>Collada(Avastar)(.dae)のAdvancedをオープン、
表示された内容の赤枠内「Bone filters」にある
☑「Export with joints」
☑「Export all Bones」
こちらの2項目のチェックを外す事で、リギングした箇所以外のボーンが読み込まれる事はなくなった。
正しくは、☑「Export all Bones」のみチェックを外せば正常にアップされる模様。
☑「Export with joints」についてはチェックを入れても入れなくても影響が無く、初期状態でチェックが入っていないかもしれないので怪しければ外しとけの精神で外しています。
最終的なエクスポートの設定は下図の通り。

このチェック状態になっていれば、メッシュをアップロード時余計なボーンがオーバライドして読み込まれないので同様の問題が起こった場合は設定を見直してみてください。
また、エクスポート設定の詳細についてはAVASTERのヘルプページが参考になります。

☑「Export all Bones」の字面通り、ここにチェックが入っていると「全てのボーンをエクスポート」するため、不要なボーンもアップ含まれてしまう、ということです。


ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
しかし?(ここから先は読まなくても大丈夫です。多分。)
「Export all Bones」にチェックが入っており全てのボーンをエクスポートしたとしても、ボーンを変形させていなければジョイントがオーバーライドされて読み込まれる事はないのでは?」と思うのです。(ややこしい…頭が痛い)
その謎は次のリンクのAVASTARの解説ページにヒントがあるような気がします。
ページの中ほどからPIVOTとPOSはどうですか(日本語訳状態)という内容があります。(頭痛を起こしたい方は上記リンク先ページをお読みください)

要はSecondlife内部でPOSとPIVOTというジョイント定義があり、それぞれにズレがあるため、外から持ち込んだボーン(PIVOTと認識される)がPOSと衝突してオーバーライドを起こすとの事です。(多分。正直何度読んでも理解がなかなか追いつかないので、もし違っていたら指摘ください。また画像のような引用が不味ければ削除するので言ってください)

なので?(読まなくていいゾーン終わり)

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

とりあえず「アップロード時になんか関係ないボーンがオーバライドしてて困る」時は、
☑「Export all Bones」のチェックは外してみましょう、が今回の解決方法となります。
ただし、全身のボーンを変形させたフルアバターなどを作成した場合はこのチェックを入れたほうがいい場合もあるかもしれません。
今回はあくまでも「不要なボーンが含まれないようにする」ための措置なので、全ての制作にこのエクスポート設定が適用できるとは決めないでください。


余談ではないデフォームボーンの注意点
「ボディやヘッドは人間のままでアバターの手をでっかくしたい」という理由で今回デフォームボーン入りのリグ入りオブジェクトを作る事を思いつきました。
実は同様の商品があるかマケプレで探したりしましたがほとんど見つからず、じゃあやっぱり作るか、ということになったのですが、いざボーンの問題が解消すると別の問題が起こりました。
同様なアイテムを作ろう!と思っている方はご一読ください(長くなるけどごめんね)。

アップロードした今回のビッグハンドをアバターに装着したところ、次の画像のような問題が起こりました。

右手は変形させたボーンが正しく適用された状態、左手は変形させたボーンが適用されず指がおかしい状態です。
身に着けているメッシュボディの手のボーンが既に変形されており、そちらが優先されているのが原因でした。
ちなみに着用しているメッシュボディは某大手のバージョン5.xです。
ボーンの変形に特に優先度が設定できるわけではなく「変形されたボーン同士はどちらが優先されるかわからない」が一応の答えになります。
上の画像では右手ですが、試しにアップした同メッシュの別保存ファイルでは両手が適用されなかったりしたため「どうなるかわからない」と判断しました。

各ブランドからは様々なメッシュボディが販売されていますが、手のボーンが変形されているものに関してはこういった問題が起こります。
ただ、手足のメッシュが別々のものに関しては手のメッシュを外せばビッグハンドのボーンが適用されるので例として某大手la●ボディに関しては5.x以前の手足が別バージョンであれば使う事が可能です。

他ブランドについても、手足が別であれば問題なく使え、手足一体型でも手のボーンが変形されていなければ、後から変形ボーンのメッシュを装着しても正しく適用されます。
もちろんクラッシックアバターであれば、問題なく使用可能です。

これはsecondlifeの仕様なのでどちらが悪い、ということではなく、こういった現象が起こるという事実の記載となります。
アバターアクセサリーとして今後様々な変形ボーン入りのオブジェクトを作ろうと考えていますが、この問題がある以上、販売時の告知、必ずデモ試用をしてもらう、などの措置が必要だと思いました。
ただ、今後各メッシュボディ界の流れによっては手足一体型のボディが主流になるかもしれません。先の事はさっぱりでんがな。

自由なアバターカスタマイズのためにその流れが来ない事を祈るか、何か動いた方がいいのか悩むところです。

コメント