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

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.
  • For problems that occur when combined with other assets, please contact us only if the problem is due to an issue on the Arbor side and we need to resolve it in advance.
  • Please check Arbor Documentation and ask a question if you still don't know how to use it. If the desired function is not described in the document, it is highly possible that the function does not exist from the beginning, so go to the request forum.

ここは、Arbor開発者へ使い方に関する質問を行うフォーラムです。
注意点:
  • ユーザー様のプロジェクトの仕様上の問題や設計に対する質問には答えられません。
  • Unityの仕様上の問題に対する質問には答えられません。
  • 他アセットとの組み合わせによって発生する問題は、事前に問題を切り分けたうえでArbor側の問題により対応が必要である場合のみお問い合わせください
  • Arbor Documentationを確認の上、それでも使い方がわからない場合にご質問ください。欲しい機能の記載がドキュメントにない場合は機能が元から存在しない可能性が高いので要望フォーラムへ。

Forum rules
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.
  • For problems that occur when combined with other assets, please contact us only if the problem is due to an issue on the Arbor side and we need to resolve it in advance.
  • Please check Arbor Documentation and ask a question if you still don't know how to use it. If the desired function is not described in the document, it is highly possible that the function does not exist from the beginning, so go to the request forum.

ここは、Arbor開発者へ使い方に関する質問を行うフォーラムです。
注意点:
  • ユーザー様のプロジェクトの仕様上の問題や設計に対する質問には答えられません。
  • Unityの仕様上の問題に対する質問には答えられません。
  • 他アセットとの組み合わせによって発生する問題は、事前に問題を切り分けたうえでArbor側の問題により対応が必要である場合のみお問い合わせください
  • Arbor Documentationを確認の上、それでも使い方がわからない場合にご質問ください。欲しい機能の記載がドキュメントにない場合は機能が元から存在しない可能性が高いので要望フォーラムへ。
hildsoft
Posts: 5
Joined: 2020/05/16 13:42

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

Post by hildsoft »

お世話になっています。

FSMを含むゲームオブジェクトをPrefab化した際の部分的な更新についての質問です。
1.png
1.png (217.35 KiB) Viewed 5608 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: 496
Joined: 2015/08/17 12:41

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

Post by caitsithware »

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

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 »

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

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

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