Arbor 3.1.0 リリース


新機能まとめ

Variable

ParameterContainer用のパラメータを自作できるようになりました。

Variableによるパラメータのカスタマイズ

グラフのズームアウト

全体を見渡せるようにグラフのズームアウトを実装しました(Unity 2017.3以降有効)

GIF

グラフのキャプチャ

グラフ全体を画像にキャプチャできるようになりました。

子グラフをPrefabで共有

SubStateMachineReferenceやSubBehaviourTreeReferenceを使用することでPrefab化しているノードグラフを子グラフとして実行できるようになりました。

GIF

リファレンス

更新内容

追加

ArborEditor

  • グラフ未選択のときにグラフ作成ボタンやマニュアルページを開くボタンなどを表示。
  • グラフのズーム機能を追加(Unity 2017.3.0f3以降のみ有効)
  • グラフのキャプチャ機能を追加。
  • ツールバーにグラフ作成ボタン追加。
  • ArborEditorでグラフを開いた時にArborロゴの表示を追加。
    歯車アイコンをクリックして表示される設定ウィンドウでトグルできます。
  • AssetStoreの更新通知を追加。

ArborEditor拡張

  • ArborEditorWindowクラスに、背面をカスタマイズできるunderlayGUIコールバック追加。
  • ArborEditorWindowクラスに、前面をカスタマイズできるoverlayGUIコールバック追加。
  • ArborEditorWindowクラスに、ツールバーをカスタマイズできるtoolbarGUIコールバック追加。

ParameterContainer

  • ユーザー定義型を追加できるVariable追加。
  • Variable定義のスクリプトをテンプレートから作成するVariableGeneratorWindow追加。

AgentController

  • MovementTypeフィールド追加。
  • MovementDivValueフィールド追加。
  • TurnTypeフィールド追加。
  • 移動値や回転量をMovementTypeとTurnTypeに従ってAnimatorへ受け渡すように変更。

組み込みStateBehaviour

  • AgentControllerを指定位置方向に向き直すAgentLookAtPosition追加。
  • AgentControllerを指定Transform方向に向き直すAgentLookAtTransform追加。
  • プレハブのArborFSMを子グラフとして実行するSubStateMachineReference追加。
  • プレハブのBehaviourTreeを子グラフとして実行するSubBehaviourTreeReference追加。
  • シーンをアクティブにするSetActiveScene追加。
  • LoadLevelにIsActiveSceneフィールドを追加。
  • LoadLevelにDone遷移追加。

組み込みActionBehaviour

  • AgentControllerを指定位置方向に向き直すAgentLookAtPosition追加。
  • AgentControllerを指定Transform方向に向き直すAgentLookAtTransform追加。
  • プレハブのArborFSMを子グラフとして実行するSubStateMachineReference追加。
  • プレハブのBehaviourTreeを子グラフとして実行するSubBehaviourTreeReference追加。
  • Waitに経過時間の表示を追加。

組み込みDecorator

  • TimeLimitに経過時間の表示を追加。
  • Cooldownに経過時間の表示を追加。

スクリプト

  • Assembly Definitionに対応(Unity2017.3.0f3以降のみ有効)
    この対応に伴い、フォルダ構成も変更。
  • NodeGraphクラスにrootGraphプロパティ追加。
  • NodeGraphクラスにToStringメソッド追加。
  • NodeクラスにGetNameメソッド追加。
  • NodeクラスにToStringメソッド追加。
  • 入力する型を指定できるInputSlotAnyクラス追加。
  • 出力する型を指定できるOutputSlotAnyクラス追加。
  • 参照するパラメータの型を指定できるAnyParameterReferenceクラス追加。
  • Flexibleな型クラスのジェネリッククラス版FlexibleField<T>追加。
  • ParameterにvariableValueプロパティ追加。
  • ParameterにSetVariableメソッド追加。
  • ParameterにGetVariableメソッド追加。

変更

ArborEditor

  • Gridボタンを歯車アイコンに変更し、ボタンを押して表示されるポップアップウィンドウをグリッド以外も設定するGraphSettingsウィンドウに改名。
  • ツールバーの言語ポップアップをGraphSettingsウィンドウへ移動。
  • ツールバーのヘルプボタンからアセットストアやマニュアルページを開くメニューを表示するように変更。
  • 接続線をマウスオーバーした時のハイライト表示を見やすいデザインに変更。
  • グループノードのリサイズを各辺のドラッグでできるように変更。
  • サイドパネルのノードリストでCtrlやShiftを押しながら複数選択できるように変更。
  • リルートノードの向きをドラッグ中にEscキーを押すとキャンセルできるように変更。

組み込みStateBehaviour

  • LoadLevelのAdditiveフィールドをLoadSceneModeフィールドに変更。
  • TimeTransitionのSecondsフィールドをFlexibleFloat型に変更。

スクリプト

  • FlexibleField関係のクラスで使用する参照タイプを共通で使用するように変更。
  • Parameter.intValueなどをプロパティ化。
    setした際にonChangedを呼ぶように変更。
  • Parameter.valueプロパティにset追加。

廃止

スクリプト

  • Parameter.OnChangedをObsoleteに変更。
    Parameter.intValueなどを変更した際に内部でonChangedがコールバックされるようになったため、呼び出しは不要になりました。
  • AddCalculatorMenu属性をObsoleteに変更。
    AddBehaviourMenu属性を共通で使用するように変更しました。
  • BuiltInCalculator属性をObsoleteに変更。
    BuiltInBehaviour属性を共通で使用するように変更しました。
    また、BuiltInBehaviour属性は組み込み挙動用の属性のため、それ以外では使用しなくても問題ありません。
  • CalculatorHelp属性をObsoleteに変更。
    BehaviourHelp属性を共通で使用するように変更しました。
  • CalculatorTitle属性をObsoleteに変更。
    BehaviourTitle属性を共通で使用するように変更しました。

修正

ArborEditor

  • BehaviourTreeが実行終了してもArborEditor上ではアクティブ表示されたままとなり、まるで実行が継続されているように見えていたのを修正。
  • FlexibleGameObjectのCalculatorタイプフィールドの高さを修正。
  • サイドパネルのグラフ名入力欄が入力欄以外をクリックしてもフォーカスしたままになっているのを修正。
  • StateLinkやCalculatorSlotなどの接続線のドラッグ中にEscキーを押すとドラッグ中のライン表示が残ってしまうのを修正。
  • サイドパネルのヘッダスタイルがUnityのバージョンにより見た目が変わっていたのを修正。
  • ConstantMultilineAttributeをつけたFlexibleStringでテキストの切り取りや貼り付けなどの編集ができなかったのを修正。
  • ドッキングされているArborEditorウィンドウが非表示のままプレイ開始やシーン切り替えなどをするとNullReferenceExceptionが発生するのを修正。
  • プレイモード終了時に画面外のノードへの接続線の表示位置が正しくない不具合を修正。
  • Actionノードをコピーするときノード名がコピーされていなかったのを修正。
  • Compositeノードをコピーするときノード名がコピーされていなかったのを修正。
  • ノードを貼り付けや複製した時にグリッドスナップが効いていなかったのを修正。
  • Stateの遷移元がリルートノードの場合に、Stateを削除しても接続ラインが消えなかったのを修正。
  • StateLinkを接続しているStateを削除後にリドゥすると、接続ラインがすぐに再描画されないのを修正。
  • ノード選択のUndo/Redoを修正。
  • ノード作成や削除のUndo/Redoを繰り返し行うとメモリリークしていたのを修正。
  • グラフ選択のUndo/Redoをしたときの不具合を修正。
  • ノード選択していない場合はFrame Selectedできないように修正。

ArborFSM

  • Unity2018.1以降でArborFSMのRemoveComponentを行うとNullReferenceExceptionが発生するのを修正。
  • プレハブのArborFSMをシーンウィンドウにドラッグ&ドロップすると、グラフ内部で使用しているコンポーネントがインスペクタに表示されてしまうのを修正。

BehaviourTree

  • 現在ノードがRootになったタイミングで割り込み判定が行われるとNullReferenceExceptionが発生するのを修正。
  • Unity2018.1以降でBehaviourTreeのRemoveComponentを行うとNullReferenceExceptionが発生するのを修正。
  • プレハブのBehaviourTreeをシーンウィンドウにドラッグ&ドロップすると、グラフ内部で使用しているコンポーネントがインスペクタに表示されてしまうのを修正。

AgentController

  • AgentController自身のTransformを参照していた不具合を修正。
  • AgentControllerの初期化をAwakeで行うように修正。

組み込みStateBehaviour

  • SubStateMachineのUpdateTypeをManualに修正
    ルートグラフのUpdateTypeにより適切なタイミングで処理されるように変更。
  • SubBehaviourTreeを追加するとArborFSMがインスペクタに表示されなくなるのを修正。

組み込みActionBehaviour

  • WaitのSecondsが毎フレーム再計算していたのを修正。

組み込みDecorator

  • TimeLimitのSecondsが毎フレーム再計算していたのを修正。
  • CooldownのSecondsが毎フレーム再計算していたのを修正。

スクリプト

  • State.transitionCountをuintに修正。
  • State.transitionCountがuint.MaxValueを超えないように修正。
  • StateLink.transitionCountをuintに修正。
  • StateLink.transitionCountがuint.MaxValueを超えないように修正。

その他

  • スクリプトのコンパイル直後にプレイ開始すると、開始までに時間がかかるようになっていたのを修正。
  • Unity2018.2.0 ベータ版でのエラー修正。

関連するUnity不具合

Unityの不具合により一部挙動に問題が発生しています。

アセットストア

更新手順

Arborをアップデートする際は以下の手順に従ってください。

  1. 更新前に必ずプロジェクトのバックアップを取ってください。
  2. 既存のシーンを開いている場合は、メニューの「File / New Scene」からシーンを新規作成しておきます。
  3. Arbor Editorウィンドウを開いている場合は一旦閉じておきます。
  4. 既にインポートされているArborフォルダを削除。
  5. Arborの新バージョンをインポート。