2024-08-05 11:44:10 +08:00
|
|
|
---
|
|
|
|
sidebar_position: 1
|
|
|
|
---
|
|
|
|
|
2024-08-05 12:28:53 +08:00
|
|
|
# リアクティブコンポーネント
|
2024-08-05 11:44:10 +08:00
|
|
|
|
2024-08-05 12:28:53 +08:00
|
|
|
リアクティブコンポーネントとは、付属しているGameObject、その親のアクティブ状態、そして[Menu Item](../menu-item.md)の選択状態に応じて何かを
|
2024-08-05 11:44:10 +08:00
|
|
|
引き起こすコンポーネントです。これにより、手動でアニメーションを設定することなく、簡単なトグルを構築したり、衣装の状態に応じてブレンドシェープを
|
|
|
|
変えたりすることができます。
|
|
|
|
|
2024-08-05 12:28:53 +08:00
|
|
|
現在利用可能なリアクティブコンポーネントは次の通りです:
|
2024-08-05 11:44:10 +08:00
|
|
|
|
|
|
|
- [Object Toggle](./object-toggle.md) - 他のゲームオブジェクトのアクティブ状態を制御します
|
|
|
|
- [Shape Changer](./shape-changer.md) - レンダラーのブレンドシェープを変更します
|
2024-08-11 10:43:38 +08:00
|
|
|
- [Material Setter](./material-setter.md) - レンダラーのマテリアルを変更します
|
2024-08-05 11:44:10 +08:00
|
|
|
|
2024-08-05 12:28:53 +08:00
|
|
|
## リアクティブコンポーネントの一般的なルール
|
2024-08-05 11:44:10 +08:00
|
|
|
|
2024-08-05 12:28:53 +08:00
|
|
|
一般的に、リアクティブコンポーネントは起動状態ときに何らかの効果を適用します。リアクティブコンポーネントは次の条件が満たされるときに起動状態とみなされます:
|
2024-08-05 11:44:10 +08:00
|
|
|
|
|
|
|
- 付属しているGameObjectとその親がシーン階層でアクティブである
|
2024-08-11 10:43:38 +08:00
|
|
|
- リアクティブコンポーネントが[Menu Item](../menu-item.md)と同じGameObject、もしくはその子にある場合、Menu Itemが選択されている
|
|
|
|
- なお、一番近い親のMenu Itemのみが考慮されます(親のサブメニューは無視されます)
|
2024-08-05 11:44:10 +08:00
|
|
|
|
2024-08-05 12:28:53 +08:00
|
|
|
アバターを構築した後、リアクティブコンポーネントは以下に反応します:
|
2024-08-05 11:44:10 +08:00
|
|
|
|
|
|
|
- GameObjectの状態を変更するアニメーション
|
2024-08-05 12:28:53 +08:00
|
|
|
- 他のリアクティブコンポーネントのアクティブ状態に影響を与えるObject Toggle
|
2024-08-05 11:44:10 +08:00
|
|
|
- Menu Itemの選択
|
|
|
|
|
2024-08-11 10:43:38 +08:00
|
|
|
「条件を反転」オプションを選択することもできます。この場合、コンポーネントの効果は、上記の条件のいずれかから外れる場合に適用されます。
|
|
|
|
|
2024-08-05 11:44:10 +08:00
|
|
|
### 優先ルール
|
|
|
|
|
2024-08-05 12:28:53 +08:00
|
|
|
同時に複数のリアクティブコンポーネントが起動状態であり、その効果が競合する場合(例: 1つがゲームオブジェクトをオフにしようとし、もう1つが
|
2024-08-05 11:44:10 +08:00
|
|
|
オンにしようとする場合)、階層の一番下にあるコンポーネントが優先されます。
|
|
|
|
|
|
|
|
### 反応タイミング
|
|
|
|
|
2024-08-19 10:39:33 +08:00
|
|
|
:::warning
|
|
|
|
|
|
|
|
リアクティブコンポーネントの反応タイミングは、実装を最適化するに連れて微妙に変更される可能性があります。精密なタイミング合わせを要求するギミックには
|
|
|
|
リアクティブコンポーネントの反応タイミングに依存しないでください。
|
|
|
|
|
|
|
|
:::
|
|
|
|
|
2024-08-05 12:28:53 +08:00
|
|
|
GameObjectのアクティブ状態の変更に反応するリアクティブコンポーネントは、1フレームの遅延後に反応します。ゲームオブジェクトが非アクティブになる場合、
|
2024-08-05 11:44:10 +08:00
|
|
|
ゲームオブジェクトの非アクティブ化は1フレーム遅れて行われ、同時に行われます。この理由については[Shape Changer](./shape-changer.md)
|
|
|
|
を
|
|
|
|
参照してください。
|
|
|
|
|
2024-08-05 12:28:53 +08:00
|
|
|
1つのリアクティブコンポーネントが他のリアクティブコンポーネントの状態を制御する場合、各リアクティブコンポーネントの発動に1フレームの遅延があります。遅延は
|
|
|
|
個々のリアクティブコンポーネントに適用され、A -> B -> Cのような構造でAがオフになる場合、タイミングは次のようになります:
|
2024-08-05 11:44:10 +08:00
|
|
|
|
|
|
|
- フレーム1: 何も起こらない(Aの無効化が遅延)
|
|
|
|
- フレーム2: Aが無効化される(Bの無効化が遅延)
|
|
|
|
- フレーム3: BとCが同時に無効化される
|
|
|
|
|
2024-08-26 12:12:35 +08:00
|
|
|
### デバッグについて
|
2024-08-05 11:44:10 +08:00
|
|
|
|
2024-08-26 12:12:35 +08:00
|
|
|
Reactive Components システムには、アバターのオブジェクトやメニューアイテムのオン/オフの効果をシミュレートするためのデバッガ機能が含まれています。
|
|
|
|
開くには、ゲームオブジェクトを右クリックし、`Modular Avatar -> Show Reaction Debugger` を選択します。詳細については、
|
|
|
|
[デバッグ機能のドキュメント](./debugger/index.md)を参照してください。
|