unity-dotween-design について
unity-dotween-designは、DOTween 1.3.015のソースに基づき、DOTweenコードの作成とレビューを支援するリファレンスです。ルールにはソース位置が示され、ツイーンのライフサイクル、シーケンス、ショートカット、安全性、連携を扱います。
主な機能
- 01ソース位置を示すDOTween設計ルール
- 02ツイーンのライフサイクルとシーケンスの解説
- 03ショートカットとイージングのリファレンス
- 04セーフモードとライフサイクルの指針
- 05詳細な設計資料への案内
活用シーン
- 01DOTweenの初期化と設定コードのレビュー
- 02シーケンス構成とツイーンのライフサイクル確認
- 03セーフモードや対象の寿命に関する問題の調査
- 04ショートカットやイージングの動作確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ besty0728/ unity-skills --skill unity-dotween-designインストール後、Claude Code で/unity-dotween-designを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
BASICS.mdEASE.mdINTEGRATION.mdLIFETIME.mdPITFALLS.mdSEQUENCE.mdSHORTCUTS.mdTWEEN.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 / .AsyncWaitForPositiontween.ToUniTask(TweenCancelBehaviour, CancellationToken)(UniTask ブリッジ)DOTween.Kill(target, complete)/DOTween.KillAll()による一括操作- セーフモードのデバッグ —
useSafeMode、safeModeLogBehaviour、nestedTweenFailureBehaviour - DOTween モジュールの生成(Audio / Physics / Physics2D / Sprite / UI / UnityUI / TextMeshPro)
重要なルールのまとめ
| # | ルール | ソースアンカー |
|---|---|---|
| 1 | DOTween.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 |
| 4 | Safe Mode はデフォルトで ON(useSafeMode = true)です。トゥイーンの再生中にターゲットが破棄されると、Safe Mode が例外を捕捉し、safeModeLogBehaviour に応じてログを出力します(デフォルト:Warning)。開発中に参照先の欠落によるバグを特定するには、Safe Mode を無効にしてください。 | DOTween.cs:49,51 |
| 5 | SetLink(gameObject, LinkBehaviour) は、トゥイーンのライフサイクルを GameObject に紐付けます。デフォルトは LinkBehaviour.KillOnDestroy です。SetLink を設定しない場合、ターゲットが破棄された後もトゥイーンは実行され続け、保護は Safe Mode に依存します。 | TweenSettingsExtensions.cs:91,103, LinkBehaviour.cs |
| 6 | DOTween.Kill(target) / DOTween.KillAll(target) でグループ化するには、SetTarget(object target) が必要です。ショートカット拡張(.DOMove、.DOFade など)は自動的にターゲットを設定しますが、手動で呼び出す DOTween.To(...) は設定しません。 | TweenSettingsExtensions.cs:116, DOTween.cs:884,892 |
| 7 | Sequence.Append(t) は直前のトゥイーンの後に実行します。Sequence.Join(t) は直前のトゥイーンと並行して実行します。Sequence.Insert(float atPosition, t) は絶対時間に挿入します。Sequence.Prepend(t) は先頭に追加し、既存のトゥイーンを後ろにずらします。 | TweenSettingsExtensions.cs:499,508,517,528 |
| 8 | AsyncWaitForCompletion / AsyncWaitForKill / AsyncWaitForRewind は DOTweenModuleUnityVersion.cs(MODULE ファイル。`UNITY_2018_1_OR_NEWER && (NET_4_6 | |
| 9 | UniTask ブリッジの tween.ToUniTask(TweenCancelBehaviour, CancellationToken) は、UniTask の External/DOTween/ 拡張機能にあり、AsyncWaitForCompletion より推奨される await の方法です。TweenCancelBehaviour には 9 つの値があります(Kill / Complete / CancelAwait / KillAndCancelAwait / ...)。 | UniTask DOTweenAsyncExtensions.cs:14-27,54 |
| 10 | Ease 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.md | DOTween.Init、ドライバー GameObject、DOTweenSettings アセット、モジュールのアーキテクチャ、セーフモード、トゥイーンの容量 |
| TWEEN.md | Tween 基底クラス、Tweener と Sequence の違い、autoKill、Play/Pause/Rewind/Restart/Kill/Complete/Goto のライフサイクル |
| SEQUENCE.md | Sequence.Append / Join / Insert / Prepend / AppendInterval / PrependInterval / AppendCallback / InsertCallback、ネスト、ループの構成 |
| SHORTCUTS.md | 対象の型別 .DOMove / DOLocalMove / DOAnchorPos / DORotate / DOScale / DOColor / DOFade / DOPath / DOJump / DOPunch / DOShake* チートシート |
| EASE.md | Ease 列挙型の全項目、SetEase のオーバーロード(Ease/振幅+周期/AnimationCurve/EaseFunction)、Flash ファミリー、Elastic/Back のオーバーシュート |
| LIFETIME.md | SetAutoKill / SetLink / SetRecyclable / SetId / SetTarget / DOTween.Kill / DOTween.KillAll、セーフモード、トゥイーンプールの容量 |
| INTEGRATION.md | DOTween + UniTask(ToUniTask)、DOTween + Coroutine(WaitForCompletion)、DOTween + Addressables のライフタイム、DOTween + Netcode の決定論的リプレイ |
| PITFALLS.md | 30 件の具体的な幻覚/実行時の落とし穴(対象の欠落、古いトゥイーンハンドル、無限ループで 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 パッケージ経由で別途提供されました。
判断に迷った場合は、記憶ではなく、引用されているソースを読んでください。