原カバンは鞄のお店ではありません。

Unityを使ったゲーム制作のあれこれを綴っていきます。

【Unity】ハイパフォーマンスと噂のTweenアセット「MagicTween」を触ってみた

Reddit

海外ではXやらインスタよりもメジャーだと聞いて自作ゲームの宣伝のために導入したものの一切活用できていない情報弱者な皆さんこんにちは。無駄に通知だけは毎日受信しているのですが全てのメッセージが英語の為、全く意味が分かりません。誰か助けて。

 

左手デバイス

以前クラファンで購入予定だったもののプロジェクトが停止となり(返金された)、それ以降購入する予定がなかったのですが、ここ最近の怠惰な自分を反省し、ゲーム開発へのモチベーションを上げる為に購入してみました。

 

ack05 ショートカットリモート ワイヤレス接続 or 有線接続両方対応の左手デバイス | XPPen公式ストア

キーボードのショートカットを割り当てたり、一連の操作をマクロ的に実行する事ができるアイテムです。本来はタブレットで絵を描くような方が使用する為のデバイスなんですがUnityでもキーのショートカット割り当てやSceneビューでの拡大縮小の操作を行う事ができます。

これまではTransformのGlobal/Localの切替や、Gameビュー/Sceneビューの切替、空オブジェクトの生成などの操作はゲーム制作内で頻度が高く地味に面倒だったのですが、それらをこのデバイスのキーに割り当てることで作業効率が少し上がった気がします。

「ショートカットなんて覚えれば良いだろう」と言われたらそれまでなんですが、このデバイスなら1グループで10個ほどの操作が割り当てられ、グループを切り替えれば4グループ×10キー程の操作を扱えるので、私のような忘れっぽい方には非常に便利です。

また「どのキーにどの操作を登録したか忘れる」というような方でも、キー用のシールが付属しているのでそれなりに目印になります。
まぁ、Unityを扱う上では必須ではないのですが、有ればそれなりに有用なツールになると思います。

 

MagicTween

これまでTween系のアセットと言えばDOTween一択で使用していたのですが、調べてみると新しいTween系のアセットがソコソコ出回っているようで、その中でも「MagicTween」というアセットはECS(Entity Component System)を使用したTween系アセットらしく、かなりパフォーマンスに優れているらしい。公開されているパフォーマンスの比較を見ても圧倒で気に優れているので導入を検討することにしました。

パフォーマンス比較

このアセットはアセットストアで売られているアセットではなく、有志の方によって作成され、Gitで公開されているアセットです。

その為、導入にはアセットストア経由ではなくGitURLを利用するため、事前にGitをPCにインストールしておきます。

gitforwindows.org

また、ECSを利用するためUnityのPackageManagerから「Entities」を導入しておく必要があります


ちなみにUnityのバージョンはUnity 2022.1以上である事が必須です。

Gitをインストールし、Entitiesを導入したことを確認したらPackageManagerの「Git URL からパッケージを追加」から以下のURLを指定してインストールを行います。

https://github.com/AnnulusGames/MagicTween.git?path=/MagicTween/Assets/MagicTween

 

使い方

作者の方のHPにて詳しく解説されているのでそちらを参考にするのが一番正確なんですが、ザックリ解説するとDOTweenと殆ど同じような 記述形式で使う事ができます

annulusgames.com

例えば移動系のメソッドの場合、DOTweenと同じくtranformの拡張メソッドして使用する事が出来る為

transform.TweenPosition(終了位置, 動作時間);

の記述となり、EasingやRelativeなどのオプション指定はSetterから設定することができます。

transform.TweenPosition(終了位置, 動作時間)
          .SetRelative(true)
          .SetEase(Ease.Liner);

コールバックの指定もDOTweenと殆ど同じです。

transform.TweenPosition(終了位置, 動作時間)
          .SetRelative(true)
          .SetEase(Ease.Liner)
          .OnComplete(コールバック関数);

 

しかし残念ながらPath移動に関して経由地毎のコールバック(OnWaypointChange)は無いようです。
これに関してはPath移動専用のコールバックという事もあり、優先度的に低いと判断されたのかもしれません。

この他にも複数のTweenを登録できるSequenceもDOTweenと同様に使う事ができ、DOTweenではPro版のみの機能であったTextMeshに対するTweenのメソッドも用意されています
各種メソッドやオプションの細かい説明、利用法に関しては有難い事にReadMeも(日本語で)用意されているので、そちらを参考すれば困ることはないと思います。

github.com

注意点

このようにUnity 2022.1以上のバージョンを使っていてEntitiesパッケージの導入に差し障りがなければ、DOTweenからMagicTweenへの移行はパフォーマンス面の利点を考えれば十分検討する価値があると思います。
しかしながら、DOTweenとの挙動の違いは多少存在するようで、前述のOnWaypointChangeコールバックがない事に加えて、任意の値を変更するToメソッドにおいてはOnUpdateのコールバックのみで値を参照すると、Tweenが完了しても目的の値までには達しない、という事が分かりました。

Toメソッドで0から10まで変更→OnUpdateコールバックで参照した場合

 

OnCompleteコールバックでも加えて参照するようにすれば目的の値まで到達することは確認できたので、この辺に関してはDOTweenからそのまま移行する、というわけには行かないようです。

OnUpdateとOnCompleteで参照した場合

 

他にもPath移動のPathの指定によってはDOTweenのPath移動とは少し違う挙動が見受けられたので、DOTweenから完全に移行する前には一度挙動を確認することをお勧めします。

何よりこのアセットは有料のアセットではなく、有志の方によって公開されているアセットです。
作者の方に対して際限ない動作保証や継続的な更新を期待することはお門違いだと思うので、その点を踏まえた上で自己責任で使用される事を願います。

 

宣伝

数学的迷宮脱出ゲーム「W.T.」早期アクセス版リリース中です。

store.steampowered.com

色々と難局に遭遇して牛歩の進みなんですが、製品版リリースに向けて頑張っているので、何卒応援の程、よろしくお願いいたします。

◇プライバシーポリシー

●個人情報の利用目的

当ブログでは、メールでのお問い合わせ、メールマガジンへの登録などの際に、名前(ハンドルネーム)、メールアドレス等の個人情報をご登録いただく場合がございます。

これらの個人情報は質問に対する回答や必要な情報を電子メールなどをでご連絡する場合に利用させていただくものであり、個人情報をご提供いただく際の目的以外では利用いたしません。

●個人情報の第三者への開示

当サイトでは、個人情報は適切に管理し、以下に該当する場合を除いて第三者に開示することはありません。

・本人のご了解がある場合
・法令等への協力のため、開示が必要となる場合

個人情報の開示、訂正、追加、削除、利用停止
ご本人からの個人データの開示、訂正、追加、削除、利用停止のご希望の場合には、ご本人であることを確認させていただいた上、速やかに対応させていただきます。

アクセス解析ツールについて

当サイトでは、Googleによるアクセス解析ツール「Googleアナリティクス」を利用しています。

このGoogleアナリティクスはトラフィックデータの収集のためにCookieを使用しています。このトラフィックデータは匿名で収集されており、個人を特定するものではありません。
この機能はCookieを無効にすることで収集を拒否することが出来ますので、お使いのブラウザの設定をご確認ください。

●免責事項

当サイトからリンクやバナーなどによって他のサイトに移動された場合、移動先サイトで提供される情報、サービス等について一切の責任を負いません。

当サイトのコンテンツ・情報につきまして、可能な限り正確な情報を掲載するよう努めておりますが、誤情報が入り込んだり、情報が古くなっていることもございます。

当サイトに掲載された内容によって生じた損害等の一切の責任を負いかねますのでご了承ください。

●プライバシーポリシーの変更について

当サイトは、個人情報に関して適用される日本の法令を遵守するとともに、本ポリシーの内容を適宜見直しその改善に努めます。

修正された最新のプライバシーポリシーは常に本ページにて開示されます。