GDScript備忘録というスクラップに細々とまとめているのですが、Tweenに関するコメントの分量が増えてきたので、ちょっとした豆知識一覧として記事としてまとめ直しました。3.x時点でのTweenです。4.0からはTween周りが大幅に刷新され、本記事の内容は比較的すぐに陳腐化するかとは思います。それまでの間、参考になるようでしたら幸いです。Tweenひとつで大体OKひとつのTweenで複数のノード、そして変数を同時に扱うことができます。色、位置、サイズをそれぞれ変更したい場合でも、個別にTweenを用意する必要はありません。tween_completedでシグナルの切り分け複数の補間を同時に実行する際に、補間の完了はどうやって検知するのが良いのでしょうか。tween_completedシグナルでは、どの補間が完了したのかが分からなくなりそうですね。いう場合は、tween_completedシグナルの引数であるNodeとNodePathを条件分岐に使うことでシグナルを切り分けることが可能です。補間が終わった後に実行したい処理をここに書くTransitionTypeのチートシートredditにTransitionTypeごとのアニメーションの違いを図解してアップしている方がいるので、Tweenノードの正確な動きが知りたい場合は、そちらを参考にしてみてください[1][2]。https://www.reddit.com/r/godot/comments/frqzup/godot_tweening_cheat_sheet/トゥイーンアニメーションをインタラクティブに確認できるサイトもあります。こちらはJS/CSSで実装されていて、GodotのTweenとは無関係です。GodotのTransitionTypeそのものを表しているわけではありませんので、なんとなくのイメージを掴む程度のものと理解して使うのが良いでしょう。補間完了後に、コールバックでメソッド呼び出しTweenの補間完了後にメソッドを呼び出すのに、シグナル以外の方法を使いたいこともあると思います[3]。いう場合には、interpolate_callback()を使うと良いです。interpolate_callback()では、任意の秒数後に、指定したメソッドを実行することができます。Completed!」と出力されますコールバックを実行するまでの秒数をハードコーディングしたくない場合、_tween.get_runtime()を使うのが良いです。この関数では、指定したTweenの補間完了までの秒数を取得できます。複数の処理が同時に走っている場合には、一番長い処理の秒数が返ってくるため、注意が必要です。Completed!」と出力されるのは、_tween.start()の2秒後になりますinterpolate_method()のちょっとだけ微妙なところinterpolate_method()関数では、第2引数で指定されたメソッドに、Tweenで補間された値を渡すことができます。文章だけだと伝わりづらいと思うので、interpolate_method()の引数の詳細を以下に記載します。4引数に渡せる値は1つずつです。配列などで複数の値を渡すこともできないため、例えば複数の引数が必要なメソッドを補間させることはできません。arrayで値を渡すようなことはできませんちょっと不便ですね。これはTweenの仕様がガラッと変わった4.0の時点で改善されているそうです[4][5]。画像の二次利用について言及がないので、この記事では直接画像は貼らず、リンクするだけに留めておきます。↩︎ちなみにgithubでソースコードも公開されています。実際にGodot上で動作確認をしたい場合には、そちらもチェックしてみてください。↩︎Tweenを使う箇所が1箇所しかなく、補間完了までの秒数が分かりきっている場合など。個人的には、多少冗長になってもシグナルを使いますが...。↩︎こちらのissueでは「解決された」とされていますが、まだ自分では確認していません。↩︎ツイートSLMNLLインディーゲーム開発者。GDScriptを使ってます。npub1x0xl9wcxx5c4ddkd2lck752uf4guh85flazfg8jgeldh4nn4uc6se8xk7hバッジを贈って著者を応援しようバッジを受け取った著者にはZennから現金やAmazonギフト券が還元されます。約4,000字SLMNLLインディーゲーム開発者。GDScriptを使ってます。概説Tweenひとつで大体OKtween_completedでシグナルの切り分けTransitionTypeのチートシート補間完了後に、コールバックでメソッド呼び出しinterpolate_method()のちょっとだけ微妙なところZennエンジニアのための情報共有コミュニティAboutZennについて運営会社お知らせ・リリースGuides使い方Publicationよくある質問LinksTwitterGitHubメディアキットLegal利用規約プライバシーポリシ。