Page 1 of 1
ステートのリンクに、パラメータを設定出来る機能がほしい
Posted: 2018/07/30 01:01
by kkk
ステートマシンにて、ステートのリンクにパラメーターを設定して、接続先に渡す機能がほしいです。
(もしくはそのような機能はありますか?)
例えば、A, B, Move ステートがあるとして、AからMove に接続する場合は、MoveのSpeedが1、BからMoveに接続する場合はSpeedが2と、パラメータのみ変えたい場合が多々あります。今だと、Speed1とSpeed2のMoveステートを作るか、ステート移行する前に、Moveに何らかの方法で直接Speedを設定するしか無いので、複雑化してしまいます。よろしくおねがいします。
Re: ステートのリンクに、パラメータを設定出来る機能がほしい
Posted: 2018/07/30 01:23
by caitsithware
ご要望ありがとうございます。
データの受け渡しについては、現状、ParameterContainerを介すかデータフローに流す方法があります。
ParameterContianer
マニュアル : ParameterContainer
例:
- Aステートに入った時に、CalcParameterなどを使用してSpeedパラメータに1を設定。
- Bステートに入った時に、CalcParameterなどを使用してSpeedパラメータに2を設定。
- MoveステートではFlexibleFloatで宣言したSpeedフィールドにSpeedパラメータを設定。
データフロー
マニュアル : データフロー
例:
- Aステートから遷移する直前にOutputSlotFloatに1を出力し遷移。
- Bステートから遷移する直前にOutputSlotFloatに2を出力し遷移。
- MoveステートではInputSlotFloatの配列を持たせ、InputSlotFloat.updatedTimeを比較して一番新しいデータを使用する。
- グラフ上で、AステートとBステートからの出力スロットをMoveステートの入力スロットに接続
補足として、こちらは複数の出力を1つの入力に接続する機能がないため、厳密には非推奨な手法となっています。
あくまで参考程度にしてください。
もしこれらの方法で問題があるようでしたら検討いたします。
Re: ステートのリンクに、パラメータを設定出来る機能がほしい
Posted: 2018/07/30 02:27
by kkk
返答ありがとうございます。
たしかにその方法でパラメータ設定可能ですが、移行先でのみ使う変数(クラス変数など)を、リンクでパラメータ設定できれば、便利かと思いました。
ステートが増えてしまいますが、現状でも
A -> A用設定ステート -> Move
B -> B用設定ステート -> Move
なら、スクリプトをいじらなくても設定できそうなので、そちらで対応してみます。
よろしくおねがいします。
Re: ステートのリンクに、パラメータを設定出来る機能がほしい
Posted: 2018/07/30 02:43
by caitsithware
お返事ありがとうございます。
最終的には、便利かどうかは設定方法によるかと思いますが、
結局のところ、「どのパラメータにどんな値をどう設定するか」という課題がまずありますので、
現在のCalcParameterと設定機能的には同じとなり、単純に設定用にCalcParameterを追加しないといけないのが面倒、という話にも思えます。
ひとまず設定できる機能があるという点、スクリプトを自由にカスタマイズできる点を考慮すると、
StateLinkにまでパラメータ設定の固有の機能までは必要ないと思いますがどうでしょうか?
Re: ステートのリンクに、パラメータを設定出来る機能がほしい
Posted: 2018/07/30 03:29
by kkk
設定に、CalcParameterを追加して 接続先にも何かしらの処理が必要になるなら、現状と同じになるので必要性は低そうです。
何もいじらず、接続先の変数を変更できるのであれば、あるなら便利ですね。
現状でもなんとかなるので、可能であればってレベルで大丈夫です。
ありがとうございました。
Re: ステートのリンクに、パラメータを設定出来る機能がほしい
Posted: 2018/07/30 03:48
by caitsithware
今後の拡張性も考え、遷移時処理用スクリプトをStateLinkに持たせられるようにする
(そこにCalcParameterと同等のスクリプトも組み込みで提供)
ということであれば最大限の便利さを提供できそうですが、
そうではなく、単にStateLinkにパラメータを設定できるだけの機能があるとCalcParameter追加する手間が省けて便利
(逆に言うと遷移時スクリプト機能はいらない)
という話であれば、申し訳ありませんが、現状の方法での対応をお願いいたします。
また、処理+遷移用スクリプトを作成し、遷移前にパラメータを設定するようにするのはいかがでしょうか。
処理ごとにスクリプトを書く手間はありますが、1度作ってしまえばCalcParameterを毎度追加する手間よりかは楽になるかと思います。
もしスクリプトの作成方法やパラメータへの設定方法がわからないなどありましたら
質問フォーラムで聞いていただければ可能な限りサポートいたしますのでよろしくお願いいたします。