サイドパネルへのSetParameterにVariableのスロットを接続できない

ここは、Arbor開発者へ不具合を報告するためのフォーラムです。
報告に必要な項目は以下の通りです。
  • Unityバージョン
  • Arborバージョン
  • OS
  • ビルドプラットフォーム
  • 再現方法
  • 再現プロジェクト(Arborや他アセットなどを含まない最小構成)もしくは動画
注意:Unityのベータ版およびアルファ版はサポート対象外です。正式リリース版をご利用ください。

Here is a forum for reporting failure to Arbor developer.
The items necessary for reporting are as follows.
  • Unity version
  • Arbor version
  • OS
  • Build platform
  • How to reproduce
  • Reproduction project (Minimum configuration not including Arbor and other assets) or video
Note: Unity beta and alpha versions are not supported. Please use the official release version.
Forum rules
報告に必要な項目は以下の通りです。
  • Unityバージョン
  • Arborバージョン
  • OS
  • ビルドプラットフォーム
  • 再現方法
  • 再現プロジェクト(Arborや他アセットなどを含まない最小構成)もしくは動画
注意:Unityのベータ版およびアルファ版はサポート対象外です。正式リリース版をご利用ください。

The items necessary for reporting are as follows.
  • Unity version
  • Arbor version
  • OS
  • Build platform
  • How to reproduce
  • Reproduction project (Minimum configuration not including Arbor and other assets) or video
Note: Unity beta and alpha versions are not supported. Please use the official release version.
Yumineko

サイドパネルへのSetParameterにVariableのスロットを接続できない

Post by Yumineko » 2019/02/11 16:27

・Unity 2018 3.5f1
・Arbor 3.4.2
・WIndows10 64bit


variableを作成してサイドパネルのパラメータへ登録。
Drug to placeでビヘイビアツリーへドロップしてSet Parameterアクションノードを作成。

別のアクションノードから
・FlexibleXXXX
・OutputSlot<XXXX>
・OutputSlot<FlexibleXXXX>
・OutputSlotAny
のいずれを使っても、SetParameterのInputスロットへ繋げません。
FlexibleXXXXのみ、一度リルートするとつなげます。2つ目と3つ目はpublicにしようと、エディタに表示すらされません。

なお、VariableのフィールドはpublicのListを登録しています。

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

Re: サイドパネルへのSetParameterにVariableのスロットを接続できない

Post by caitsithware » 2019/02/12 00:09

ご報告ありがとうございます。

FlexibleXXXX
Yumineko wrote:
2019/02/11 16:27
FlexibleXXXXのみ、一度リルートするとつなげます。
FlexibleXXXが持つデータスロットは入力専用ですので、SetParameterにつなげられること自体が問題ですね(お互い入力スロット同士)
詳しく検証して修正いたします。

OutputSlot<XXXX>
Yumineko wrote:
2019/02/11 16:27
2つ目と3つ目はpublicにしようと、エディタに表示すらされません。
ジェネリック型はシリアライズ対象とならないためUnityの仕様となっています。
マニュアル : スクリプティング / Variableのサンプルコードにあるように、出力したい型専用のOutputSlotクラスを定義するようお願いいたします。

また、OutputSlot<FlexibleXXXX>はFlexible型を出力する事になってしまうため、想定外の動作になる恐れがあります。
OutputSlotに指定する型はFlexibleXXXX以外の通常の型を指定するようにお願いいたします。

コード例:

Code: Select all

// 自作の型
[System.Serializable]
public class TestData
{
	public int intData;
}

// 自作の型TestData用出力スロット
[System.Serializable]
public class OutputSlotTestData : OutputSlot<TestData>
{
}
OutputSlotAny

OutputSlotAnyは、SlotTypeAttributeの属性で出力型を指定しない限りInputSlotAnyにのみ接続できる特殊な出力スロットであるため、こちらも仕様となっています。
特定の型を出力したい場合は以下のように型指定してください。

コード例:

Code: Select all

// 自作の型TestDataを出力するスロット
[SlotType(typeof(TestData))]
public OutputSlotAny outputSlotTestData = new OutputSlotAny();
※SlotType属性付きOutputSlotAnyを使う場合はOutputSlot<XXXX>の型定義は不要です。

Variableや入出力スロットの使用方法に関してのマニュアルが不足しておりました。
マニュアルについても今後の更新で改善していきます。

ご不便おかけして申し訳ございませんがよろしくお願いいたします。

Yumineko

Re: サイドパネルへのSetParameterにVariableのスロットを接続できない

Post by Yumineko » 2019/02/12 05:17

迅速な回答をありがとうございます。Variable C# Scriptを生成した際に、OutputXXXX型も作られていたんですね。見落としていました。
解決しました。

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

Re: サイドパネルへのSetParameterにVariableのスロットを接続できない

Post by caitsithware » 2019/02/18 02:13

caitsithware wrote:
2019/02/12 00:09
FlexibleXXXが持つデータスロットは入力専用ですので、SetParameterにつなげられること自体が問題ですね(お互い入力スロット同士)
詳しく検証して修正いたします。
検証してみましたが、入力スロット同士がデータの流れ的に接続されてしまう不具合は確認できませんでした。
出力スロットは複数の入力スロットに接続できるため、リルートノードに関しても出力サイドが複数の入力スロットに接続できるのは正常動作になります。

例:
DataSlotMultiOutput.png
DataSlotMultiOutput.png (60.56 KiB) Viewed 175 times
このような接続であれば正常です。

もし入力スロット同士が不正に接続されているようでしたら、その再現方法やスクリーンショットもいただけると助かります。

Locked