FSMを含むオブジェクトをPrefab化した際の部分的なOverridesについて

ここは、Arbor開発者へ使い方に関する質問を行うフォーラムです。
注意点:
  • ユーザー様のプロジェクトの仕様上の問題や設計に対する質問には答えられません。
  • Unityの仕様上の問題に対する質問には答えられません。

Here is the forum to do the questions about how to use to Arbor developer.
Attention point:
  • We can not answer your questions about your project specific issues.
  • We can not answer your questions on Unity's specification issues.

Forum rules
注意点:
  • ユーザー様のプロジェクトの仕様上の問題や設計に対する質問には答えられません。
  • Unityの仕様上の問題に対する質問には答えられません。

Attention point:
  • We can not answer your questions about your project specific issues.
  • We can not answer your questions on Unity's specification issues.
hildsoft
Posts: 5
Joined: 2020/05/16 13:42

FSMを含むオブジェクトをPrefab化した際の部分的なOverridesについて

Post by hildsoft » 2020/05/29 18:53

お世話になっています。

FSMを含むゲームオブジェクトをPrefab化した際の部分的な更新についての質問です。
1.png
1.png (217.35 KiB) Viewed 641 times
FSMと内包されているStateBehaviourが更新対象として挙がっているとき、逐次更新するとFSMが壊れてしまいます。
(Stateだけが残り、StateBehaviourが消えます)
Allで更新するとFSMが壊れることは無いのですが、更新したくない赤い枠の部分も更新されてしまいます。

そこで下記2点の質問です。

・現状のUnityの選択更新ではコンポーネント単位で単一コンポーネントしか選択できないようなのですが、
図の青い枠の部分のコンポーネントを複数同時に更新し、赤い枠の部分はそのままにすることは可能でしょうか?

・青枠のコンポーネントを誤って単独で更新してしまった場合にPrefabとhierarchy上の両方のFSMが壊れてしまい、Undoも効きません。
この操作ミスを抑止する(単体での更新不可や、FSMの選択で内包のコンポーネントもまとめて対象とする)ような仕組みはありますでしょうか?

確認環境
Windows 10 Pro 1909
Unity 2019.3.13f1
Arbor 3.6.11

User avatar
caitsithware
管理人
Posts: 377
Joined: 2015/08/17 12:41

Re: FSMを含むオブジェクトをPrefab化した際の部分的なOverridesについて

Post by caitsithware » 2020/05/30 00:18

いつもご利用ありがとうございます。

Arborを使用した場合のPrefabに関するご質問ですね。

まず、Arborでなぜ部分上書をすると壊れるかについてですが、Arbor上ではArborFSMというComponent(Unityオブジェクトとして扱われる)がStateBehaviourというComponentを保持している扱いとなっていますが、Unityの仕様としては全く別のComponentとして関連性はないものとして扱われています。
よって、ArborFSMとStateBehaviour両方に変更点(とくにStateBehaviourの追加や削除、データスロットの接続切断などArborFSMとStateBehaviour両方跨ぐような変更)がある状況で、1コンポーネントのみ上書きしてしまうと関連付けが正常に行われない。という感じです。
これは現状Unityの仕様によるところですので、UnityのPrefab機能をそのまま利用した場合どうしようもできません。
現在のArbor側としましてはApply Allを推奨する形になります。
hildsoft wrote:
2020/05/29 18:53
・現状のUnityの選択更新ではコンポーネント単位で単一コンポーネントしか選択できないようなのですが、
図の青い枠の部分のコンポーネントを複数同時に更新し、赤い枠の部分はそのままにすることは可能でしょうか?
上記の通り、こちらはUnityの機能そのままですのでフォーラムルールにある通り申し訳ありませんがUnityの仕様上の問題に関することですので確かなことは答えられません。
Unityへのお問い合わせをお勧めいたします。
hildsoft wrote:
2020/05/29 18:53
・青枠のコンポーネントを誤って単独で更新してしまった場合にPrefabとhierarchy上の両方のFSMが壊れてしまい、Undoも効きません。
この操作ミスを抑止する(単体での更新不可や、FSMの選択で内包のコンポーネントもまとめて対象とする)ような仕組みはありますでしょうか?
こちらもPrefab機能側についてはUnityの機能そのままですので、そういった仕組みがあるかについてはUnityの仕様上の問題に関することですので確かなことは答えられません。

Arbor側としましてはまずそういったことが実現可能なのかも含め検討していきたいと思います。

hildsoft
Posts: 5
Joined: 2020/05/16 13:42

Re: FSMを含むオブジェクトをPrefab化した際の部分的なOverridesについて

Post by hildsoft » 2020/05/30 01:31

ご多忙のところ、早速の回答ありがとうございます。
caitsithware wrote:
2020/05/30 00:18
これは現状Unityの仕様によるところですので、UnityのPrefab機能をそのまま利用した場合どうしようもできません。
現在のArbor側としましてはApply Allを推奨する形になります。
なるほど。Componentを並列でしか持てないUnity側の仕様なのですね。
確かにComponentの入れ子は見たことないですね……。

操作が悪いのか仕様なのかが分からなかったので迷っていましたが、確認できて方向が定まりました。
Allで処理する分には問題ないようなので、FSMComponentを持たせるGameObjectを再考してみます。

ありがとうございました。

Post Reply