Unreal のブループリントですが、MacについてくるQuartz Composerみたいな感じなのかなと思ったら結構違う。
Quartzの方は、ノード間をつなぐ線はデータの流れを意味していて、計算は一瞬で行われて結果に反映される。
しかし、Unrealの場合は、データの流れの線の他に、制御の流れの線もあって、これらは独立している。
で、線で繋がれた制御の流れの中に位置する各ノードに繋がれたデータの流れは、「その制御が自分のところへ来た時」に評価される。
データの流れと制御の流れという2つの違いを意識しないといけないのはUIとしてわかりづらくね?
と思ったんだけど、これはこれでよく考えられている。というかノードベースUIで逐次処理を表現するにはこういう表現の仕方しかなかったんだろうな、と思う。
制御フローの流れの位置が違うノードに、同じ変数ノードがつながっていても、それらの値は、当然違う。評価される段階がそれぞれ違うから。
これが最初ちょっとわかりづらくて、混乱した。
でも、Quartz的にシンプルにデータの流れと制御の流れを同じ線で一緒くたに表現しようとすると、変数ノードとかの場合、自分の出力がまわりまわって自分の入力につながってそれが以下略カオスって感じになってしまう。
だから、Unrealのブループリントのノードの表現形は、それが最高の形かどうかはともかく、実用性を重視して上手く割りきった設計になってるんじゃないかと思いました。
私の例のRPG制作ツールにおけるビジュアルプログラミング環境では、データの流れと制御の流れを一緒くたに考えていたのだけど、ブループリントを見て再考させられましたね。まんま設計思想をパクるつもりは毛頭ないけど、やはりかなり参考になります。
Unreal Engine 4のブループリント
コメントはまだありません。