よくある質問

よくある質問 #

Avatar Optimizerに関するよくある質問のリストです。 他に質問がある場合は、GitHub DiscussionsまたはFediverse (Misskey / Mastodon)でお気軽にお尋ねください。

AAO Trace and Optimizeコンポーネントを使用すると、アバターの振る舞いや見た目が変わる #

AAO Trace and Optimizeコンポーネントを使用して、アバターの振る舞いや見た目が変わってしまった場合は、(アバターがAvatar Optimizerの他のコンポーネントのバグ挙動に依存していない限り、)全てバグです。 GitHub IssuesFediverse (Misskey / Mastodon)Twitterなどから報告をお願いします。

メッシュが視界の中にあるのに非表示になってしまう #

多くの場合、この問題はSkinned Mesh RendererのRoot Boneを指定し忘れていることが原因です。

AAO Merge Skinned MeshコンポーネントはRoot Boneの設定を自動的には行わないため、統合先のメッシュ1Root Boneを手動で設定する必要があります。

Modular Avatarを使用している場合は、アバターのルートにMA Mesh Settingsコンポーネントを追加して設定することにより、アバター全体のRoot BoneBoundsを設定することができます。

AAO Merge Skinned Meshコンポーネントで統合したメッシュの明るさが他のメッシュと異なる #

多くの場合、この問題は統合先のメッシュのAnchor Overrideを指定し忘れていることが原因です。
AAO Merge Skinned MeshコンポーネントはAnchor Overrideの設定を自動的には行わないため、統合先のメッシュ1Anchor Overrideを手動で設定する必要があります。

Modular Avatarを使用している場合は、アバターのルートにMA Mesh Settingsコンポーネントを追加して設定することにより、アバター全体のAnchor Overrideを設定することができます。

AAO Merge Skinned Meshコンポーネントを使用すると、マテリアルプロパティに対するアニメーションが競合する #

この問題は既知のバグであり、現時点では競合してしまう仕様です。

マテリアルプロパティに対してアニメーションされるメッシュを統合する際は、競合しないようご注意ください。 競合する場合は警告が表示されるので、そちらを確認してください。

この問題のissue: #340

AAO Merge Skinned Meshコンポーネントを使用すると、マテリアルスロットに対するアニメーションが競合する #

AAO Merge Skinned Meshコンポーネントは、統合対象のメッシュで同じマテリアルを使用しているマテリアルスロットをデフォルトで統合します。 これにはアニメーションされるマテリアルスロットも含まれます。

アニメーションによってそれぞれのマテリアルを別のものに置き換える場合は、AAO Merge Skinned Meshコンポーネントのマテリアルの統合統合するをオフにしてください。

AAO Merge Skinned Meshコンポーネントを使用すると、BlendShapeに対するアニメーションが競合する #

この問題は既知のバグであり、現時点では競合してしまう仕様です。

BlendShapeに対してアニメーションされるメッシュを統合する際は、競合しないようご注意ください。 競合する場合は警告が表示されるので、そちらを確認してください。

この問題のissue: #568

OSCギミックで使用されているPhysBone / Contact Receiverが動作していない #

AAO Trace and Optimizeコンポーネントは、アバターの振る舞いを変えないように慎重に設計されています。 しかし、技術的な理由から、AAO Trace and OptimizeコンポーネントはPhysBone / Contact ReceiverコンポーネントがOSCギミックで使用されているかどうかを判断することができません。

最近のアバターは、PhysBone / Contact Receiverコンポーネントを使用した独自のギミックを持っていることがあるため、これらのコンポーネントを削除し忘れることがよくあります。 そのため、AAO Trace and Optimizeは、そのようなコンポーネントがOSCギミックで使用されていないと仮定して、それらが他の用途で使われていなければ削除します。

もちろん、仮定が正しいとは限らないため、PhysBone / Contact ReceiverコンポーネントをOSCギミックに使用している場合には、それらが使用されていると分かるようにアバターを調整してもらわなければならないかもしれません。
AAO Trace and Optimizeは、アバター内のAnimatorにあるパラメーターと同じパラメーターが使用されているPhysBone / Contact Receiverコンポーネントを削除しないようになっています。 そのため、OSCギミックで使用されるパラメーターを、Animator Controllerのパラメーター一覧やExpression Parameterに追加することで、これらのコンポーネントが削除されないようになります。

また、改善のための議論の材料として、OSCギミックで使われているPhysBoneやContact Receiverが削除された場合には、それらに設定されているパラメータ名を教えていただけると助かります。 将来的に、有名なOSCギミックによって使用されるパラメーターの一覧を実装して、それらのパラメータが使用されている場合はコンポーネントを保持するような形を取るかもしれませんし、他の方法で対処するかもしれません。
以下のissueやFediverse (Misskey / Mastodon)Twitterなどでお気軽にお知らせください。

この問題のissue: #1090

ビルド前のハードリミットチェックのせいでアバターをアップロードできない #

Avatar Optimizerなどの非破壊的なアバター改変ツールを使うと、元々ハードリミットを超えているようなアバターでも、ビルド後にはハードリミットを超えないようになることがあります。 しかし、VRCSDKのコントロールパネルにあるアップロードボタンは、シーン上のアバターがハードリミットを超えている場合には押せないようになっています。
そのような場合でも、以下のような方法を使って、ビルド前のハードリミットチェックを飛ばしてアップロードすることができます。 (ビルド後のハードリミットチェックも存在するため、ビルド後にハードリミットを超える場合は以下の方法でもアップロードに失敗します。)

  • Manual bake avatarで生成したアバターをアップロードする。\

    アバターのGameObjectを右クリックして出てくるメニューのNDM FrameworkからManual bake avatarをクリックすると、非破壊ツールによる処理を手動で適用することができます。 Manual bake avatarは初めにアバターを複製し、その複製に対して非破壊ツールの処理を適用させるため、元のアバターは変更されないままになります。

  • Sayamame-beansのUpload without pre-checkを使用してアップロードする。

    Upload without pre-checkは、ビルド前のハードリミットチェックをスキップしてアップロードするためのツールです。

  • kurotuのVRCQuestToolsを使用する

    VRCQuestToolsは、アバターをAndroid / Quest対応アバターに変換するためのツールです。
    このツールには、ビルド前チェックをスキップしてアバターをAndroid向けにビルドするためのVQT Avatar Builderという機能が含まれています。

Avatar Optimizerの開発を支援したい #

Avatar Optimizerの開発を支援したい場合、GitHub DiscussionsでのフィードバックやGitHub Issuesでのバグ報告、機能追加の要望、またプルリクエストなどを歓迎しています。

good first issueが付いているissueは、比較的実装が簡単なissueです。初めてのプルリクエストにおすすめです。 また、help wantedが付いているissueは、開発者や情報などが不足しているissueです。議論や開発に参加していただけると助かります。

なお、GitHub SponsorsBoothでの金銭的な支援も受け付けています。


  1. 統合先のメッシュとは、AAO Merge Skinned Meshコンポーネントと一緒に付いているSkinned Mesh Rendererのことです。 ↩︎ ↩︎