基本コンセプト

Avatar Optimizerの基本コンセプト #

このページでは、Avatar Optimizerの基本コンセプトについて説明します。

Avatar Optimizerとは? #

Avatar Optimizerは、アバターを非破壊的に最適化するためのツールです。 このツールはVRChatアバター向けに設計されていましたが、NDMFでサポートされている他のプラットフォームのアバターにも使用できるかもしれません。

(Avatar Optimizerにおいて、)「非破壊的」とは以下のことを指します。

  • Avatar Optimizerを使用するためにプレハブを展開(unpack)する必要がないこと。
    • Avatar Optimizerを使用するために必要なことは、コンポーネントを追加することだけです。
  • Avatar Optimizerはプロジェクトに保存されているアバターに一切影響を与えず、ビルド中に生成されるアバターデータの一時コピーにのみ影響すること。

なお、VRChat以外のプラットフォームのアバターに対するサポートは主にコミュニティベースであり、Avatar Optimizerの開発チームにはサポートされない場合があります。

Avatar Optimizerの目的は何ですか? #

このツールは、アバターの見た目を殆ど変化させることなく、アバターのパフォーマンスを非破壊的に最適化できるようにすることを目的として設計されています。 そのため、このツールでアバターの振る舞いを変更することは意図していません。

意図していない動作によるアバターの振る舞いの変更は、一部のユースケースで有用かもしれませんが、バグとして扱われます。
そのバグが殆どのユースケースに影響を与えない場合、バグの修正を一時的に見合わせることがありますが、バグによる振る舞いは他のコンポーネントで考慮されないかもしれません。

例えば、1.7.x以前のAAO Merge Skinned Meshコンポーネントは同名のBlendShapeを統合します。
BlendShapeを統合すると、そのBlendShapeに対するアニメーションによる動作が変わってしまうため、これはバグとして扱われます。
このバグを使用して、あるSkinned Mesh RendererのBlendShapeに対するアニメーションを、別のSkinned Mesh RendererのBlendShapeに対しても同時に作用させることができます。
しかし、これはサポートされていない動作であり、他のコンポーネントが動作を壊すかもしれません。
例えば、AAO Trace and OptimizeコンポーネントのBlendShapeを最適化するは、このバグによってAAO Merge Skinned Meshコンポーネントで統合されて動くようになる可能性があるBlendShapeであっても、固定・除去します。

Avatar Optimizerの振る舞いは将来のバージョンでも安定していますか? #

Avatar Optimizerはバージョン管理にセマンティックバージョニングを使用しており、コンポーネントの振る舞いには主にセマンティックバージョニングのルールを適用しています。

すなわち、アバターに既に付いているコンポーネントの振る舞いは、同じメジャーバージョン内では変更されないことが保証されます。
既存のコンポーネントに対して新しい機能が追加された場合には、それ以降にアバターに新たに追加されたコンポーネントの振る舞いのみ、それ以前のものから変更されることがあります。

一部のバグでは、そのバグを修正することによってコンポーネントの振る舞いが大幅に変更される場合があります。 そのような場合には、新たな振る舞いを有効化するためのオプションを追加します。
アバターに既に付いているコンポーネントでは、このオプションをデフォルトで無効にすることで以前までの振る舞いを維持し、 アバターに新たに追加されたコンポーネントでは、このオプションをデフォルトで有効にすることで、バグが修正された新しい動作を行います。

こういったコンポーネントの振る舞いの維持には、いくつか例外があります。

  • コンポーネントのデバッグ専用の機能は、上記のルールに従うことが保証されません。
    例えば、AAO Trace and OptimizeコンポーネントのDebug Optionsは変更される可能性が常にあります。
  • 実験的な機能としてマークされている機能は、上記のルールに従うことが保証されません。
  • AAO Trace and Optimizeコンポーネントの振る舞いは、新しい最適化を実装することによって変更される可能性があります。
    ただし、AAO Trace and Optimizeコンポーネントのデフォルト設定では、アバターの振る舞いや見た目に影響を与えないようにしているため、この変更はアバターに一切影響を与えないはずです。

これら以外で不自然な動作や奇妙な動作などに遭遇した場合は、まずFAQをご覧ください。