2Dプロジェクト作成手順⑥:VisualScript
前回記事はこちら。
今回は前回作成したGDScriptを一切プログラミングをすることなく、実装していく。
まず、前回作成したGDScriptとRigidBodyの紐づけを解除しよう。
RigidBodyを選択した状態でスクリプトをデタッチするボタンをクリックする。
これで再度スクリプトを作成できるようになった。
再度スクリプトをアタッチする。
次のプログラム設定画面では言語を「VisualScript」にしよう。
そのまま作成をクリック。方眼紙のような画面が開く。
さて、前回作った処理は「最初に200,-200の初速度を与える」というものだった。
「最初に」というのはready関数だった。関数を配置するにはメンバーの中から組み込み関数を選択する。
デフォルトで定義されている関数一覧が出てくるので、readyを選択。
そうすると画面内にready関数が配置される。
次に「200,-200の速度を与える」の部分を作る。
これは一度、RigidBodyのノードを選択する。もし2Dモードに戻ってしまった場合には上のモード選択からスクリプトモードに再度切り替える。
右にRigidBodyの各パラメータが表示されている。その中でVelocity(速度)を画面内にドラック&ドロップする。
そうすると、Set linear_velocityの関数が作成される。
この中のlinear_velocityの値を(200,-200)に変更する。これで「200,-200の速度を与える」の部分の作成は完了である。
あとは_readyの▼からSet linear_velocityの▼までドラック&ドロップで線を繋げば終了。
これで前回作成したGDScriptのVisualScript版は作成完了となる。
実行すると分かると思うが、前回作成したものと同じ結果となる。
このように一切プログラミングを記述することなく、制御を組むことが可能となる。
ではついでにKinematicBodyのほうもVisualScriptで置き換える。
同様にスクリプトをデタッチして解除、再度アタッチで作成した後、今度は組み込み関数からprocessを選択する。
その後、動かす関数を組むわけだがKinematicBodyの動かし方はmove and slideを使用する。
デフォルトの組み込み関数以外を使用する場合は、画面の空白の部分を右クリックすると関数挿入画面を出すことが出来る。
ここでmoveと検索するともmove and slide関数を見つけることが出来る。
ここでVector2パラメータに(100,20)を指定すると、すでに作成したGDScriptと同じ動きになる。
これで今まで作成したGDScriptはすべてVisualScriptに置き換えが出来た。
これでGDScriptとVisualScript両方の手法を紹介したが、それではどちらが良いのか?と聞かれてると自分は基本的にVisualScriptで作成する方法をおすすめする。
理由としてはまず制御の流れが視覚的にわかりやすいこと。次にタイプミスによるバグが減ること。
2D/3Dの世界に限らず、より複雑な制御を組むような状況においては基本的にコード直書きではなくブロック線図による開発の方が良い。
ちなみに最初のアイコンを左右に往復させるために作った下記GDScriptは、、、
VisualScriptにするとこうなる。条件分岐があるものをもともとある関数の組み合わせでやる場合には複雑になることが多い。
後々解説するがVisualScriptではユーザーで作成した任意のブロックも配置することが出来るため、使用頻度が高いわりに複雑になってしまうものについてはブロック化してしまうと便利である。