Terra Studio Wiki
  • Home
  • Scripting in Terra Studio Pro
    • Scripting Basics
    • Key Differences - T# versus C#
      • Syntax Differences - T# v/s C#
      • Multiplayer Support Differences
      • Restrictions on Unity APIs
      • Restrictions on Collections & Types
      • Restrictions on Input, UI, Async
      • Miscellaneous Restrictions
    • Creating & Using Scripts
    • πŸ“˜ Terra Studio Runtime Classes
    • 🎨 Terra Studio UI Systems Overview
    • Animation Support
    • 🎧 Audio & SFX Support in Terra Studio
    • πŸ”₯ VFX Support in Terra Studio
    • πŸ“Š Game Analytics & FTUE Tracking in Terra Studio
    • 🌐 Multiplayer in Terra Studio
Powered by GitBook
On this page
  • πŸ”„ What Animation Systems Are Supported?
  • πŸ”Ή Key Features Available in Terra Studio
  • βœ… Animator Controller
  • βœ… Blend Trees
  • βœ… Humanoid Rig Retargeting
  • βœ… Imported Animation Clips
  • βœ… Animation Window
  • βœ… State Machines
  • βœ… Scriptable Animation Control
  • βœ… Root Motion Support
  • βœ… Rotation Interpolation
  • βœ… Animation Layers & Masks
  • 🧩 Animation Events β€” Scripting Support in T#
  • πŸͺ‘ Usage Recommendations
  • πŸ“Œ Reminder
  1. Scripting in Terra Studio Pro

Animation Support

Terra Studio Pro provides complete support for Unity's animation system, including its most advanced runtime features. All built-in Unity animation functionalities are available without modification, empowering developers to integrate high-quality character and object animations using familiar tools and workflows. The only restrictions that apply are those defined by the T# scripting language.


πŸ”„ What Animation Systems Are Supported?

Terra Studio supports Unity's Mecanim animation system, which includes:

  • The Animator component

  • Animation Clips (imported or created within Unity)

  • Animator Controllers

  • State Machines

  • Blend Trees

  • Avatars for humanoid rig retargeting

  • Animation Events

  • Animation Layers and Masks

  • Root Motion

  • Animation Curves

  • Preview and Record Modes

Additionally, the Legacy Animation system is also supported for simpler use cases such as UI animations or lightweight scripted motion.


πŸ”Ή Key Features Available in Terra Studio

βœ… Animator Controller

Organize animation clips into a state machine. Define transitions and parameters that control when and how animations play.

βœ… Blend Trees

Blend between multiple animations based on input parameters. Ideal for walking/running/sprinting, directional movement, or character gestures.

βœ… Humanoid Rig Retargeting

Use the Avatar system to retarget animations between different humanoid characters. Enables reuse of motion capture and third-party animation assets.

βœ… Imported Animation Clips

Import animations from external tools such as:

  • Autodesk Maya, 3ds Max

  • Blender

  • FBX and .anim files

Animations can be created from scratch or sliced from existing files.

βœ… Animation Window

Use the built-in Animation window to:

  • Record or preview keyframes

  • Animate properties like transform, materials, colors, script variables

  • Create new clips and edit them directly in the timeline

βœ… State Machines

Design animation logic visually:

  • Define states for idle, walk, run, jump, etc.

  • Add transitions with conditions (e.g., speed > 0.5)

  • Organize complex logic using sub-state machines

βœ… Scriptable Animation Control

Control animations using C# or T# via APIs:

  • Set parameters

  • Trigger transitions

  • Play/stop clips

  • Evaluate normalized time, blending, etc.

βœ… Root Motion Support

Optionally drive GameObject movement directly from animation motion curves.

βœ… Rotation Interpolation

Use Euler, Quaternion, or Quaternion Euler (baked) interpolation for smooth transitions.

βœ… Animation Layers & Masks

Separate upper/lower body animations or isolate limb movement using layer masks.


🧩 Animation Events β€” Scripting Support in T#

In addition to Unity's animation timeline features, Terra Studio Pro supports runtime animation event handling via a T#-safe scripting method. Developers can respond to animation-triggered events using an override function. This pattern is allowed and fully supported in T#:

public override void OnAnimationEvent(string eventName)
{
    if (eventName.Equals("ShootPoint"))
    {
        // Do something when this animation event is triggered
    }
}

Define the animation event within the Unity Animation window and enter "ShootPoint" (or any string identifier) as the event name. Then respond to that name in your T# script using the override shown above.

This method enables developers to tie animation frames directly to gameplay logic (e.g., triggering effects, spawning projectiles, syncing audio) without relying on Unity’s delegate-based event system β€” which is unsupported in T#.

OnAnimationEvent(string eventName) is the only valid way to receive animation events in T# scripts. Custom UnityEvents, delegates, or AnimationEvent.functionName targeting arbitrary methods are not supported in the T# runtime.

πŸͺ‘ Usage Recommendations

  • Use Mecanim for all new animation logic.

  • Import FBX files from external tools to speed up asset production.

  • For humanoid rigs, always assign and configure an Avatar for optimal performance and retargeting.

  • Use Blend Trees when animation variation depends on one or more continuous parameters.

  • Manage multiple animation clips via Animator Controllers.

  • Use the Animation window to keyframe motion and properties in-editor.


πŸ“Œ Reminder

All Unity animation functionalities described above are fully available in Terra Studio Pro. Developers are encouraged to refer to Unity's official documentation for detailed usage patterns and editor workflows. Terra Studio ensures full runtime compatibility across the Animator pipeline.

Previous🎨 Terra Studio UI Systems OverviewNext🎧 Audio & SFX Support in Terra Studio

Last updated 1 month ago

For scripting and runtime control in animation, always consider the to ensure that animation calls are T#-safe.

Key Differences between T# & C#