mcpField
U
unity-dotween-design

unity-dotween-design

github.com/besty0728開発1.9k72 回インストール1 日前に更新
リポジトリ

unity-dotween-design について

unity-dotween-designは、DOTween 1.3.015のソースに基づき、DOTweenコードの作成とレビューを支援するリファレンスです。ルールにはソース位置が示され、ツイーンのライフサイクル、シーケンス、ショートカット、安全性、連携を扱います。

主な機能

  1. 01ソース位置を示すDOTween設計ルール
  2. 02ツイーンのライフサイクルとシーケンスの解説
  3. 03ショートカットとイージングのリファレンス
  4. 04セーフモードとライフサイクルの指針
  5. 05詳細な設計資料への案内

活用シーン

  1. 01DOTweenの初期化と設定コードのレビュー
  2. 02シーケンス構成とツイーンのライフサイクル確認
  3. 03セーフモードや対象の寿命に関する問題の調査
  4. 04ショートカットやイージングの動作確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/besty0728/unity-skills --skill unity-dotween-design

インストール後、Claude Code で/unity-dotween-designを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

BASICS.md
EASE.md
INTEGRATION.md
LIFETIME.md
PITFALLS.md
SEQUENCE.md
SHORTCUTS.md
TWEEN.md

詳細

このモジュールのスキルを呼び出す前に: 名前や説明から推測したパラメーターを指定してスキルを呼び出そうとしている場合は、いったん停止し、まずこのファイルを読むか、GET /skills/recommend?includeSchema=true でスキーマを取得してください。recommend/スキーマからパラメーターの定義をすでに得ている場合は、そのまま dryRun に進めます。

トリガー

  • DOTween コードの作成またはレビュー
  • シーケンスの構築
  • トゥイーンのライフタイムのバインド
  • トゥイーンに関する落とし穴のデバッグ
  • DOTween コードの作成またはレビュー、シーケンスアニメーションの構築、トゥイーンのライフタイムのバインド、トゥイーンに関する落とし穴の調査

DOTween - 設計ルール

アドバイザリーモジュールです。各ルールは、以下にある Demigiant DOTween のソースをもとにまとめています。

  • 1.3.015 — _DOTween.Assembly/DOTween/ および bin/Modules/ のモジュールファイルに同梱(Unity 2018 以降)

各ルールには具体的なファイル名と行番号が記載されているため、根拠を検証でき、AI が古い記憶に基づいて即興で回答することを防げます。

モード:ドキュメントのみ — 制限対象となる REST スキルはありません。どの操作モード(Approval / Auto / Bypass)でも自由に読み込めます。

このモジュールを読み込むタイミング

次のいずれかを作成またはレビューする前に読み込んでください。

  • DOTween.Init(...) による初期化、DOTweenSettings の設定、SetTweensCapacity の調整
  • .DOMove / .DORotate / .DOScale / .DOColor / .DOFade / .DOShake* / .DOPath / .DOPunch* のショートカット呼び出し
  • DOTween.Sequence() と .Append / .Join / .Insert / .Prepend / .AppendInterval / .PrependInterval / .AppendCallback
  • .SetEase / .SetDelay / .SetLoops / .SetAutoKill / .SetLink / .SetId / .SetTarget / .SetUpdate / .SetRelative / .SetRecyclable / .SetSpeedBased
  • .OnStart / .OnUpdate / .OnStepComplete / .OnComplete / .OnKill / .OnPlay / .OnPause / .OnRewind
  • .AsyncWaitForCompletion / .AsyncWaitForKill / .AsyncWaitForRewind / .AsyncWaitForElapsedLoops / .AsyncWaitForPosition
  • tween.ToUniTask(TweenCancelBehaviour, CancellationToken)(UniTask ブリッジ)
  • DOTween.Kill(target, complete) / DOTween.KillAll() による一括操作
  • セーフモードのデバッグ — useSafeMode、safeModeLogBehaviour、nestedTweenFailureBehaviour
  • DOTween モジュールの生成(Audio / Physics / Physics2D / Sprite / UI / UnityUI / TextMeshPro)

重要なルールのまとめ

#ルールソースアンカー
1DOTween.Init(recycleAllByDefault, useSafeMode, logBehaviour) は、チェーン可能な .SetCapacity(...) のために IDOTweenInit を返します。明示的に呼び出さない場合、最初のトゥイーン作成時に自動初期化が実行されます(DOTween.cs:236 の AutoInit)。DOTween.Version = "1.3.015" は const として公開されています。DOTween.cs:38,227,236,243
2すべてのトゥイーンは、DontDestroyOnLoad が設定された単一の [DOTween] GameObject MonoBehaviour(DOTweenComponent)によって制御されます。これは初回の初期化時に作成され、シーンの読み込み後も維持されます。これを破棄しないでください。サポートされている唯一の終了処理は DOTween.Clear(destroy: true) です。DOTweenComponent.cs:268-270, DOTween.cs:311
3デフォルトでは autoKill = true:トゥイーンは完了時に Kill されます。Kill 後の .Restart() / .Kill() / .Complete() などの呼び出しは、Safe Mode では何も行わず、Safe Mode がオフの場合は NullReferenceException を発生させます。リプレイできるようトゥイーンを保持するには .SetAutoKill(false) を使用してください。DOTween.cs useSafeMode:49, TweenSettingsExtensions.cs:39,49
4Safe Mode はデフォルトで ON(useSafeMode = true)です。トゥイーンの再生中にターゲットが破棄されると、Safe Mode が例外を捕捉し、safeModeLogBehaviour に応じてログを出力します(デフォルト:Warning)。開発中に参照先の欠落によるバグを特定するには、Safe Mode を無効にしてください。DOTween.cs:49,51
5SetLink(gameObject, LinkBehaviour) は、トゥイーンのライフサイクルを GameObject に紐付けます。デフォルトは LinkBehaviour.KillOnDestroy です。SetLink を設定しない場合、ターゲットが破棄された後もトゥイーンは実行され続け、保護は Safe Mode に依存します。TweenSettingsExtensions.cs:91,103, LinkBehaviour.cs
6DOTween.Kill(target) / DOTween.KillAll(target) でグループ化するには、SetTarget(object target) が必要です。ショートカット拡張(.DOMove、.DOFade など)は自動的にターゲットを設定しますが、手動で呼び出す DOTween.To(...) は設定しません。TweenSettingsExtensions.cs:116, DOTween.cs:884,892
7Sequence.Append(t) は直前のトゥイーンの後に実行します。Sequence.Join(t) は直前のトゥイーンと並行して実行します。Sequence.Insert(float atPosition, t) は絶対時間に挿入します。Sequence.Prepend(t) は先頭に追加し、既存のトゥイーンを後ろにずらします。TweenSettingsExtensions.cs:499,508,517,528
8AsyncWaitForCompletion / AsyncWaitForKill / AsyncWaitForRewind は DOTweenModuleUnityVersion.cs(MODULE ファイル。`UNITY_2018_1_OR_NEWER && (NET_4_6
9UniTask ブリッジの tween.ToUniTask(TweenCancelBehaviour, CancellationToken) は、UniTask の External/DOTween/ 拡張機能にあり、AsyncWaitForCompletion より推奨される await の方法です。TweenCancelBehaviour には 9 つの値があります(Kill / Complete / CancelAwait / KillAndCancelAwait / ...)。UniTask DOTweenAsyncExtensions.cs:14-27,54
10Ease enum には38 個のエントリーがあります(ユーザー向け 36 個 + 予約済みの INTERNAL_* 2 個):Unset / Linear + Sine/Quad/Cubic/Quart/Quint/Expo/Circ/Elastic/Back/Bounce の In/Out/InOut バリアント(数学的イージング 10 × 3 = 30 個)+ Flash / InFlash / OutFlash / InOutFlash。INTERNAL_Zero と INTERNAL_Custom は、再生時間がゼロのトゥイーンおよび AnimationCurve ベースのトゥイーンに対して DOTween が自動的に割り当てます。Ease.cs:9-53

サブドキュメントへのルーティング

サブドキュメント読むタイミング
BASICS.mdDOTween.Init、ドライバー GameObject、DOTweenSettings アセット、モジュールのアーキテクチャ、セーフモード、トゥイーンの容量
TWEEN.mdTween 基底クラス、Tweener と Sequence の違い、autoKill、Play/Pause/Rewind/Restart/Kill/Complete/Goto のライフサイクル
SEQUENCE.mdSequence.Append / Join / Insert / Prepend / AppendInterval / PrependInterval / AppendCallback / InsertCallback、ネスト、ループの構成
SHORTCUTS.md対象の型別 .DOMove / DOLocalMove / DOAnchorPos / DORotate / DOScale / DOColor / DOFade / DOPath / DOJump / DOPunch / DOShake* チートシート
EASE.mdEase 列挙型の全項目、SetEase のオーバーロード(Ease/振幅+周期/AnimationCurve/EaseFunction)、Flash ファミリー、Elastic/Back のオーバーシュート
LIFETIME.mdSetAutoKill / SetLink / SetRecyclable / SetId / SetTarget / DOTween.Kill / DOTween.KillAll、セーフモード、トゥイーンプールの容量
INTEGRATION.mdDOTween + UniTask(ToUniTask)、DOTween + Coroutine(WaitForCompletion)、DOTween + Addressables のライフタイム、DOTween + Netcode の決定論的リプレイ
PITFALLS.md30 件の具体的な幻覚/実行時の落とし穴(対象の欠落、古いトゥイーンハンドル、無限ループで OnComplete が呼び出されない、セーフモードがバグを隠すなど)

他のモジュールへのルーティング

  • 非同期インテグレーション(ToUniTask、AsyncWaitForCompletion)→ unitask-design と async を読み込みます
  • UI アニメーション(uGUI / UIToolkit)で DOTween とネイティブアニメーターのどちらを選ぶか → inspector を読み込みます
  • トゥイーンを多用するシーンのアーキテクチャ/パフォーマンスレビュー → performance を読み込みます
  • DOTween 利用者向けの Asmdef レイアウト(DOTween.asmdef、DOTween Modules asmdef)→ asmdef を読み込みます
  • Addressables で読み込んだプレハブのトゥイーンのライフタイム(バンドルのアンロードとトゥイーンの実行)→ addressables-design を読み込みます

バージョンの範囲

DOTween 1.3.015(_DOTween.Assembly/ にバンドルされている Pro/Free ソース)を対象とします。バージョンは DOTween.cs:38 の const DOTween.Version = "1.3.015" で公開されています。

以前の 1.2.x バージョンは、ほとんどの API とソース互換性があります。主な違いは次のとおりです。

  • モジュールシステム(UI / TMP / Physics など)には、1.2.0 以降のソースと Utility Panel スキャナーが必要です。
  • SetLink は 1.2.x 系で追加されました。LinkBehaviour.KillOnDestroy と KillOnDisable の各バリアントは、後期の 1.2/1.3 で追加されました。
  • TweenCancelBehaviour(UniTask ブリッジ)は、UniTask パッケージ経由で別途提供されました。

判断に迷った場合は、記憶ではなく、引用されているソースを読んでください。

コメント