GodotにはPathというノードがあります。これはCurveというものを持ちます。Curveとは、線でできた道筋です。Pathの子にPathFollowというノードを追加することで、そのPathFollowをPath上で走らせることが出来ます。実際にエディタ上にパスを表示したところです。
実際に動かしてみるとこんな感じです。
Pathを使ってみた。面白いな~。電車もちゃんとこれでやろう。 pic.twitter.com/FDZq2fj7c2
— だら🎄サービスづくりひたすら (@dala00) July 20, 2020
2D、3Dともにあると思います。実際のやり方を説明します。
必要になるのは下記です。
それぞれ子になるように配置します。
この時点ではオブジェクトはパス上にありませんが、実行すると追従するため大丈夫です。
次に、実際に走らせる道順であるカーブを作成します。Pathを選択した状態にすると、エディタに下記のような4つのボタンが追加されます。
左から2番めの緑のプラスボタンを使うことで点を配置できます。あとは左から順に点の選択、点の追加、点の削除、曲線を閉じるボタンです。
このように適当に画面上をクリックしていくと配置できます。最後に曲線を閉じるボタンをクリックすると最初と最後がつながってループになります。
ベジェ曲線にも対応しています。
Shiftを押しながら点を動かすと、曲線用のつまみが現れて曲線にすることが出来ます。
実際にパス上を動く様子を見てみましょう。PathFollowノードを選択すると、Offset、Unit Offset というプロパティが存在します。これを変動させてみると実際にエディタ上でパスが動いている様子をプレビューすることが出来ます。
Offsetは実際の長さでの指定、Unit Offsetは0.0~1.0での割合での指定だと思われます。
それぞれそのままのプロパティを使うことでプログラムでも移動させることが出来ます。例えばこんな感じのプログラムをPathFollowノードに追加します。
func _process(delta):
var new_unit_offset := unit_offset + 0.01
if new_unit_offset >= 1.0:
new_unit_offset -= 1.0
unit_offset = new_unit_offset
これで最初のツイートのような動きを作ることが出来ます。
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント