リギング
ZEPETOのリグはMayaで設定されており、Mayaのデフォルトのジョイントオリエンテーションを使用しています。Mayaでは、ジョイントチェーンは任意の軸に合わせることができますが、Blenderでは、ボーンはY軸に沿って厳密に指向されています。奇妙に見えるかもしれませんが、ZEPETOアバターとの互換性のために、デフォルトのボーンのオリエンテーションを変更しないことが重要です。
Blenderは、アーマチュアの非レストポーズでメッシュをバインドすることをサポートしていません。アーマチュアにウェイトをバインドする際には、ポーズモードで希望のレストポーズに適用されたアーマチュアを使用するか、レストポーズとしてAポーズが設定された複製リグを使用してください。
リギングは、ZEPETOアバターと一緒にアイテムを動かすためにデータを適用するプロセスです。リギングがないと、アプリ内でアイテムはアバターと一緒に動きません。リギングのプロセスを通じて、アイテムがアバターのスケルトンにどのように従うかを指示します。 技術的には:3Dアプリケーションでは、キャラクターの3Dジオメトリはしばしばジョイントやボーンによって制御されます。これらのジョイントやボーンは、レンダリングには表示されない特別な3Dオブジェクトで、キャラクターがどのように動くかのルールを設定し、しばしばピボットポイントとして機能します。リギングは、メッシュの頂点が特定のジョイントやボーンにどの程度従うべきかを指示するデータを保存するプロセスです。Blenderでは、この種のデータは「頂点グループ」と呼ばれます。 ウェイトは数値的に割り当てることも、「ペイント」することもできます。影響を仮想的にペイントする方が、個々の頂点に小数点以下の数値を割り当てるよりも取り組みやすいため、時間と精神の節約のためにこのウェイトペインティングの方法に焦点を当てます。 ジョイントとボーンは3Dソフトウェアで似た機能を果たしますが、用語に伴うわずかな違いがあります。ジョイントは3D空間の単一の点を表し、ソフトウェア定義の優先方向はありません。Mayaはジョイントを使用し、一般的にジョイントをX軸が次のボーンに向かうように整列させます。ボーンも機能的には空間の単一の点を表しますが、他のキャラクターが従うことを期待するソフトウェア定義の方向があります。Blenderはボーンを使用し、Y軸が次のボーンに向かうように設計されています。このボーンとジョイントの違いは、Blenderでリグを扱う際にいくつかの問題を引き起こし、それを回避する必要があります。
- "hips"と"hips_scale"ボーンを含める必要があります
- ウェイトペインティング中にマスクがアイテムを突き抜けないようにする
- アーマチュアを動かしたときに体やアイテムが崩れないようにする
- 最大スキンウェイトの影響は4に固定されています
- これらはBlenderのデフォルトですが、ウェイトの影響を手動で設定するには、アイテムメッシュのウェイトペイントモードに入ります。3Dビューポートのウェイトメニューで「合計を制限」を選択します。ビューポートの左下に表示されるメニューを展開し、「制限」値が4に設定されていることを確認します。
一般的に、ドレスはリグの上部と下部の骨を使用しますが、他のアイテムはより制約された選択肢を持っています。 Creator Base Setに付属するマスクオブジェクトには、ZEPETOアバターのウェイトが含まれています。マスクオブジェクトのウェイトをアイテムのウェイトの基礎として使用するのは便利です。マスクのウェイトをアイテムのウェイトに転送するには、Blenderのウェイト転送機能を使用します。
creatorBaseSet_zepeto.fbxファイルに含まれるマスクとアーマチュアオブジェクトを使用します。これらのオブジェクトには、ZEPETOスタジオがアプリ内でアイテムを機能させるために探すオブジェクト名、骨名、および骨の向きが定義されています。後でUnityでの変換プロセスを混乱させないように、名前を似たものに保つことが重要です。
Blenderはアーマチュアの「休止ポーズ」に初期のウェイトデータを適用します。これは、Aポーズでアイテムをモデリングし、それをTポーズの休止ポーズアーマチュアに適用しようとすると、初期のバインディング操作でアイテムが正しい位置からずれる可能性があることを意味します。この問題を回避するためには、アイテムのモデリングポーズに休止ポーズが設定されたアーマチュアにアイテムをバインドすることが有用です。 非Tポーズの休止ポーズアーマチュアを持つための有用な方法は、元のアーマチュアとマスクを複製し、複製されたアーマチュアに休止ポーズを適用し、休止ポーズに基づいて衣服アイテムをリギングすることです。組織化のために、複製されたマスクとリグは新しいポーズに基づいて名前を変更する必要があります。各アーマチュアとマスクセットをそれぞれのコレクションに配置することも、組織化に役立ちます。 アーマチュアに休止ポーズを適用するのは比較的簡単です:
- アーマチュアを希望のポーズに設定する
- アタッチされたマスク要素を選択し、モディファイアプロパティタブでアーマチュアモディファイアを見つける a. アーマチュアモディファイアのドロップダウンメニューで「適用」を選択する
3. アーマチュア要素を選択し、ポーズモードに移動します
- すべてのボーンを選択し、ビューポートの上部にあるポーズメニューに移動します
- 「適用」に移動し、「ポーズを休止ポーズとして適用」を選択します
4. オブジェクトモードに戻り、マスク要素を選択します
- モディファイアタブで、新しいアーマチュアモディファイアを追加します
- オブジェクトターゲットスポットで、ポーズを取ったアーマチュアを見つけて選択します
これでアーマチュアに新しいレストポーズが適用され、マスク要素はこの新しいレストポーズに従います。
📘 ZEPETOには、トップエレメントを持つZEPETOテンプレートアイテムに表示されるAポーズの特定の回転があります
ZEPETOのAポーズには、合計4つのボーンにわたる回転があります:
- 肩のボーン「shoulder_L」と「shoulder_R」は、Z軸で-7.5度回転しています
- 腕のボーン「upperArm_L」と「upperArm_R」
ボーンの回転を適用するには、Blenderのデフォルトのクォータニオン設定よりもEuler XYZ回転を使用する方が簡単です。使いやすさのために、ボーンの設定タブでこれらの回転軸を変更します。
creatorBaseSet_zepeto.fbxファイルに含まれているマスクとアーマチュアオブジェクトを使用します。これらのオブジェクトには、ZEPETOスタジオがアプリ内でアイテムを機能させるために探すオブジェクト名、ボーン名、およびボーンの向きが定義されています。後でUnityで変換プロセスを混乱させないように、名前を似たものに保つことが重要です。
- アーマチュアがアイテムにフィットし、休止ポーズに設定されていることを確認します
- 服がTポーズにフィットするようにモデリングされている場合、変更されていないクリエーターベースセットのアーマチュアはデフォルトで機能します a. 服がZEPETOのAポーズにある場合、アーマチュアをAポーズにフィットさせる必要があるかもしれません
- コスチュームアイテムを選択し、次にアーマチュアを選択します
- 空のウェイトでアーマチュアに親を適用します
5. マスクのウェイトをアイテムに転送します
- マスクを選択し、次にアイテムを選択します
- ウェイトペイントモードに移動します
- ウェイト > ウェイト転送で「ウェイト転送」操作を使用します
- 「名前で」ウェイト転送操作が行われていることを確認します
6. アイテムのウェイトが正しく設定されているかどうかを確認するために関節を回転させます
- ウェイトブラシツールを使用してジョイントウェイトを編集します。デフォーマーウェイトが正規化されていることを確認してください。
- ボーンウェイトの修正が完了したら、すべてのボーンの変換をリセットします
🚧 ZEPETOアバターは、ベースアバターを複数の体型に適応させるためにスケールボーンを使用します。
スケルトンにスケールボーンと非スケールボーンの両方がある場合、スケールボーンにウェイトを適用し、非スケールボーンにはウェイトを適用しないでください。
Blenderの対称性とボーン命名システムにより、提供されたリグは組み込みのウェイトミラーリングツールを使用して簡単にミラーリングされた頂点グループを持つことができません。ウェイトの対称性は手動で適用するか、アドオンを介してミラーリングする必要があります。
スカート要素のリギングには追加の注意が必要です。スカートは、脚の要素を持つものの標準的な動作のため、ZEPETOでリギングするのがより難しいです。スカートは、拡張されたパンツのセットのようにアイテムの脚に従います。これにより、脚が離れるとスカートの中央部分が伸びることがあります。これは避けられませんが、慎重なウェイトペインティングによって、伸びを滑らかにすることができます。
リギングのバインディングと修正が完了したら、エクスポートするためにリグをTポーズに戻す必要があります。これを行うには、AポーズのアーマチュアにリギングされたアイテムをTポーズにし、Tポーズでアイテムを適用し、Tポーズのスケルトンにアイテムを再バインドします。 詳細は以下の通りです:
- ポーズモードでAポーズのアーマチュアを選択します。
- アーマチュアの骨をTポーズに戻します a. ZEPETOのAポーズの場合、肩_Lと肩_Rの骨をZ軸で7.5度回転させ、上腕_Lと上腕_Rの骨をZ軸で40度回転させることで簡単に達成できます。
- オブジェクトモードでアイテムを選択します。
- モディファイアプロパティタブでアーマチュアモディファイアを見つけます。
- ドロップダウンメニューをクリックして適用を押します。
5. アイテムにアーマチュアモディファイアを追加します。
- アーマチュアオブジェクトを元のcreatorBaseSet Tポーズのアーマチュアにポイントします。
6. アイテムのメッシュまたはウェイト転送から発生するエラーに対してアイテムのウェイトを修正します。
変形の仕組みにより、Tポーズに戻されたメッシュは、肩や上腕の部分でボリュームを失う可能性があります。メッシュを編集してボリュームを追加するのは比較的簡単な修正です。メッシュの境界領域の参考としてTポーズマスクを使用してください。
すべてのウェイトが確定し、エクスポートの準備が整ったら、アイテムに影響を与えないボーンセットを削除します。ZEPETOスタジオでは、アイテムにアップロードできるボーンの数が100に制限されています。未使用のボーンを削除することで、このボーン数の問題を事前に回避できます。Blenderのエクスポーターは、頂点グループやウェイトがなくてもスケルトン内のすべてのボーンをエクスポートします。アイテムに多くの追加ボーンが必要な場合、ボーン数を減らすためにスケールボーン以外のボーンを削除する必要があるかもしれません。必要に応じて、ツイストボーンやヒップボーンを除き、対応するスケールボーンがある非スケールボーンを削除します。ヒップボーンが含まれていないとアイテムが壊れます。