【Unity Visual Scripting】UVSでのDOTweenの設定から使い方、便利なサブグラフまで紹介

2022/01/26に公開

Unity Visual Scripting(以下UVS)でDOTweenを使うぞ

DOTweenってみんな使っているとは思いますが、UVS導入の解説記事とかが意外と無かったので残します!

Unity 2021.2.8f1

設定

既にDOTweenがプロジェクトに追加されているとします。

まず最初にPreference/Visual ScriptingsのAOT SafeModeをオフにします。
でないと後ほどクラスが追加できないことがあります。

次にProject Settings/Visual Scripting内に移ります。
UVSで追加のクラスやメソッドを使用するには、新たにノードユニットを生成する必要があります。
その設定についてはNode LibraryとType Optionsの2箇所より行います。

まず初めにNode Libraryを開き、DOTweenとDOTweenEditorを追加します。

次にTypeOptionを開き、使いたいDOTweenのクラスを追加していきます。
基本以下のクラスを設定すれば、おおよそのケースで問題ないでしょう。

使わないクラスなどがあれば省くこともできます。
各クラスの中身は以下のような感じです。

  • 必須
    DOTween
    DOTweenのメインクラスです。
    Tweener
    動きの設定そのものです。
    ShorcutExtensions
    DOMove、DORotate、DOPunchなどが入っています。

  • オススメ
    Sequence
    Sequenceそのものなので、Sequence使うなら必須です。
    Tween
    TweenerとSequenceの抽象クラスでこれ使えば両方まとめて動かせます。
    TweenSettingExtensions
    Tweenの拡張クラスです。
    SequenceのAppendなどが入っているので、Sequence使うなら必須です。

  • オプション
    TweenExtensions
    Tweenの拡張クラスです。
    TweenからDurationを取り出せるTween.DurationとかFlipとか入ってます。
    TweenParams
    複数のTweenに対して共通のパラメータを使いたい時用のデータ保持クラス
    Tween.SetAsで使えます。
    DOVirtual
    DOVirtualクラスです。後ほど紹介するFloatのサブグラフを使う場合は必要です。
    DOTWeenModuleUI
    UI関係のDOColor、DOFadeなどが入っています。

どれに何が入っているかの詳細は下記のDOTweenのドキュメントで参照できます。
http://dotween.demigiant.com/api/annotated.html

全て設定できたらGenerateをクリックします。
するとDOTweenのノードユニットが生成され、UVSでDOTweenのメソッドが使用できるようになります。

基本的な使い方

使いたいユニットを繋げるだけです。

EasingやDelayなどのオプションを使いたい場合は、Setユニットがあるので、Tweenerクラスを出して繋げていきます。

このオプション系を個別にいちいち繋げるのは面倒くさいので、ひとつにまとめたサブグラフを作っちゃうと便利です。

Sequenceの使い方

Sequenceを使いたい場合は以下のような形になります。

最初にDOTween.SequenceでSequenceを定義したあと、AppendやJoinでSequence全体を作り、そこに個別にTweenをぶら下げる感じですね。

上記のTweenOptionsをそのまま繋げても機能します。

Tweenのコールバックを受けたい

DOTweenでTweenのコールバックなどはラムダ式で書く必要があるのですが、UVSではラムダ式は対応していません(してたらすみません)
なのでそれっぽいサブグラフを作ります。
自分はTimerユニットを使って無理くりやってます。

Timerを通るとFlowが変わっちゃうので、Flow VariablesやCacheが跨いで使えないのが玉に瑕です。

FloatをTweenさせたい

同じ理由でDOVirtualやDOTween.Toも使えないので、FloatをTweenさせたい場合もTimerユニットで無理やり動かしちゃいます。

まとめ

DOTweenめちゃくちゃ便利ですが、UVSではコールバックを素直に使えないのがちょっと辛いところです。
上記の例で出したサブグラフは以下でDLできます。
Tween、TweenSettingExtensions、TweenExtensions、DOVirtualの設定が必要になります。
https://github.com/jokaab/TweenOptionGraphs/raw/main/TweenOptionGraphs.unitypackage

Discussion