<aside> 🧩
Preserve animation, equipment, IK, footsteps, and GC2 runtime context when a Character changes model.
Model Change Preservation for Game Creator 2 is a standalone Unity 6+ compatibility module that wraps Game Creator 2's normal model-change lifecycle without modifying official GC2 source.
</aside>
| Item | Details |
|---|---|
| Module version | 1.9.1 |
| Unity target | Unity 6+ |
| Required GC2 dependency | Game Creator 2 Core |
| Optional integrations | Shooter, Melee, Traversal, Inventory, Dialogue, plus other Core-based modules |
| Runtime assembly dependency | GameCreator.Runtime.Core only |
| Editor assembly dependencies | This module Runtime + GameCreator.Runtime.Core • GameCreator.Editor.Core |
| Official GC2 source changes | None |
Game Creator 2 rebuilds a Character's animation PlayableGraph when its model changes. That rebuild can interrupt active State layers and temporary Gestures, invalidate model-bound IK caches, and leave equipment or module-specific references pointing at the previous model instance.
Model Change Preservation captures the relevant runtime state before the swap, lets Game Creator Core perform its normal Character.ChangeModel() flow, then restores animation state and repairs references against the replacement Animator and skeleton.
| Surface | Count | Purpose |
|---|---|---|
| MonoBehaviour component | 1 | Model Change Preservation — central capture, restore, diagnostics, IK and prop repair |
| Visual Scripting Instructions | 1 | Change Model (Seamless) — visual hold + safe replacement reveal around Core's official model change |
| Footstep Detector types | 1 | Model-Safe Footstep Detector — rebinds foot bones after Animator/model replacement |
| Visual Scripting Conditions | 0 | Not required by the current feature set |
| Visual Scripting Properties | 0 | Runtime diagnostics are exposed through the component and C# API |
| Visual Scripting Triggers / Events | 0 | The component exposes C# restore lifecycle events instead |
AnimatorCullingMode.AlwaysAnimate when enabled.Gestures.CrossFade can continue correctly after the old graph is destroyed.Prop.Setup(runtimeItem) socket context when Inventory is installed.