Skip to content

Commit

Permalink
Merge pull request #1335 from anatawa12/docs
Browse files Browse the repository at this point in the history
Docs
  • Loading branch information
anatawa12 authored Nov 28, 2024
2 parents e725c8f + 23d93c1 commit aab7fff
Show file tree
Hide file tree
Showing 22 changed files with 125 additions and 68 deletions.
20 changes: 10 additions & 10 deletions .docs/content/_index.ja.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,28 +15,28 @@ Avatar Optimizerは[GitHub]上で開発され、[MIT License]で公開されて

## インストール {#installation}

Avatar Optimizerは[VPM][vpm]レポジトリを使用して公開されているため、任意のvpmクライアントを使用してインストールできます
Avatar Optimizerは[VPM][vpm]リポジトリを使用して公開されているため、任意のVPMクライアントを使用してインストールできます

{{< beta-only color="success" >}}
{{< hint info >}}

プレリリース版のAvatar Optimizerでは、anatawa12のvpmレポジトリで提供されていないNDMFのプレリリース版が使用されている場合があります
その場合、VCCにbd_ prereleasesレポジトリ(<https://vpm.nadena.dev/vpm-prerelease.json>)を追加する必要があります。
プレリリース版のAvatar Optimizerでは、anatawa12のVPMリポジトリで提供されていないNDMFのプレリリース版が使用されている場合があります
その場合、VCCにbd_ prereleasesリポジトリ(<https://vpm.nadena.dev/vpm-prerelease.json>)を追加する必要があります。

{{< /hint >}}
{{< /beta-only >}}

### VCC を使用する (推奨) {#installation-vcc}
### VCCやALCOM を使用する (推奨) {#installation-vcc}

1. [このリンク][VCC-add-repo-link]をクリックしてanatawa12のレポジトリを追加する
2. VCCでAvatar Optimizerを追加する。
1. [このリンク][VCC-add-repo-link]をクリックして、anatawa12のVPMリポジトリを追加します
2. AAO: Avatar Optimizerをプロジェクトに追加!

### UnityPackageを使用する {#installation-vpai}

unitypackageをインポートするだけでもこのツールをインストールできます。(VCCから追加する方法と全く同じようになります)

1. [ここ][installer unitypackage 1.x.x]からインストーラunitypackageをダウンロードする
2. unitypackageをプロジェクトにインポートする。
1. [ここ][installer unitypackage 1.x.x]からインストーラunitypackageをダウンロードします
2. unitypackageをプロジェクトにインポート!

<details>
<summary>他のバージョン用のインストーラ</summary>
Expand All @@ -53,7 +53,7 @@ unitypackageをインポートするだけでもこのツールをインスト

### vrc-getを使用する {#installation-vrc-get}

もしコマンドラインに精通しているのであれば、[vrc-get][vrc-get]を使用してインストールできます
もしコマンドラインに精通しているのであれば、[vrc-get][vrc-get]を使用してインストールすることもできます

```bash
# add our vpm repository
Expand All @@ -65,7 +65,7 @@ vrc-get install com.anatawa12.avatar-optimizer

### VPMコマンドラインインターフェースを使用する {#installation-vpm-cli}

もしコマンドラインに精通しているのであれば、[VPM/VCC CLI][vcc-cli]を使用してインストールできます
もしコマンドラインに精通しているのであれば、[VPM/VCC CLI][vcc-cli]を使用してインストールすることもできます

```bash
# add our vpm repository
Expand Down
13 changes: 9 additions & 4 deletions .docs/content/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,17 @@ Those utilities are applied on entering play mode or building avatars.

Avatar Optimizer is a Open Source Software developed on [GitHub] published under the [MIT License].

[![discord link][shields-discord]][ndmf-discord]

[GitHub]: https://github.com/anatawa12/AvatarOptimizer
[MIT License]: https://github.com/anatawa12/AvatarOptimizer/blob/HEAD/LICENSE
[shields-discord]: https://img.shields.io/badge/chat_on-NDMF_Discord-5865F2?logo=discord&logoColor=white

[ndmf-discord]: https://discord.gg/dV4cVpewmM

## Installation {#installation}

Avatar Optimizer is published with [VPM][vpm] repository so you can install this package using any vpm clients.
Avatar Optimizer is published with [VPM][vpm] repository so you can install this package using any VPM clients.

{{< beta-only color="success" >}}
{{< hint info >}}
Expand All @@ -26,10 +31,10 @@ You may have to add <https://vpm.nadena.dev/vpm-prerelease.json>, bd_ prerelease
{{< /hint >}}
{{< /beta-only >}}

### With VCC (Recommended) {#installation-vcc}
### With VCC / ALCOM (Recommended) {#installation-vcc}

1. Click [this link][VCC-add-repo-link] to add anatawa12's repository.
2. Add Avatar Optimizer from VCC.
1. Click [this link][VCC-add-repo-link] to add anatawa12's VPM repository.
2. Add Avatar Optimizer to your project from VCC / ALCOM.

### Using UnityPackage {#installation-vpai}

Expand Down
6 changes: 0 additions & 6 deletions .docs/content/docs/basic-concept/index.ja.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,6 @@ 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の振る舞いは将来のバージョンでも安定していますか? {#behavior-stability}

Avatar Optimizerはバージョン管理に[セマンティックバージョニング]を使用しており、コンポーネントの振る舞いには主にセマンティックバージョニングのルールを適用しています。
Expand Down
6 changes: 0 additions & 6 deletions .docs/content/docs/basic-concept/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,6 @@ All non-configured changes in the avatar behavior is treated as a bug, even if i
In some cases, we may put off the bug since it does not affect so much for most use cases.\
However, the buggy behavior may not be considered in other components.

For example, `AAO Merge Skinned Mesh` component in 1.7.x or older merges BlendShapes which have the same name.\
This behavior is treated as a bug since this makes impossible to animate them separately.\
You may use this bug to sync the BlendShape animation of an Skinned Mesh Renderer with one of another Skinned Mesh Renderer.\
However, this is not supported behavior and some other components may break the behavior.\
For example, `Optimize BlendShape` in `AAO Trace and Optimize` component will freezes the BlendShapes which might be animated with this buggy behavior by being merged by `AAO Merge Skinned Mesh` component.

## How is the behavior of Avatar Optimizer stable for future versions? {#behavior-stability}

Avatar Optimizer uses the [Semantic Versioning] for versioning and mostly applies the rules of Semantic Versioning to the behavior of the components.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ for in-place modification tools that do not process on build,
it's a little bit complicated to remove components by `IVRCSDKPreprocessAvatarCallback` instead of Avatar Optimizer.
Therefore, Asset Description was added in v1.7.0 as a simple mechanism to specify components that should be ignored by Avatar Optimizer at build time.

For non-destructive tools, we still recommend you to continue to remove components in `IVRCSDKPreprocessAvatarCallback` to prevent Avatar Optimizer from accidentally removing components when the execution order is incorrect.
For non-destructive tools, we still recommend you to continue to remove components in `IVRCSDKPreprocessAvatarCallback` or your NDMF Pass to prevent Avatar Optimizer from accidentally removing components when the execution order is incorrect.

[make-component-compatible]: ../make-your-components-compatible-with-aao

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ Avatar Optimizer v1.6.0で[コンポーネントにAAOとの互換性をもた
非破壊ツールでなく、ビルド時に処理を行わないようなツールでは、`IVRCSDKPreprocessAvatarCallback`でコンポーネントを削除するのは少し面倒だろうと考えました。\
そのため、Avatar Optimizerに無視してほしい、ビルド時やランタイムで処理を行わないコンポーネントを指定するためのシンプルな仕組みとして、Asset Descriptionがv1.7.0で追加されました。

なお、非破壊ツールの場合については、正しくない実行順で処理が行われた場合に、Avatar Optimizerがコンポーネントを誤って削除してしまわないように、従来通り`IVRCSDKPreprocessAvatarCallback`でコンポーネントを削除することを推奨します
なお、非破壊ツールの場合については、正しくない実行順で処理が行われた場合にAvatar Optimizerがコンポーネントを誤って削除してしまわないように、従来通り`IVRCSDKPreprocessAvatarCallback`やNDMFを使用してAvatar Optimizerの処理よりも先にコンポーネントを削除することを推奨します

[make-component-compatible]: ../make-your-components-compatible-with-aao

Expand Down
20 changes: 17 additions & 3 deletions .docs/content/docs/developers/component-api/index.ja.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ Avatar Optimizer v1.7.0以降、アバターにAvatar Optimizerのコンポー
現時点では、すべてのコンポーネントがComponent APIで利用出来るわけではありません。
Component APIが利用可能なコンポーネントの一覧は以下の通りです。

- `RemoveMeshInBox` - コンポーネントの追加と設定変更がサポートされています
- `RemoveMeshByBlendShape` - コンポーネントの追加と設定変更がサポートされています
- `RemoveMeshInBox` - コンポーネントの追加と追加時の設定変更がサポートされています
- `RemoveMeshByBlendShape` - コンポーネントの追加と追加時の設定変更がサポートされています
- `TraceAndOptimize` - デフォルト設定での追加はサポートされていますが、設定変更はサポートされていません

将来のバージョンで追加されるデフォルトで有効な機能との互換性を保つために、コンポーネントの設定変更を行う場合には注意が必要です。
Expand All @@ -30,5 +30,19 @@ Avatar Optimizerはランタイムで動作しないため、ランタイムビ
([動作の安定性](../../basic-concept/#behavior-stability)で説明されているように、)デフォルト設定は変更される可能性があります。\
デフォルト設定は、`GameObject.AddComponent<T>()`メソッドで追加されるコンポーネントに影響します。
従って、Avatar Optimizerの将来のバージョンとの互換性を保つためには、使用するデフォルト設定のバージョンを指定して`Initialize`メソッドを呼び出す必要があります。
デフォルト設定のバージョンは、`Initialize`メソッドのドキュメントに記載されているはずです。\
デフォルト設定のバージョンは、`Initialize`メソッドのドキュメントに記載されているはずです。

{{< hint warning >}}

`Initialize`メソッドを呼び出さなかった場合、コンポーネントが予期しない動作をしたり、将来的にエラーが発生したりする可能性があります。

{{< /hint >}}

{{< hint info >}}

コンポーネントの設定変更はコンポーネントを追加した直後に行う場合のみサポートされており、既にGameObject上に存在しているコンポーネントに対する設定変更はサポートされていません。
これは、将来のバージョンで追加された機能が、既存のコンポーネントの設定内容と互換性がない可能性があるためです。

例えば、v1.8.0で追加された`AAO Remove Mesh By Box`コンポーネントの反転オプションを有効にすると、設定される箱による効果が変わってしまい、v1.7以前のみを想定して作成されているツールと互換性がなくなってしまいます。

{{< /hint >}}
22 changes: 18 additions & 4 deletions .docs/content/docs/developers/component-api/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ By using this API, you can create tools or components that add Avatar Optimizer
Currently, not all components are supported by Component API.
Here is the list of components that are supported by Component API.

- `RemoveMeshInBox` - Adding and configuring component is supported
- `RemoveMeshByBlendShape` - Adding and configuring component is supported
- `RemoveMeshInBox` - Adding component and configuring for that is supported
- `RemoveMeshByBlendShape` - Adding component and configuring for that is supported
- `TraceAndOptimize` - Adding with default configuration is supported but configuring is not supported

For components that supports configuring, to keep compatibility with future features that enabled by default,
Expand All @@ -30,5 +30,19 @@ Second, If you want to configure components, you have to call `void Initialize(i
The default setting of Avatar Optimizer can be changed in the future (as described in [Behavior Stability](../../basic-concept/#behavior-stability)).\
The default setting of Components will be affected to the components added with `GameObject.AddComponent<T>()` method.
Therefore, to keep behavior compability with future versions, you have to call `Initialize` method with the version of default configuration you want to use.
The default configuration version should be described in the document of the `Initialize` method.\
Without calling `Initialize` method, component will behave unexpectedly or you may get error in the future.
The default configuration version should be described in the document of the `Initialize` method.

{{< hint warning >}}

Without calling `Initialize` method, component will behave unexpectedly, or you may get error with future versions.

{{< /hint >}}

{{< hint info >}}

Configuring component is only supported just after adding component, and configuring already existing component on the GameObject is unsupported.
This is because some future functionality might be incompatible with the existing component configuration.

For example, enabling the inversion option of `AAO Remove Mesh By Box` component, added in v1.8.0, changes the meaning of box, which makes it incompatible with tools intended only for v1.7 and earlier.

{{< /hint >}}
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ title: コンポーネントにAvatar Optimizerとの互換性をもたせる
- コンポーネントはどのような場合にAvatar Optimizerと非互換になるか
- どのように互換性を改善するか

もし質問があれば、お気軽に[fediverseで`@[email protected]`][fediverse]にご連絡ください
もし質問があれば、お気軽に[Fediverse (Misskey / Mastodon)][fediverse][NDMF Discord]でご連絡ください

## コンポーネントはどのような場合にAvatar Optimizerと非互換になるか {#when-incompatible}

Expand Down Expand Up @@ -143,3 +143,5 @@ Avatar Optimizerは他の非破壊改変ツールとの互換性を確保する
[NDMF]: https://ndmf.nadena.dev/
[modular-avatar]: https://modular-avatar.nadena.dev/
[Version Defines]: https://docs.unity3d.com/2019.4/Documentation/Manual/ScriptCompilationAssemblyDefinitionFiles.html#define-symbols
[Asset Description]: ../asset-description
[NDMF Discord]: https://discord.gg/dV4cVpewmM
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ This page describes the following two things.
- When can components be incompatible with Avatar Optimizer?
- How to improve the compatibility?

If you have some question, please feel free to ask [`@[email protected]` on fediverse][fediverse].
If you have some question, please feel free to ask on [Fediverse (Misskey / Mastodon)][fediverse] or [NDMF Discord].

## When can components be incompatible with Avatar Optimizer? {#when-incompatible}

Expand Down Expand Up @@ -74,8 +74,6 @@ To improve the compatibility, you may implement one of the following methods.

Avatar Optimizer internally uses this method to keep compatibility with well-known edit-mode tools.

[Asset Description]: ../asset-description

### Removing your components {#remove-component}

There are several ways to process and remove your components from avatar before Avatar Optimizer processes on build. You can use [`DestroyImmediate`][DestroyImmediate] method for removing your components.
Expand Down Expand Up @@ -154,3 +152,5 @@ with many non-destructive tools based on NDMF.
[NDMF]: https://ndmf.nadena.dev/
[modular-avatar]: https://modular-avatar.nadena.dev/
[Version Defines]: https://docs.unity3d.com/2019.4/Documentation/Manual/ScriptCompilationAssemblyDefinitionFiles.html#define-symbols
[Asset Description]: ../asset-description
[NDMF Discord]: https://discord.gg/dV4cVpewmM
Loading

0 comments on commit aab7fff

Please sign in to comment.