よくある質問


Contents

最新バージョンに更新したらエラー発生

最初に、マニュアル : アップデートガイドの更新手順や各バージョンの更新ガイドを参照してください。

アップデートガイドに記載されている方法を試してもエラーが発生する場合は、お手数おかけしますが不具合報告フォーラムにご報告お願いいたします。

接続線とノードが重なって接続状況が見づらい

リルートノードを使用することで、接続線とノードが重ならないように調整できます。

StateLinkのリルートノード

リルートノードの作成

  • リルートノードを作成したい位置へStateLinkをドラッグ&ドロップ
  • メニューの「リルート」を選択
GIF

リルートノードの挿入

  • 既に接続済みの接続線をマウスオーバーし右クリック。
  • メニューの「リルート」を選択。
GIF

リルートノードの方向編集

  • リルートノードを選択。
  • 方向アイコンをドラッグ
GIF

データスロットのリルートノード

リルートノードの作成

  • リルートノードを作成したい位置へデータスロットをドラッグ&ドロップ
  • メニューの「リルート」を選択
GIF

リルートノードの挿入

  • 既に接続済みの接続線をマウスオーバーし右クリック。
  • メニューの「リルート」を選択。
GIF

リルートノードの方向編集

  • リルートノードを選択。
  • 方向アイコンをドラッグ
GIF

コンポーネントのメソッドを呼び出したい

SendEventGameObject

UnityEvent対応のStateBehaviourを使用することで、簡易なメソッド呼び出しが可能です。

Arbor Reference : SendEventGameObject

UnityEventの仕様上、複数の引数がある場合やサポートされている引数の型に制限がある点に注意してください。

また、複雑なメソッドや引数をデータ入力スロットで受け取るなどの機能ははありません(Arbor 3.2.0時点)

Arborに正式対応したメソッド呼び出しは今後の更新で対応予定です。

ステートが開始されたタイミングでTransform.LookAtを呼び出して向きを変更する

Unity不具合関連

[2017.3未満]System.Flags属性をつけたEnum型フィールドが正しく設定されない

EditorGUI.EnumMaskField、EditorGUILayout.EnumMaskFieldの不具合により、ビットフラグ値が連続していない場合、GUIで設定した値と実際の値が異なってしまう。

Unity Issue Tracker : EditorGUILayout.EnumMaskField does not support having 0 valued consts

解決策

  • Unity 2017.3以降を使用する。
  • Unity 2017.3未満のまま使用する場合は、連続したビットフラグ値のみ使用する。

[System.Flags]
public enum ExampleFlags
{
	// None = 0, // 問題あり : これ以降の値がズレる
	FlagA = 1,
	FlagB = 2,
	FlagC = 4,
	FlagD = 8,
	// FlagAA = 64, // 問題あり : GUIから設定する値が16(FlagDの次ビット)扱いになってしまう
	// FlagAB = FlagA | FlagB, // 問題あり : FlagCの前にFlagABが割り込まれてしまい、FlagC以降の表示と値がズレる
}

[2018.3未満]ArborEditorがPlaymode Tintの色を反映しない

Unityの不具合です。

Unity 2018.3で修正されています。

Editor: Fixed the editor playmode tint when using UIElements. (1018617)

ノードが重なっている時、下ノードのTextFieldなどによりカーソルが変更されてしまう

Unityの仕様もしくは不具合です。

組み込みスクリプトのフィールドのメモリ使用量を削減してほしい

汎用性や後方互換性のために確保しているケースがほとんどですので、基本的に個別対応は致しません。

機能や互換性を維持したまま対応できる対処法がありましたら、その時は要望フォーラムにて教えていただけると助かります。

また、一般的なゲームにおいて最もメモリを使用するのがテクスチャと言われているので、個々の組み込みスクリプトを見る前にMemoryProfilerなどを使用してメモリ使用量が多い箇所から最適化するのをお勧めします。

お金がないのでバウチャーコードください

Unityを使うためにパソコンはどうやって手に入れましたか?

普段遊ぶためにゲームは買わないのですか?

Arborはパソコンよりもはるかに安く、普段遊ぶゲームと同じくらいの値段で買える便利なアセットです。

バウチャーコードは配りません。買ってください。

値引きセールを行っている時もあります。その時にでも買ってください。

教材等を公開したいのですが許可が必要ですか?

以下に当てはまる場合は個別に許可の取得や契約を行う必要があります。

  • 公式による監修が必要な場合
  • Arbor本体を含む教材の公開や販売
    • 一部のソースコード等であっても、Arbor本体を購入しなければ閲覧できない範囲も該当。
    • 受講者所有のPCへのArborインポートを前提として進行する講義や講習(学校やセミナーにおいて講師が環境構築指示を行う等)も該当。
      •  無料体験版は講義や講習には利用できません。
      • 許可なく講義を行いたい場合
        • 受講者が個別に通常購入
        • ハンズオンセミナーなどの場合、講師所有PCへ台数分のArborを購入し受講者へは流出しないよう注意する必要があります。
        • 講師が一括購入して受講者へ配布する場合はアセットストアEULA違反になりえますので、Unityに問い合わせてください。

上記に該当しない以下のような場合は許可なく公開しても問題ありません。

  • 非公式非公認
    教材に関して、こちらに問い合わせが来ないようにご注意ください。
  • 有償無償問わず
  • ウェブサイト、動画サイト、講演による教材の公開
  • Arbor本体を含まない教材のみの公開や販売
    • Arborの無料体験版で公開されている範囲については許可の必要はありません。

レーティング(年齢制限等)を行う必要のあるコンテンツに使用できますか?

レーティング(年齢制限等)を行う必要のあるコンテンツにArbor 3はご利用いただけます。

ただし、使用した結果、コンテンツの表現内容に対してcaitsithwareは一切責任を負いません。

Arborの読み方は?

カタカナで書くと「アーバー」です。

Unityベータ版で動かない

Unityベータ版およびアルファ版での動作保証はしておりません。

正式リリースバージョンをご利用ください。

また、正式リリースの直後もArbor側はまだ対応作業中である場合もあります。

Unityのバージョンを上げる際はプロジェクトのバックアップを取るなど、注意してください。

動作保証しない理由

  • Unityの仕様が不確定であるため、例えばb1からb2に上がっただけでも変更箇所によってはエラーや動作不良を起こすため。
  • b1とb2でスクリプト上の動作を切り分けるためのバージョンディレクティブ(UNITY_2018_4_OR_NEWERのようなもの)がないため。
  • Unityの不具合によって動作しないのか仕様変更によって動作しないのかの判断がつかなく、下手に対応するとUnity側の不具合修正によってそれ以降のバージョンで動作しなくなる恐れがあるため。

自作したスクリプトを添削やデバッグして欲しい

ユーザーが自作したスクリプトの添削やデバッグは行っておりません。

スクリプトは自由に作成していただいて構いませんが、当方は一切関与せず責任を負いません。

C#コード生成に対応する予定は?

対応予定はありません。

そもそもArbor3は有限ステートマシンとビヘイビアツリーをグラフで組むためのアセットであるため、C#コードの代替としてフローグラフを組む用途は想定外の利用方法です。

サポートについて

  • Arbor3の使用方法に関する質問や要望、不具合報告などはフォーラムにお願いいたします。
    サポートフォーラム
  • 以下のような内容についてはサポートしておりません。
    • UnityやC#、他アセットやユーザー作成アセットなど、Arbor3とは直接関係のない内容。
    • ユーザーのプロジェクト固有の問題。
      (Arbor3を使用するにあたってユーザーのプロジェクト固有の不具合についてのデバッグ依頼や、設計方針に関する相談含む)
    • チャットなどによるリアルタイムサポート。
      (ご質問内容について正確に回答するため調査期間を設け説明用素材の作成なども行っている関係)
  • 現在、ユーザーのプロジェクトへ直接参加する無償サポートは行っておりません。

Arbor3を紹介したい

  • 紹介する場所や有償無償によらず、ご自由に行っていただいて問題ありません。
  • 紹介内容については一切関与いたしません。
    • 現在、配信する動画や講演などへ出演依頼も受け付けておりません。
  • 紹介内容の閲覧者からのサポートは行いません。
    • 「Arbor3公式監修」と誤解されるような表現は避けてください。
    • 紹介内容への問い合わせ先はなるべく明記してください。
  • 教材や講習についての詳細は「教材等を公開したいのですが許可が必要ですか?」も参照してください。

インタビューしたい

  • 問い合わせフォームなどによるメールでのやりとりについてのみお受けしております。
    お問い合わせ
  • 直接会ったりZoomなどでのリモートでのインタビューも現在受け付けておりません。
  • 不特定多数への配信動画への出演などに関しては、上記「Arbor3を紹介したい」も参照してください。

Unity最新版で古いバージョンのArborが正常動作しない

古いバージョンのArborはリリース当時のUnityバージョンにのみ対応しています。

Unityの更新と合わせてArborの更新もご確認ください。

リリースノート

コンポーネントではなくアセットでグラフを作りたい

プレハブをご利用ください。

なぜグラフをコンポーネントに追加する形式にしているかについては「GameObjectの階層構造を直接指定するのを許容するため」です。

具体的な例としては

  • 敵エージェントを作成する際、子に武器オブジェクトを持っている。
  • 武器オブジェクトは別グラフで弾丸の発射状態を管理している。
  • エージェント側グラフでは武器オブジェクト側グラフにトリガーを送って発射制御する。
  • アセット(ScriptableObject)形式の場合、必ず実行時に武器オブジェクトを受け渡す処理が必要になる。
  • プレハブ(コンポーネント)形式の場合は、プレハブに階層構造が含められているので直接指定してしまっても問題ない(武器切り替えが発生するなど、必要な場合にのみ受け渡し処理を組む程度で済む)。

こんな感じです。

また、MonoBehaviourの機能をそのまま使用できるようにする想定で(MonoBehaviourから継承してStateBehaviourなどを作成している関係)もあり、オブジェクトの挙動制御の観点からコンポーネント形式としています。
例えば「コリジョンが当たったら何かする」場合などUnity標準の方法で組める利点があります。

githubなどの公開リポジトリにアップしていいですか?

いいえ。

アセットストアで購入したアセットをそのまま公開する行為ですので、アセットストアのEULA違反になります。
(githubに限らず個人サイトやファイル共有サイトなどでの公開も、親しい友人間での共有なども当然違反です)

悪意ある意図的な公開か否かに関わらず、見つけ次第DMCAによる通報(繰り返し行うようであれば法的処置)を取らせていただきますのでご注意ください。

データ入力スロットに複数接続したい

複数接続できてしまうと、どの接続の値を使用されるかがグラフ上では判別できないため禁止しています。

このように複数接続していると、パラメータAとパラメータBのどちらが使われるかがわからない

一時的にパラメータに格納するなどして、使用する値が確定されているようにしてください。

Currentという名前のFloatパラメータに一時的に格納し遷移されてきたタイミングで使用される値を一つに絞る例