前回まで
ビジュアルスクリプティングの使い方を見てきました
今回は、このビジュアルスクリプティングを使う利点と欠点を見ていきます。
コンテンツ
利点
ビジュアルスクリプティングを利用する利点は
- Animationを作る感覚で書けるのでプログラムを覚えていなくてもプログラムを書くことができる
- AIなど、プログラムとはあまり関係ない挙動を書きたい場合はビジュアルスクリプティングに分がある
- そしてノードの繋ぎ合わせなので挙動の順序の入れ替えが非常に楽
- 中身はAsset形式(ScriptableObject)なのでAssetBundleの更新でROMの更新なく挙動の更新が可能になるかしれない
上記のように様々な利点がありますが、
まとめると変更が非常に楽という点につきますね
欠点
利点があるということは欠点あるということですので今度は欠点を上げてい行きたいと思います
- Animationを作る感覚で書けるので、設計を誤るとプログラムで書く以上にグラフが肥大化しがち
- 通信回り(ゲームとは関係のないシステム回り)などの待機処理を必要とする処理が非常に書きづらい
- AssetStoreなどに上がっているソースコードを使うのが困難になる(場合によっては使用できない)
- 中身はAsset形式(ScriptableObject)なのでデータが破損すると復旧が非常に困難
など問題点としてまとめると、システム回りや管理の仕方に関して欠点を持っている印象を受けますね
まとめ
まとめると
ビジュアルスクリプティング(BOLT)を利用する場合
- AIを書く場合に非常に適している
- AssetBundleの更新でROMの更新なく挙動の更新が可能かも
- ビジュアルスクリプティングだけでプログラムを書こうとするとグラフが肥大化して一気に見づらくなる
- システム回りの処理が苦手
という上記4点を気にした場合に最大の効果が発揮できそうですので最大の活用方法としてまとめると以下のようになります
プログラムと併用する
AIもプログラムと併用する
これもシンプルにAIの基礎部分(例:点Xに移動など)を
プログラムであらかじめ書いておきプログラムの内容をテンプレートにしておいて
グラフ内はシンプルにまとめておくことで可読性を上げることができます。
もちろんサブクラスも活用してもこちらはそれでも良いかもしれません
ラッパークラスを用意する
AssetStoreのソースコードを使用する場合、呼び出すことができず使用できない場合もあるかもしれません
その場合、呼び出し用にラッパークラスも用意しておくで使うことができるうえ、万が一使用をやめる場合はラッパークラスの記述を書き換えることでグラフの全チェックを行わずに変えることができるのでAssetStoreのソースコードを使用する場合はラッパクラスを経由して使用しましょう
最後に、管理回りですが…
これはビジュアルスクリプティングを使用しなくても発生する問題ですので
使用の有無関係なく設計はしっかりしておきましょう
シンプルにシステムやAIの基礎部分(例:点Xに移動など)回りをプログラムで書くことで
ビジュアルスクリプティングにそれを呼んでもらうようにすると有利不利を分けられて
効率よく開発を行うことができます