---

# Ep.0 — Why Fast-Ref? (XRef's Limitations and the Need for the Plugin)

> slug: ep00_why-fast-ref

https://youtu.be/IZtPFC-p7cI?si=oNNagK1RFl36iu-M

> **Summary**: We dive deep into the functional limitations of 3ds Max's built-in XRef and explore why Fast-Ref is an indispensable solution for a real-world animation pipeline.

---

## 1. The Production Disaster We All Face (Opening Scenario)

Imagine an animator hard at work on 3ds Max when the lead suddenly delivers a bombshell:
> **"The character's bone structure is getting a complete overhaul."**

Not just adding jacket, skirt, or hat parts — even the bone naming convention is changing from lowercase `root` to uppercase `Root`. If only a single file uses this character, you might get away with it. But what if **dozens of action clips** (Walk, Idle, Attack, Run) and **100–200 cinematic scene files** are all interwoven like a spider's web?

Simply because the rig file was updated, the animator faces the horrifying chore of manually opening every single one of those 200+ files to update them. This is the heaviest, most painful production risk animators endure.

---

## 2. Trying 3ds Max's 'XRef Objects' for Character References

The first thing you discover when looking for a way to reference external files in 3ds Max is the built-in **XRef (External Reference)** feature. We tested XRef Objects using the demo character Mable. (Test environment: 3ds Max 2027)

Loading a character via the XRef Objects menu appears normal on screen. But the moment you start keying actual animation, serious problems erupt.

### 🔴 Critical Limitations in Practice
* **Base Bone keying**: A simple jump pose may appear to key, but it is unstable.
* **Custom Attribute loss**: Custom data such as finger controllers or expression attributes set up by the rigger simply does not appear on screen, or keys do not register in the timeline. Inspecting the scene graph reveals the custom attribute data has completely vanished — only an 'XRef Object' shell remains.
* **Collapse on rig Replace**: Trying to swap the rig file for a different costume version with the same skeleton causes the **entire rig structure to shatter and break**.
* **Data loss on save/reopen**: After force-keying and saving, reopening the file reveals that all keyed data has been **completely wiped** because controller data links are severed.

> **💡 Conclusion**: 3ds Max's built-in XRef is not designed for character animation references. It targets Arch-Viz or static prop placement. This is precisely why no production studio in the world uses XRef as their main character animation pipeline.

---

## 3. What About Maya and Blender?

* **Maya (Reference)**: Blazingly fast character loading, clearly marked with an 'R' badge. Pre-set custom attributes are fully preserved, and pressing **S** manually keys all channels perfectly without Auto Key. Reloading or replacing a character never causes data loss. It is the cornerstone technology of Maya-based studios worldwide.
* **Blender (Link)**: Not quite as intuitive as Maya, but the Link-based reference pipeline works quite well and is used effectively by many teams in production.

While other tools treat reference-based workflows as the default standard, 3ds Max has long lacked a solution in this area.

---

## 4. "Can't you just ship a perfect rig from the start?"

A presenter with over 10 years of experience as an Animation TA states: **they have never once seen a rigging file that was finished in a single pass.**
* Even a generic secondary character undergoes at least **2–3 rig revisions**.
* A main character averages **10 or more** revisions, and in severe productions, revision requests can reach **20, 40, or even 50 times**.

Just as a bug-free game launch is impossible, rigging — a system built by humans with countless interlocked bones and controllers — cannot achieve perfection without revisions. If rig updates are unavoidable, a **pipeline that handles those updates painlessly and seamlessly** must be in place.

---

## 5. Our Solution: The Fast-Ref Plugin

OtakuSolutions developed **Fast-Ref**, a dedicated reference system for 3ds Max, to quench the industry's long-standing thirst.

### ✨ Practical Advantages of Fast-Ref
1. **High-fidelity animation preservation**: When a rig updates from v1 to v2, or is replaced with a different costume version, Fast-Ref preserves Biped motion, standard bone animation, and even complex Constraint relationships — all intact.
2. **Compatibility with external pipelines**: Remarkably, **project files (.max) open perfectly on external PCs that do not have Fast-Ref installed**. Share files freely with outside studios without any tool-dependency concerns.
3. **Intuitive management UI**: Monitor which files are referenced in the scene and whether they are up to date — at a glance, via color-coded traffic-light indicators.

Break free from the hell of manual repetition, schedule delays, and broken scenes. Build a stable, structured character reference pipeline on par with Maya — with Fast-Ref.

---

# Ep.1 — Reference Pipeline 101 (Folder Structure Design Rules)

> slug: ep01_reference-pipeline-101

https://youtu.be/qGYcZd67eNA?si=5uRxdGBzGYs1O8aj

> **Summary**: The very first step to running a stable reference system is to **strictly separate the 'Master Rig folder' from the 'Animation Scene folder' and ensure they never mix.**

---

## 1. The Painful Background That Inspired This Episode

Maya-centric studios have long established the separation of rigs and animation as a baseline rule. However, when inspecting teams that grew around 3ds Max or Blender, a surprising number mix files haphazardly without any standardised folder convention.
In the presenter's experience, **6 out of 10 companies** have completely tangled folder structures. This problem is most severe in teams where there is no dedicated rigging department and a generalist handles everything.

If you have decided to adopt Fast-Ref, the **prerequisite of organising the folder structure** must be satisfied before even launching the tool — otherwise the pipeline will not function correctly.

---

## 2. The Two File Types You Must Never Mix

An animation pipeline should contain exactly two types of core files.

| File Type | What Goes Inside | ❌ **What Must Never Go Inside** |
|-----------|------------------|----------------------------------|
| **Original Rig File** | Skeleton, controllers, skin weights, mesh | **Animation keyframes** |
| **Animation Scene File** | Animation data keyed after linking (Add) the rig file | Any direct edit of the original rig source |

### 🚨 Common Anti-Patterns
1. **Saving test animation onto the original rig**: Testing "does this rig move well?" then absentmindedly saving keyframes into the master rig file. (Test keys must always be saved to a separate temp file or `.bip`.)
2. **Opening the rig file and 'Save As' to start animating**: The most common and destructive approach. It severs the original rig's connection relationships and creates a hardcoded single file, meaning any rig revision requires discarding the entire scene.
3. **Merging the full rig into the scene instead of linking**: The scene becomes locked with heavy rig data, making it impossible to reflect any rig revisions.

---

## 3. The Engine Catastrophe When Animation Ends Up in the Rig File

This is a true story from joining a Blender-based studio as an Animation TA. When asked "Where is the master rig file for Character A?", the rigger handed over a file that, when opened, had **the character's elaborate ultimate skill animation baked right into the default pose**.
A predecessor had worked on the animation and accidentally saved it directly on top of the master rig file.

### 😱 The Butterfly Effect of Bind Pose Corruption
- Importing a rig that has animation keys baked into it as a Skeletal Mesh in Unreal or Unity causes the **character's initial default pose (bind pose) as recognised by the engine to become completely distorted**.
- Because the baseline body shape data is corrupted, no matter how perfect the animation clips applied to that character are afterwards, **joints continuously twist and deform in hideous rendering bugs inside the engine**.
- Ultimately, a TA has to be brought in to manually strip all animation data and restore the rig to a clean A-pose/T-pose — unnecessary work that wastes everyone's time.

---

## 4. Clear 'Territory Separation' Between Departments (Recommended NAS Folder Structure)

In an environment where dozens of artists (e.g. a 35–40 person animation team) collaborate, completely isolated rules are essential.

```
Project_Super/ (Network shared drive)
  ├─ rigging/             ← Rigger territory only (riggers have write access)
  │   └─ CH_Mable/
  │       ├─ master_mable.max   (Clean rig — zero animation keyframes)
  │       ├─ textures/          (Texture folder referenced by relative path)
  │       └─ old/               (Old version history backup)
  │
  └─ animation/           ← Animator territory only (animators have write access)
      └─ Scene_Walk/
          └─ walk_mable_v01.max (File that 'Add'-linked master_mable.max via Fast-Ref)
```

### 🚫 Strict Access Rules
- **Riggers**: May view the animator folder but must never directly intervene and overwrite animator scenes.
- **Animators**: May open master rig files in the rigging folder as read-only references, but must **never create or overwrite any file inside the rigging folder.**

---

## 5. "Keep the Chaos Ratio Below 7%"

As production progresses, perfect adherence to rules is impossible — a certain level of file disorder (Chaos) will inevitably arise.
However, the presenter sets a guideline to keep the **pipeline's overall chaos index below at least 7%**, actively directing traffic whenever files start to tangle.

The driving force behind this tidying cannot be junior artists who feel too awkward to step in, so **the lead or practising TA must firmly hold authority, define folder hierarchies and file access permissions, and regularly filter things out.**

Only with a solidly designed 'Master Folder Rule' in place can Fast-Ref's automatic checking and replacement features truly spread their wings.

---

# Ep.2 — Adding & Removing References (Add / Remove and Traffic-Light Status Check)

> slug: ep02_add-remove

https://youtu.be/-j6lYvfwz8U?si=3xzlrhYGPfVZPImV

> **Summary**: Never copy-paste rig files into your scene. Use Fast-Ref **Add** to link cleanly, and **Remove** to detach without polluting scene data. The rig file's status is refreshed every 5 minutes via **green/yellow/X** traffic-light colours.

---

## 1. Managing References Like Maya

Fast-Ref's core concept is to perfectly replicate Maya's intuitive reference mechanism in 3ds Max — without any complex setup.
It creates only a **'link relationship'** to the external file while keeping the scene file extremely lightweight, and lets you control all state changes within the scene through a dedicated table view.

---

## 2. Add — Registering a Reference

Open the Fast-Ref UI, select the `.max` master file inside the original rig folder (e.g. `master_mable.max`), and press the **Add** button to register it in the table.

### 📊 Control Buttons Activated Immediately on Slot Registration
- 🟢 **Green mark**: The file path on disk is valid and the scene you have open is referencing the **latest, perfect rig state**.
- 👁️ **Visibility (on/off)**: Hides or shows the reference on screen. Useful when the viewport becomes heavy with 3–4 or more characters in a single scene.
- ❄️ **Freeze**: One-click lock mode to prevent accidentally dragging and moving a character in the viewport with the mouse.
- 🎯 **Selection helper**: Selects all of the complex rig bone structures belonging to that reference with a single click.

---

## 3. When the Rigger Updates the Rig (Yellow Warning Light)

While working on a network drive, what happens if the rigger fixes part of the rig's skin or mesh and distributes the updated master file?
The animator never needs to manually ask the rigger "Did you make changes?" — the mark in the Fast-Ref table immediately turns **🟡 yellow**.
> This is a helpful warning: **"The timestamp of the file on disk has been recently modified. Animator, this scene is based on an older version!"**

At that point you have two choices:
1. **Reload**: Keeps the file path identical but safely refreshes only the rig structure inside the scene with the latest file content that was overwritten on disk.
2. **Replace**: If the rigger created a brand-new file at a completely different path, point to the new path and swap the skeleton.

---

## 4. Remove — Detaching a Reference

When you need to exclude a character from the scene or no longer need it, press the **Remove** button.
In standard 3ds Max, deleting an XRef or similar object often leaves entangled nodes or empty dummy nodes behind, gradually polluting the scene — a notorious chronic problem.
Fast-Ref, however, **leaves no residual nodes or skinning data corruption — it restores the scene to a clean state, as if the reference was never there.**

---

## 5. Real-Time Traffic-Light Status Check System (5-Minute Scan Interval)

One of Fast-Ref's smartest features is its background detection cycle.
- **The moment the tool launches**, it checks the disk file timestamps and path status of every slot and updates their state.
- Even during work, it **quietly polls in the background approximately every 5 minutes** for any changes to the master rig files.

This means that even in a high-pressure environment where multiple team members are collaborating simultaneously, you can always reliably monitor whether the scene you are working on is referencing the correct path and has up-to-date data.

---

## 🚫 Important Notes & Summary
- Trying to forcibly **Add** a file that is already loaded as a Fast-Ref reference, or leaving tangled connection states unaddressed, risks conflicts — always check the plugin's helpful pop-up warnings that pre-filter errors.
- Every animation session starts with confirming the **🟢 green light** at the top of the table.

---

# Ep.3 — Replace (Core Feature) and Namespace Multi-Character Management

> slug: ep03_replace-namespace

https://youtu.be/7g6yB1Nn9do?si=KJyunD8Lv_VKMbkS

> **Summary**: When swapping a rigged character for a new rig, Fast-Ref's Replace function **perfectly preserves Biped, Bone animation, and Constraint relationships**. Namespace prefixes are also assigned and managed to prevent name collisions when multiple instances of the same character appear in a scene.

---

## 1. Fast-Ref's Core Weapon: The Replace Workflow

The moment most Max animators feel most frustrated is receiving feedback that says "the rig data was revised — you need to redo the work." Even a single bone name change can break all previously keyed animation, forcing artists to start over from scratch.

Fast-Ref's **Replace** feature completely circumvents this problem. Simply point the rig source file path to the new version, and it automatically backs up and precisely transplants the following core animation systems into the new rig.

### 🛡️ The 3 Core Animation Assets Guaranteed to Survive
1. **Biped animation**: Pelvis position, IK information, and limb motion are saved without any loss.
2. **Bone animation**: Props, capes, and hair animated on standard Max Bones (rather than Biped) are also backed up (via `.xaf` transplant) and carried over intact.
3. **Constraint relationships**: The countless internal and external Constraint connection structures set up on the character — accessories on the head, weapons in the hand — are preserved via a precise scene-wide map, with no need for manual re-targeting.

This reduces the time previously spent on manual copying by at least 10x and can even handle simple costume swaps or animation transfers to a similarly-structured different character with ease.

---

## 2. Namespace Management Rules (Safety Net for Multi-Character Scenes)

What happens if you copy 2–3 instances of Mable into a single scene?
By default, 3ds Max automatically appends numbers to duplicate object names to make them unique (`Mable_Bone_01`, `Mable_Bone_02`, etc.). This causes rigging structures and controller links to tangle, easily demolishing the entire scene.

Fast-Ref prevents this cleanly using **prefix (Namespace) separation**, the Maya standard approach.

- Character Mable_A gets `Mable_A:root`, Mable_B gets `Mable_B:root` — a unique namespace neatly prepended to every node.
- **Namespace change**: The slot's namespace can be easily edited with a single click in the table view.
- **Activate Space**: In a multi-character scene, this immediately locks the namespace of the specific character you are currently animating to an 'active' state, preventing the catastrophic accident of accidentally touching and corrupting a neighbouring character.

---

## 3. Name Compatibility with External Tools

A studio's proprietary exporter or certain scripts may not recognise the colon-prefixed namespace node format at all.
In such cases the Namespace prefix needs to be turned off so nodes are spread into the scene with their original flat names — but **performing Replace at random with Namespace off can cause crashes where an adjacent multi-character instance vanishes entirely or becomes tangled**.

The intelligent helpers that resolve these special pipeline compatibility concerns are **EP04 (Unpack)** and **EP06 (Smart Switch)**.

---

# Ep.4 — Unpack (Deconstructing the Package Structure for Tool Compatibility)

> slug: ep04_unpack

https://youtu.be/Jaii390A0Nw?si=2n7U_mVournDJH9X

> **Summary**: Fast-Ref wraps reference data in a virtual safety package for scene stability. If in-house legacy scripts or external plugins cannot recognise this, simply enable **Unpack** to temporarily expose the raw scene structure.

---

## 1. Understanding Fast-Ref's Internal Packaging Mechanism

To prevent reference data inside the scene from being corrupted or lost during 3ds Max's own Garbage Collection process, Fast-Ref specially packages data (stores it inside a virtual fence) and manages it.
The vast majority of ordinary animation work, viewport navigation, and keyframing **operates perfectly in the default state without touching Unpack at all.**

---

## 2. When and Why Is Unpack Needed?

Production environments contain a mix of numerous in-house plugins, specific framework scripts, or specialised legacy exporters. These tools are often hardcoded to only directly read "standard 3ds Max scene graph nodes."

This can cause compatibility issues where external tools error out or characters cannot be selected because they cannot read Fast-Ref's special packaging fence. This is when you use the **Unpack On** switch.

- **When Unpack is enabled**: Nodes that were hidden and wrapped inside Fast-Ref's safety fence are **fully deconstructed and exposed at the scene level as pure 3ds Max nodes matching the original file.**
- **Management still maintained**: Remarkably, even though the nodes are exposed like ordinary objects, **Fast-Ref's table still perfectly tracks and maintains the ownership link — "which file this is connected to and whose Namespace it belongs to."**

---

## 3. The Relationship Between Namespace and Unpack Options

Depending on studio pipeline constraints, artists must appropriately navigate among these three key configuration axes:

1. **Namespace On**: Must always be on when placing multiple characters — this is the safe default.
2. **Namespace Off**: Turn this off only when another in-house tool cannot interpret the colon prefix (`:`) at all. (In this case all node names are unified, so caution is needed when replacing multi-character setups.)
3. **Unpack On**: Peels off the virtual package structure, opening the door wide so legacy tools can freely analyse bones and controllers.

---

## 💡 Practical Guidelines Summary
- For everyday work or a pure Fast-Ref-based pipeline, **Unpack Off is the most stable state** — leave it as is.
- Only enable **Unpack On** to build a compatibility bridge when a company-specific "inspection tool" or "export engine plugin" screams that it cannot find nodes.

<!-- [REVIEW: legacy image - verify placement context] -->
![Unpack 기능 스크린샷](ep04_unpack/image.png)

---

# Ep.5 — Merge & Convert (Combining References and Restoring Links)

> slug: ep05_merge-convert

https://youtu.be/MSkKN81kY6g?si=y4NE297kj1cbtAc6

> **Summary**: Use **Merge** to permanently bake a character into the current scene by severing the link, or use **Convert** to restore orphaned objects back under Fast-Ref's managed link system.

---

## 1. Merge — Permanently Severing the Link and Baking to Scene

Fast-Ref references are always dynamic links that track changes in the master rig file in real time.
However, at the final delivery stage of production or when handing files to an external studio, there are times when you want to **permanently bake the character's rig and animation data into this single max file, completely cutting the external path dependency.**

- **When Merge is executed**: With a single click, the entire virtually-referenced character rig is **permanently merged as real, physical nodes inside the current `.max` file.**
- **Result**: From this point on, no matter how much the rigger revises the original master file, the data inside this scene is independent and unaffected, and the single `.max` file can be opened perfectly on any other PC.

---

## 2. Convert — Restoring Orphaned Nodes Back into Reference Links

Conversely, imagine you have a raw bundle of character nodes that were manually merged into the scene, or copied in from another file. When you want to place these back under Fast-Ref's safe link management and track their revisions, **Convert** steps up.

1. Select the merged character bone group floating in the scene and execute **Convert**.
2. The data is registered back as a temporary control slot in the Fast-Ref table.
3. Manually re-point (Point) the **master rig file path on disk** that this slot should reference, and a complete file reference relationship is reactivated.

---

## 3. Clearly Distinguishing Remove vs Merge

Many artists confuse the two menus when trying to remove a reference from a scene.

* **Remove**: A cleanup action that **deletes the character itself from the scene without a trace**. (Delete character)
* **Merge**: Cuts only the external connection string to the master file, but **preserves the character skeleton and animation inside the scene as regular objects**. (Sever link and bake to scene)

---

## 🔄 Workflow Pipeline Summary

```
[master_mable.max on disk] 
            │ (Add link)
            ▼
┌─────────────────────────────────┐
│ Fast-Ref reference control state │
└─────────────────────────────────┘
            │
            ├─► (Remove) ──► Deleted from scene without trace (full cleanup)
            │
            └─► (Merge)  ──► Permanently baked as scene objects (link severed)
                                        │
                                        ▼ (when you want to manage it again)
                                  ┌─────────────────────────────────┐
                                  │ Convert ──► Re-link path ──► Restore link │
                                  └─────────────────────────────────┘
```

<!-- [REVIEW: legacy images - verify placement context] -->
![Merge & Convert 워크플로 1](ep05_merge-convert/image.png)

![Merge & Convert 워크플로 2](ep05_merge-convert/image_1.png)

---

# Ep.6 — Smart Switch (Safe Replace Without Toggling Namespace)

> slug: ep06_smart-switch

https://youtu.be/gb1WCwMDe1I?si=oxGpoEYPqy6vy5o8

> **Summary**: Even artists who must work with Namespace **Off** due to studio pipeline constraints can perform **safe Replace operations in the background** — without catastrophic accidents like other character nodes being deleted — thanks to this auto-magic feature.

---

## 1. The Lethal Threat Lurking in Namespace Off Workflows

The ideal and safest Fast-Ref workflow is to always work with Namespace (`CharacterName:BoneName` structure) enabled.
However, many studios are forced to work with **Namespace completely Off and Unpack enabled** due to restrictions imposed by their company's specialised engine exporter scripts.

In this state, with multiple characters simultaneously in the scene, all bone names are identical because there are no Namespace prefixes (`root`, `L_Thigh`, etc.). What happens when you try to Replace just one character's rig?
- The Max engine mistakenly targets the same-named node of a different character.
- During the replacement, **the completely innocent neighbouring character nodes get entirely wiped out or tangled — a catastrophic merge disaster.**

For this reason, older versions simply blocked Replace entirely if any Namespace was off, forcing a warning dialog that stopped artists in their tracks.

---

## 2. Escaping Manual Hell: The Birth of "Smart Switch"

Every time a rig needed updating, artists had to manually:
1. Toggle `Namespace Activate On` (switch to safe packaging mode)
2. Execute `Replace` to swap the rig
3. Then revert back to `Namespace Off`, `Unpack On` when done

Repeating this three-step chore manually is not only extremely tedious — skipping a single step by mistake destroys the entire scene. **Smart Switch** automates this entire process.

---

## 3. What Smart Switch Does Behind the Scenes

Simply check the **Smart Switch** option in the Options menu, and the tool automatically performs the following miraculous sequence:

```
[Replace/Reload command detected] ──► 1. Temporarily enable Namespace On (safe virtual shell)
                                                   │
                                                   ▼
                                         2. Safely execute 1:1 mapped Replace (zero interference from other characters)
                                                   │
                                                   ▼
                                         3. After successful replace, perfectly restore original Namespace Off / Unpack On
                                                   │
                                                   ▼
[Artist checks work view] ──► Namespace still Off, layers perfectly restored to original state!
```

Thanks to this intelligent sequence, artists can freely update rigs while remaining focused entirely on their flat work view, with no need to care about what is happening in the background.

---

## 4. The Safety Prompt That Works Even If the Option Is Off

What happens if you forget to enable Smart Switch in the Options menu and try to Replace a dangerous Namespace Off slot?
Instead of unconditionally blocking the operation, a smart pop-up appears:
> **"The current settings are dangerous. Would you like to temporarily apply the Smart Switch helper for this one replacement?"**

Selecting **Yes** runs the Smart Switch safe background agent for that single replacement only, resolving it safely.

💡 **Performance note**: When Smart Switch activates, it internally runs an extra round of temporary namespace assignment, node isolation, and safe restoration sequences, so it **may take slightly longer than a naive direct replace.** This is a precision physics computation step to perfectly protect the scene's integrity — please allow 3–4 extra seconds and rest assured everything is safe.

---

# Ep.7 — Game Engine FBX Export (Pipeline Overview for Beginners)

> slug: ep07_fbx-export-overview

https://youtu.be/y6812vbBJH4?si=5Yi0GBRgKiob3VmJ

> **Summary**: Fast-Ref is not just an internal 3ds Max scene reference tool — it also contains a powerful dedicated **FBX exporter that can push finished animation data to Unreal or Unity in one shot.**

---

## 1. Building a Single Pipeline from Scene Management to Engine Deployment

Many development teams use separate hand-built tools for the animation keying environment and for extracting files to import into a game engine (Unreal, Unity, etc.).
However, when those hand-built tools operate independently, version management gets tangled and bone axis or Namespace rule conflicts frequently cause animation distortion accidents inside the engine.

Fast-Ref is designed to **integrate everything under a single UI flow (All-in-One)** — from animation production all the way to final distribution of files optimised for game engine import specifications.

---

## 2. FBX Export Entry Point and Core Features

Opening the **Tools** menu at the top of the Fast-Ref main window gives immediate access to the export sequence.

- **One-click single / batch export**: Instantly export just a single character from the scene, or simultaneously output 3–4 characters in a scene as separate individual FBX files in one go.
- **Unified FBX options system**: The single exporter in the main window and the **Batch Tool (EP09)** that batch-processes dozens of max files **share the exact same global FBX settings**, completely preventing the catastrophe of artists and batch processes outputting differently and introducing bugs.

---

## 3. Thoroughly Validated in Real Engine Production (Unreal & Unity)

During Fast-Ref's development, OtakuSolutions did not rely on hypothetical scenarios — they **closely collaborated with TA, rigger, and cinematic animator teams on actual large-scale game production floors, rigorously pre-validating export results under real Unreal Engine and Unity build environments.**

- Prevention of bone axis twist artefacts
- Namespace removal compatibility
- Elimination of bone scaling deformation errors

This pre-refined FBX exporter is ready to be plugged directly into engine build pipelines — set the detailed options once and trust it to deliver production-ready results every time.

---

## 🎯 Roadmap to Mastering Exports
* **Now (EP07)**: Grasping the concept — "Ah, Fast-Ref handles engine-compatible FBX perfectly from within the same tool!"
* **Next (EP08)**: Opening the FBX options panel to dissect why you need to turn off Skin when exporting animation clips only, and why Smooth Groups matter
* **Finally (EP09)**: Learning the Batch Tool to automatically export 20+ scenes overnight using those options

---

# Ep.8 — FBX Export Options (Detailed Options Guide for Engine Import)

> slug: ep08_fbx-options

https://youtu.be/uXCT5PicgQU?si=iM07m4TMUj1vHdBr

> **Summary**: The **upper area** of the FBX options panel exposes 3ds Max's built-in FBX export controls; the **lower area** contains Fast-Ref's proprietary Namespace removal, root alignment, and dynamic filename generation features. Save your configured options as a Preset for team-wide sharing.

---

## 1. The Core Mechanism of Option Control

Fast-Ref's exporter panel stores configured settings as **Preset** files on disk, and both the single exporter and the overnight **Batch Tool (EP09)** are completely governed by the same preset — keeping output deviation at zero.

---

## 2. 3ds Max Default FBX Control Area (Upper)

These options connect to the FBX SDK options provided by the 3ds Max engine itself. Here is a practical-tips-focused summary.

| Option | What It Actually Does | 💡 **Practical Guide & Tips** |
|--------|----------------------|-------------------------------|
| **Animation** | Whether to embed keyframe animation data in the FBX | Obviously must be **On** when exporting animation clips. But when first registering the character's Skeletal Mesh in the engine, turn this off and export a clean T-pose at frame 0. |
| **Skin** | Whether to include skin binding information (deformation data) | - **First mesh registration**: **On**<br>- **Animation clips only**: **Off**<br>👉 Once the character mesh is already in the engine, turning off Skin when exporting animation clip FBXs reduces file size by 10x and speeds up export dozens of times — a powerful practical technique. |
| **Shape** | Whether to include Blend Shape / Morph data for facial expressions | Always **On** for main characters with facial animation. |
| **Bake Animation** | Bake keys at every single frame regardless of original frame rate | Keeping **Bake On** is the production standard for preventing animation squishing caused by engine physics interpolation conflicts. |
| **Smooth Groups** | Store smooth shading information for 3D mesh faces | Always **On**. Accidentally turning this off and importing into the engine causes the beautiful character to come out **looking like a Minecraft character — blocky and angular** — a total disaster. |
| **Texture Embed** | Force-embed texture image sources as binary data inside the FBX file | Always **Off**. Enabling this causes dozens of megabytes of images to tangle inside a single FBX, making file size spiral out of control. Manage paths as relative paths inside the 3D scene only. |
| **Up Axis** | Set the 'sky direction' axis the game engine uses | - **Unreal Engine**: **Z-up** (matches 3ds Max)<br>- **Unity Engine**: Pressing the Unity preset button auto-adjusts to **Y-up** |
| **Units** | Match the scale unit inside the engine | 3ds Max defaults to cm scale. For Unity (prefers m units), you must manually verify the scale factor via the Unity preset to avoid shrink/inflate bugs. |
| **File Version** | FBX export file format version | Standardising on **FBX 2020** — the most error-free and stable format in the current industry — is recommended. |

---

## 3. Fast-Ref Exclusive Export Control Area (Lower)

These production-focused automation features are available only within Fast-Ref.

### ✂️ Remove Namespace
Forcibly strips the prefix from names like `Mable_A:L_Hand` (added temporarily for multi-character placement), so the engine importer receives only the original clean bone name `L_Hand`. No need to worry about retargeting breaking inside the engine.

### 🎯 Reset Root (Force-Freeze Root Bone at Origin)
Even if the character has animation where it runs forward through world space, there are times when the **root bone must be output locked at its origin position and rotation (0,0,0)** for engine root motion computation or binding rules.
- Recognises a specific root bone name, force-holds it at the origin, and optionally applies a correction rotation (e.g. 90 degrees on Z) to align the character's forward direction.
- 🚨 **Critical Warning**: Because this feature temporarily computes the character's scene coordinates at export time, **the working `.max` file must be closed without saving immediately after FBX extraction** to prevent scene animation corruption. This is a tip leads must drill firmly into their artists.

---

## 4. Dynamic File Naming Rule Design

Instead of manually typing each output FBX filename, define a rule using the dynamic variables below to auto-generate filenames.

* `[Original File Name]`: Current scene max filename
* `[Namespace]`: The unique name assigned to that character
* `[Date]`: Today's date auto-stamp
* `[Auto Namespace / Index]`: If there is only one character in the scene, exports with the clean original name. **The moment two or more are detected, automatically splits into names like `FileName_Yuna`, `FileName_Mila`** — an impressively smart automation.

### 🏷️ Create Rigging Data (Export to Selection - ES Tag)
Rather than grabbing the entire viewport, this reads the **Selection Set name** (e.g. `Export Body`) registered by the rigger during the character master setup, and precisely filters to export only the mesh and skinning weight data. If the syntax is incorrect, a red error mark appears on the right side of the panel for easy identification and correction.

### 📁 Create Subfolder Per Max File
- **Checked On**: Automatically creates subfolders named after the working scene, useful for cinematic shots where many characters are interleaved.
- **Checked Off**: Recommended for cleanly outputting a single character's motion clips (Run, Walk, Idle) in a flat structure.

<!-- [REVIEW: legacy images - verify placement context] -->
![FBX 옵션 패널 1](ep08_fbx-options/image.png)

![FBX 옵션 패널 2](ep08_fbx-options/image_1.png)

---

# Ep.9 — Batch Tool (Bulk Reload and Automated FBX Exporter)

> slug: ep09_batch-tool

https://youtu.be/oDxD8zUEIPc?si=E30cg7eIX9IKt2X6

> **Summary**: A productivity booster optimised for overnight runs that automates the gruelling repetitive chore of opening dozens of animation max files one by one, applying updated rigs, and re-exporting per-character FBXs — all with a single batch setup.

---

## 1. Grasping the Real-World Value of Batch Tool

Consider this scenario:
> **"A scene has 3 characters performing running animations. There are 3 such scenes (3 cinematic cuts) in total."**

When the rig file updates to v2, the artist must manually update and export for these 3 scenes a total of **9 times (3 characters x 3 files).**
If there are 20 files and 5 characters, that forces over 100 manual operations.
Fast-Ref's **Batch Tool** lets artists configure this entire 100-step overnight workload for the computer to handle autonomously before they leave for the day — with a single button click.

---

## 2. Entering and Configuring Batch Tool

Clicking **Tool -> Batch Tool** in the main Fast-Ref window opens a large independent batch control dialog.
(Built into the main Fast-Ref system and provided free of charge under a single licence.)

---

## 3. Core Automation Features (Two Pillars)

The batch processor automates the following two steps sequentially, or each independently.

### 🔄 1. Reload (Bulk Reference Update)
- Quietly opens each max file in the registered list in sequence.
- Activates the Fast-Ref analysis engine to detect which character rigs inside each scene are on an older version than the latest on disk (yellow notification, etc.).
- Automatically reloads to the latest rig, reflecting the updated connection structure, new skeleton, and skin.

### 📤 2. Export FBX (Bulk Engine Distribution Export)
- Reads the skeleton and animation of characters that completed Reload successfully.
- Calls the global FBX preset rules configured in EP08 (Namespace removal, Skin off flag, root origin freeze, etc.).
- Bulk-outputs unique FBX files per file, or per character slot within a file, to an external folder.

---

## 4. Safe Batch Execution Setup Guide

If you are concerned about corrupting original files on your first batch run, check the following safety settings.

- **Reload scene save path options**:
  - **Overwrite**: Overwrites the updated latest rig state directly onto the original working file. (Use when the pipeline is fully stable)
  - **Custom Path**: Never touches the originals; instead duplicates the reload-completed new `.max` files into a designated separate backup directory (e.g. `D:/FR_Backup/`). (Strongly recommended for initial verification)
- **FBX output path**: Setting the target path of the final game engine resource folder (Content/Character, etc.) means updated data is pushed to the engine side immediately upon batch success.

---

## 5. Reviewing Results and Detailed Debug Logs

This feature checks for any files that errored during the overnight background batch run.
- When the batch fully completes, finished slots are visually guided with a cheerful **🟢 green box**.
- If there are files that errored or were Skipped, press the **Open Folder** button at the bottom of the batch window to open the log directory.
- Opening the automatically generated detailed log text in Notepad lets you track — via intuitive plain text — which scene, which frame the error occurred on, and which data was missing, making corrections very fast.

---

## 💡 A Practitioner's Perspective: "Why We Don't Build Our Own Tool"

Large studios typically spend enormous effort having in-house TA teams build proprietary bulk batch tools. But these tools are hard to maintain and routinely throw errors with every new Max version.
Fast-Ref's batch tool is a production-proven engine — its Unreal/Unity integration stability and zero-failure background reload architecture have already been validated across countless productions processing tens of thousands of files. The moment it is deployed in a studio, the lead time for the entire development team's file distribution shrinks dramatically.

---

## 📞 Support and Feedback Channel
If during operation you encounter a file that gets skipped or behaves unexpectedly due to a special custom controller setup, promptly send the original scene and symptom description to **OtakuSolutions' official Technical Support email**. A practising TA will carefully analyse it and provide a hotfix swiftly.

---

# Ep.10 — Rigging Info (Shared Rigging Data and Auto-Restore of Selection Sets)

> slug: ep10_ri01-rig-structure-fbx

https://youtu.be/lthRjt9JdEM?si=VHrBrXjJn_RR4-cs

> **Summary**: Learn advanced setup techniques using the **Rigging Info node** shared between Fast-Ref and Biped Plus to maximise scene load speed, work around 3ds Max's chronic **Selection Set loss bug**, and precisely control FBX export scope.

---

## 1. What Is Rigging Info?

The name may sound unfamiliar and complex at first, but the concept is very clear.
**Rigging Info** is a **'rigging metadata repository'** that OtakuSolutions' two core plugins — **Fast-Ref** and **Biped Plus** — both record into and share from a specific node inside the scene.

### 🔌 Entry Points (Data Written to the Same Node)
* **Fast-Ref**: Access via the top menu or the 'Create Rigging Data' button
* **Biped Plus**: Access via Biped Plus's Edit window

This metadata node compactly stores biped names, biped node hierarchy information, custom controller lists, skinned mesh bone information, and more.

By baking this data into the source rig in advance, Fast-Ref **no longer needs to inspect every single node when loading or replacing a scene — dramatically increasing speed and safety.**

---

## 2. What to Include in the Controller List

Register every control device (controller) in the scene that the animator needs to operate, excluding the Biped base skeleton.

* **Standard Bones and controllers**: Auxiliary bones for cape, hair, skirt, and prop control
* **Simulation bones**: Dynamic/simulation bone hierarchies that animators frequently activate
* **Facial and Morpher data**: Morph target data into which expression animation keys are inserted
* **Wildcard (`*`) support**: When there are dozens to hundreds of bones or controllers with a specific prefix, use a wildcard (e.g. `Prop_*`) to select and bulk-register them all at once.

> 💡 **Practical tip**: If expression controllers are already tightly bound and wired into a **facial UI script**, there is no need to manually add every controller to this list one by one. Set up only the key independent bones that receive direct keys.

---

## 3. Working Around 3ds Max's Chronic 'Selection Set' Bug

Many game productions rely on 3ds Max's **Selection Set** feature to select only skin bones (`Skin Bones`) or specific costume meshes (`Skins`).

### 😭 3ds Max's Critical Selection Set Bug
- No matter how carefully you create and save Selection Sets in the original rig file, **3ds Max has a chronic bug where Selection Set data is not automatically restored and is lost when the rig is Merged externally or loaded into a new scene.**

### 😎 Fast-Ref's Solution
- Create Selection Sets (`Skin Bones`, `Skins`, etc.) in the source rig, then click **Refresh Save** in the Rigging Info menu.
- This encrypts and safely records the Selection Set data inside the Rigging Info metadata node.
- Now when you load the character through Fast-Ref, you will witness the miracle: **the Selection Sets you configured are perfectly backed up and restored alongside the rig data — laughing in the face of Max's bug.**

---

## 4. Precise FBX Export Scope Control (Auto vs Defined)

Fast-Ref's powerful built-in FBX exporter intelligently selects export target bones based on metadata registered in Rigging Info.

### 🟢 Auto Mode
- Automatically aggregates all influences registered on Skinned Meshes (bones affected by skin) as the extraction criteria.
- If skin information is clearly applied, this mode alone produces a perfect FBX output. To also export special bone motions that have no skin applied, simply add those bones to the **Controller List** and they will be automatically included regardless of skin status.

### 🔵 Defined Mode
- What if you want to **separately extract the character body mesh and the "weapon (Prop)" held in the right hand as independent individual FBXs**?
- **Example**: Bundle the weapon mesh and weapon bones together, name the Selection Set **`Export Props`**, save it in the scene, and update Rigging Info.
- Switching to **Defined Mode** in the Fast-Ref exporter displays the list of recorded Selection Sets on screen.
- **Simultaneously checking both `Export Body` and `Export Props` and exporting outputs two perfectly split FBX files — the weapon FBX and body FBX — with a single click.**

---

## 5. The Secret of the Mysterious 'R' and 'ES' Tags in the Fast-Ref UI

When a rig file with completed Rigging Info setup is registered in the Fast-Ref table, special tag icons **[ R ]** and **[ ES ]** appear on the right side of the slot.

* **`R` (Read Mode)**: This character has Rigging Info metadata properly installed, so the original structure analysis step during loading and replacement is drastically shortened — enabling ultra-fast recognition. This is the badge of comfort.
* **`ES` (Export Selection)**: Indicates that a precision export rule based on Selection Sets — such as splitting weapon extraction — is mapped to and active on this slot.

### 🚨 When R / ES Tags Glow Red (Warning)
An emergency signal warning that the mapping link is broken because the actual skeleton nodes in the scene cannot be found while Namespace is on.
**Fix**: Temporarily disable the Namespace active state, or refer to the EP02 file status check guide to correctly restore the master path — the bone names will be perfectly auto-tracked again and the tags will return to normal.

---

## Summary in One Line

**Rigging Info = The core brain that makes scene loading 10x faster, perfectly bypasses the Selection Set bug, and controls multi-FBX extraction scope (weapons, etc.) with a single click.**

<!-- [REVIEW: legacy images - verify placement context] -->
![Rigging Info UI 1](ep10_ri01-rig-structure-fbx/image.png)

![Rigging Info UI 2](ep10_ri01-rig-structure-fbx/image_1.png)

![Rigging Info UI 3](ep10_ri01-rig-structure-fbx/image_2.png)

---

# Ep.21 — [FAQ] Constraint restore does not work properly

> slug: ep21_faq-constraint-error

### 1. Scenario

- **Symptom:** During animation work, **Link Constraint** set up with Fast-Ref disappears after Reload, or data is not restored correctly.
- **User experience:** Because restore fails, you must redo work manually using Point Constraint and similar tools.

---

### 2. Fast-Ref constraint restore algorithm (Logic)

For data integrity on reload, Fast-Ref decides whether to restore constraints using the **comparison algorithm** below.

![image.png](ep21_faq-constraint-error/image.png)

| **Category** | **[Skip] Default rig state** | **[Restore] Fast-Ref custom work** |
| --- | --- | --- |
| **Decision criteria** | Rig and Ani files already have the same Link | Constraint exists in Ani but not in Rig |
| **Algorithm behavior** | Treated as “same as source”, “rig source takes priority” and ignored | Treated as “user data”, recorded separately and restored |
| **Design intent** | Skip unnecessary constraint processing for optimization | Ensure animation and added constraints are reflected in Ani automatically |

- **[Skip] Same as rig source:**
    - **Rig file:** Already has constraints (Point, Orient, Link, etc.), and
    - **Ani file:** Also has constraints (Point, Orient, Link, etc.)
    ⇒ Treated as the rig’s **default state** and excluded from the restore list (so rig edits flow through naturally).
- **[Restore] New changes created with Fast-Ref:**
    - Constraints **added by the artist via Fast-Ref** that are not in the rig file are recognized as **user animation data**, stored on a separate layer, and referenced for restore on Replace / Reload.

---

### 3. Root cause

The issue you encountered is an edge case in the algorithm’s **decision logic**.

1. **Misidentified data:** Because constraints already existed on both the rig and ani files when you worked, the tool assumed they were **not newly created by the user** but **already on the rig**, and **skipped (Skip)** them from restore.

---

### 4. Solution

To fully reflect user intent, follow these approaches:

### **Option A: Clean up the rig file (recommended)**

Keep the rig file clean so the algorithm does not confuse source vs. work files.

- **Description:** Do **not** pre-apply **Link Constraint** on props/weapons in the rig source.
- **Reason:** If links already exist on the source, Fast-Ref may treat links you set in the animation file as **“always there”** and **Skip** them from restore.
- **Recommendation:** Leave weapons clean on the floor and let animators apply links in the animation scene **via Fast-Ref** for reliable 100% restore.

---

### **Option B: Custom Attr or driven connections**

A more advanced rig approach that avoids the constraint-restore path entirely.

- **Description:** Instead of restoring constraints, control links via **custom Attr (e.g. Switch 0/1)** or **drives (e.g. position X)** on controllers.
- **Reason:** This does not create new constraints in the animation scene, so **nothing needs restoring** and data loss risk is eliminated.
- **Note:** Common in major studio rigs (e.g. Maya), but requires a dedicated **Rigging TD** on the team.

---

---

# Ep.22 — [FAQ] Animation data disappears

> slug: ep22_faq-removed-animation1

## 📂 Fast-Ref: Preventing animation loss — workflow guide

### 1. Issue

- **Situation:** When loading files via `Fast-Ref` (Load/Add), animation data that was included in the rig source disappears.

### 2. Reference pipeline (Best Practice)

The standard approach is to separate rig source and animation data as follows:

| **Category** | **Rig source (Rig)** | **Animation file (Ani)** |
| --- | --- | --- |
| **Animation data** | **X (Empty)** | **O (Data Included)** |
| **Rig link state** | Source file | Rig file is **Link**ed |

> 💡 Note: In 3ds Max game animation workflows, this reference-based pipeline may feel unfamiliar or differ from your current habits. It is structured for efficient collaboration—see the solutions below.
>

![image.png](ep22_faq-removed-animation1/image.png)

---

### 3. Root cause

This happens due to a **data structure conflict** when the rig source contains animation keys.

- **Detail:** When loading rig files, Fast-Ref automatically cleans up animation to keep an optimal state. If the source includes test animation, the algorithm can get confused and data may be lost.

---

### 4. Solution

### ✅ Option A. Clean rig source data (recommended)

- Remove unnecessary test animation from the rig source file. This keeps the data structure cleanest.

### ✅ Option B. Temporarily disable auto cleanup

- In **[Option]** → **[General Option]**, uncheck **`Auto CleanUp Animation`**.
- Use this **only once** when you must preserve data; re-enable it afterward for normal optimization.

![image.png](ep22_faq-removed-animation1/image_1.png)

### ✅ Option C. Preserve data with [CONVERT]

- Convert an existing animation file with **[CONVERT]**, then replace with the rig file to safely keep animation data.
- **Reference:** [Fast-Ref Convert guide](https://otakusolutions.com/ko/learn/fast-ref/merge-convert)

---

### 🚀 Learn more: Recommended reference workflow

See **Fast-Ref’s recommended production setup** for smooth collaboration and data management—folder structure, path rules, and more.

👉 [**Fast-Ref reference-based workflow guide**](https://otakusolutions.com/ko/learn/fast-ref/quick-start) *(See the “Required production environment” section at the bottom!)*

---

# Ep.23 — [FAQ] How do I use our in-house Export tool?

> slug: ep23_faq-custom-export-tool-integration

**fast-ref** is designed primarily for optimized game-engine FBX Export through its built-in features. We fully understand that each studio has its own pipeline and customization needs.

All components in fast-ref are built on **standard 3ds Max nodes**. Therefore, **as long as you do not save the scene file after Export**, you may freely edit the data structure to integrate with in-house tools.

> **⚠️ Most important rule: Never save the scene after Export.**
Saving will lose fast-ref reference system data and normal management will no longer be possible.
>

---

### 1. Reset All References (v1.0.4~)

From **v1.0.4**, **Reset All References** converts all references into regular scene objects so you can work **independently of fast-ref links**.

**Path:** `Tools → Edit → Reset All References (Merge All)`

This feature automatically:

- Cleans all namespaces and suffixes
- Unparents hierarchy
- Flattens layer structure
- Removes fast-ref system data

When you need temporary integration with an in-house Export tool, run this feature, then Export.

> **⚠️ Reminder:** After Reset, **do not save the scene.** Export only without saving.
>

![image.png](ep23_faq-custom-export-tool-integration/image.png)

![image.png](ep23_faq-custom-export-tool-integration/image_1.png)

![image.png](ep23_faq-custom-export-tool-integration/image_2.png)

### Merge All Options (configurable in General Options)

Suffix cleanup options applied when running Reset All References can be changed in the **General Options** dialog.

**Path:** `Tools → General Options → Merge All Options`

| Option | Default | Description | Why default |
| --- | --- | --- | --- |
| **Force Remove Node Suffix (.r\*)** | ✅ ON | Remove `.r1`, `.r2` suffixes from node names | Engines map bones/meshes by node name; leftover suffixes can break retargeting and script references |
| **Force Remove Layer Suffix (.r\*)** | ⬜ OFF | Remove suffixes from layer names (merge if same name exists) | Default OFF to avoid unintended layer merges when placing the same resource multiple times |
| **Force Remove SelectionSet Suffix (.r\*)** | ✅ ON | Remove suffixes from SelectionSet names (merge if same name exists) | Export scripts often target groups by SelectionSet name; leftover suffixes can cause compatibility issues |

---

### 2. Script API support

**Fast-Ref Script API** is planned for advanced automation. In-house TAs can automate reference query, add, remove, Merge, and more via Python scripts.

```python
import sys, os, pymxs
_p = os.path.join(pymxs.runtime.getDir(pymxs.runtime.Name("userScripts")), "os_fast_ref_package")
if _p not in sys.path: sys.path.append(_p)

from os_fast_ref.api import FastRefAPI

api = FastRefAPI()
result = api.merge_all_references(
    remove_node_suffix=True,
    remove_layer_suffix=True,
    remove_selectionset_suffix=True,
)
print(result['message'])
# → "Merge 완료: 3개 성공, 0개 실패"
```

API_Guide_Link : https://docs.otakusolutions.com/api/fast-ref/merge-all-references?lang=en

---

### 3. Notes for manual editing

If you edit with your own scripts without the API or Reset feature, follow these rules:

- **Remove namespace:** Delete the string before `:`. (e.g. `Mable:Root.r1` → `Root.r1`)
- **Remove suffix:** Remove `.r*` style suffixes. (e.g. `Root.r1` → `Root`)
- **Unparent hierarchy:** Unparent children of nodes starting with `[REF]`.
- **Clean layers:** Move child layers under `[REF]` layers to the top level, then delete `[REF]` layers.

---

### 💡 Recommended approach

The most efficient integration is to **share your studio’s internal Export setup and requirements with us**. While providing guidelines, we often find simpler solutions than expected.

For technical help with structure or integration, contact us anytime.

**OtakuSolutions actively supports building flexible pipelines for your team.**

---

# Ep.25 — Fast-Ref vs Competing Products

> slug: ep25_faq-fast-ref-vs-s-product

> If you need to **manage character references** in 3ds Max, **preserve animations even when rigs change**, and run a pipeline to **send assets to game engines** — this guide is for you.  
> We have laid out an honest comparison of Fast-Ref vs. tools like **S-Product** to help you decide if Fast-Ref is the right fit.

## In One Line

**Fast-Ref** is a reference tool built for game character pipelines.

- Loads rig `.max` files per slot
- When a rigger updates the file, **one Replace** restores animations, Constraints, IK, and more via the **3ds Max official restore API** and **OtakuSolutions own restore algorithm**
- Extends through to **FBX Export** and **batch processing** for Unity / Unreal

**S-Product** also targets animation references — but through a Maya-style **delta (override) approach**, layering changes like keys, controllers, materials, and modifiers on top of a master scene, functioning more as a **general-purpose reference** that coexists with updates to the original.

**Same "animation reference," different approach.**

## Two Approaches — What is Different

| | **S-Product** | **Fast-Ref** |
|---|----------|-------------|
| **Core question** | "Do **my local overrides** survive when the source changes?" | "Do **my keys and Constraints** survive when the rig changes?" |
| **Data model** | Only deltas stored in master scene | Original file as baseline + dedicated backup/restore for anim and Constraints |
| **Source update** | Local overrides kept + source structure reflected | After Replace, merges new rig then restores via **3ds Max official API + OtakuSolutions algorithm** |
| **Best fit** | General collaboration needing **delta overrides** on anim, materials, modifiers | **Rig Replace**-centric game character animation to FBX Export |

Fast-Ref is not a general-purpose tool designed to "replace" 3ds Max built-in XRef. It targets **game studio character reference pipelines**.

## Where Fast-Ref Shines

### 1. Preserve Animation After Rig Updates (Replace)

Designed for situations where an animator's keys must survive when a rigger adds bones or uploads Rig_v02.

On Replace, a combination of the **3ds Max official restore API** and **OtakuSolutions own restore algorithm** preserves and restores:

- Biped, Bone, and Prop animation
- Complex controller types like **TCB, Position List, Rotation List** — **fully supported** (sub-channel and layer-level restore included)
- Constraints (internal/external, including character to prop connections)
- Rigs with IK and Script Controllers
- **Selection Sets** (preserved after Replace / Reload when using Rig Info nodes)

> The most common reason customers choose Fast-Ref in production. Reduces the work of manually migrating keys across dozens or hundreds of action scenes down to a single Replace.

### 2. Game Engine Export

- Reset Root, Remove Namespace
- Unity / Unreal / Unreal_Skel / Unreal_Ani presets
- Per-slot and full-scene FBX Export
- **Fast Ref Batch** — sequential Reload / Export across multiple `.max` files

### 3. Single-File Delivery and Pipeline Independence

**Merge** collapses reference data into a **single self-contained `.max`** file. It can be opened with no source paths needed.

S-Product is a **C++-based plugin** that **requires installation on every team member's machine** — opening a file without it will break the scene. Its Maya-style delta structure also makes handing over a single Max file difficult (requires Embedded or similar).

Fast-Ref returns to **pure 3ds Max nodes** after `Merge` / `Unpack`. The file opens normally when sent to **freelancers or studios without the plugin installed**.  
(A **scene reset script** for client TA teams is also available separately.)

### 4. Multiple Characters and Namespace

A **Namespace + `.r1` suffix** scheme (e.g. `Character_01:Head`) reduces name collisions when placing the same rig multiple times in one scene.  
**Smart Switch + Safe Mode** automatically handles Unpack/Repack when working on Space OFF references.

### 5. Script Automation

**Script API v2.1** (**Python**, UI-independent) — call Add / Replace / Export and more directly from pipeline scripts.  
(S-Product provides a **MaxScript** API.)

## Intentionally Different Design Decisions

The following are **deliberate design choices for pipeline safety**, not shortcomings of Fast-Ref.

### Nested References (A to B to C)

Fast-Ref **does not recommend** nested references.

- Nested structures add significant risk in tracking, debugging, and team collaboration, regardless of the tool.
- In game **character** pipelines, A-to-B-to-C chains are rarely needed in practice.
- Adding a file that is already a Fast-Ref reference triggers an **`N` warning**.

→ If you need to nest environments or props within references, S-Product or a dedicated pipeline may be a better fit.

### Modifiers and Materials — Not Override on Master Scene

Fast-Ref does **not** stack Edit Poly or override materials locally in the master scene.

- **The source `.max` is the single source of truth.**
- Modifiers, materials, and mesh structure from the source are **naturally reflected** on Reload / Replace.
- Changes to rig structure and shading are made in the **source rig file** — that is the premise.

→ If applying materials or modifiers as local overrides in the master scene is a significant part of your workflow, S-Product delta override approach may be a better fit.

## Feature Comparison — Production Perspective

### Reference and Scene Management

| Feature | S-Product | Fast-Ref |
|------|:-----:|:--------:|
| Multiple reference slot management | ✅ | ✅ |
| Nested references (A to B to C) | ✅ | △ Not recommended (`N` warning) |
| Namespace / Suffix | △ Name/Prefix-based | ✅ Namespace + suffix system |
| Duplicate/nested file detection | — | ✅ `N` / `D` tags |
| File state tracking | Per reload option | ✅ OUTDATED / MISSING / CONVERTED |
| Convert to Reference | — | ✅ |
| **Deliver as single file without source** | △ Difficult due to delta structure (Embedded etc. required) | ✅ Single `.max` delivery via **Merge** |

### Animation and Rigging

| Feature | S-Product | Fast-Ref |
|------|:-----:|:--------:|
| **Keys and controllers in master scene** | ✅ Track-level override | ✅ Keys and animation in master scene. <br />On Replace, restored via **3ds Max official API + OtakuSolutions algorithm** |
| **TCB, Position List, Rotation List** | △ TCB partial — needs verification | ✅ **Fully supported** (List sub-channel and layer-level restore) |
| Biped IK and IK Blend preservation | △ (varies by environment and rig) | ✅ Proprietary restore algorithm |
| Script Controller rigs | △ Risk if source variable structure changes | ✅ Proprietary restore algorithm |
| External Constraints (character to prop) | ✅ Override | ✅ Proprietary restore algorithm |
| **Selection Set** | ✅ | ✅ Preserved after Replace / Reload using Rig Info nodes |
| CAT rigs | ✅ Official support | △ Biped / Bone / Custom-centric (trial recommended for CAT) |
| Modifiers and Materials | ✅ Local override in master scene | ✅ **Auto-reflected from source** (no local override) |

### Pipeline and Support

| Feature | S-Product | Fast-Ref |
|------|:-----:|:--------:|
| **Retail price (perpetual, 1 seat)** | **$189** | **$95** (Fast Ref Batch included) |
| FBX Export (engine presets) | △ Max default export | ✅ Built-in + Batch |
| Batch Reload / Export | △ Manual scripting required | ✅ Fast Ref Batch |
| **Script API** | **MaxScript** | **Python** (Script API v2.0 / coming soon) |
| Multilingual UI | — | ✅ KO / EN / JA / ZH |
| **Plugin required for all team members** | ❌ **Required** (C++ — scene breaks on non-installed PCs) | ✅ **Not required** |
| **File delivery to freelancers/external** | ❌ Recipients must also install | ✅ **No install needed** (pure Max nodes after Merge / Unpack) |
| Supported Max versions | 2020–2027 | 2022–2027 |
| Network render nodes | Free | Free |

## Honest Limitations — Know Before You Buy

Fast-Ref is not a silver bullet. The following is based on official guides and production feedback.

| Note | Details |
|----------|------|
| **English paths recommended** | UI supports KO/EN/JA/ZH. Because it is Python-based, folder/file paths with Korean, Japanese, Chinese, or special characters may cause errors. We recommend keeping paths in English, e.g. `C:\project\rig\`. |
| **Replace processing time** | With large node/animation data sets, backup/restore computation can take dozens of seconds. Varies by scene size and IK usage. |
| **Node renaming** | Renaming bones in the source may break mapping. Namespace reduces collisions, but name changes themselves should be managed by source/pipeline conventions. |
| **CAT and smartAnim rigs** | Development has focused on Biped / Custom Bone. Pre-purchase verification with the **14-day Trial** is strongly recommended for CAT and smartAnim. |
| **General delta overrides** | If you need to manage materials, modifiers, and environment in one delta-based tool from the master scene, consider S-Product. |

## Is It Right for You? — 30-Second Check

| If your team or workflow is... | Consider Fast-Ref |
|-----------------|------------------------|
| Biped / Custom rigs + dozens to hundreds of action scenes | ✅ |
| Preserving anim, Constraint, IK after rig updates is top priority | ✅ |
| Unity / Unreal FBX + batch Export | ✅ |
| Delivering plugin-free .max or single files to freelancers or in-house tools | ✅ |
| Multiple characters of the same rig in one scene (Namespace) | ✅ |

| If your workflow centers on... | Check S-Product or similar first |
|---------------------|-----------------------------------|
| Managing anim + materials/modifiers as delta overrides in one tool | S-Product |
| A-to-B-to-C nested reference chains | S-Product or separate structure |
| **smartAnim-based rigging** | **Consider S-Product** |
| CAT-exclusive pipelines | Trial first, or see FAQ below |

## FAQ

---

**Q. Should I use Fast-Ref instead of S-Product?**

A. **Both handle animation references** — the difference is the approach.  
S-Product uses delta overrides in a master scene to layer changes like keys, materials, and modifiers on top of the original. Fast-Ref uses a dedicated restore engine on Rig Replace to recover Biped IK, TCB List, FBX Export, and more for game character pipelines.  
If frequently updated game character animation is your focus, go with Fast-Ref. If you want animation, look-dev, and environment managed via one tool's delta approach, check out S-Product.

---

**Q. Can I work on animation keys in the master scene?**

A. **Yes.** Fast-Ref supports keying and controller work in the master scene. When the rig file is updated, Replace restores animation, Constraint, IK, and more via the **3ds Max official restore API** and **OtakuSolutions own restore algorithm**. Complex controller types like **TCB, Position List, Rotation List** are fully supported. **Selection Sets** are preserved after Replace / Reload when using Rig Info nodes.

---

**Q. Can I hand off a single Max file with no source?**

A. **Yes, via Merge.** The references are fully merged into a single self-contained `.max`, so the file can be passed along without any source paths. S-Product is more difficult to pass as a standalone file due to its Maya-style delta structure — options like Embedded are required.

---

**Q. Does the file open without the plugin? Can I send it to freelancers?**

A. **Fast-Ref: yes.** After `Merge` / `Unpack`, only pure Max nodes remain — the file opens normally even for **freelancers without the plugin installed**.  
S-Product is a C++ plugin that **requires installation on all team members' machines** — without it, the scene may break.

---

**Q. Why are nested references not recommended?**

A. Nested structures are risky in any tool, and offer little practical benefit in character pipelines. We recommend single-level references; nested files are flagged with an `N` warning.

---

**Q. Can I change modifiers or materials?**

A. Fast-Ref does not use a local override on master scene approach. **Changes to the source are automatically reflected on Reload/Replace.** Edits are made in the source rig file.

---

**Q. How do I automate with scripts?**

A. Fast-Ref provides a **Python** API (v2.1). S-Product provides a **MaxScript** API. Choose based on your studio's pipeline language.

---

**Q. Are smartAnim and CAT supported?**

A. Fast-Ref development and testing focus is on **Biped / Custom Bone**, reflecting that most 3ds Max rigging is Biped-based.  
CAT and smartAnim pipelines are outside the primary scope. However, if sufficient demand is confirmed for those rigs, support may be considered.

- If **smartAnim-based rigging** is your core workflow, S-Product may be the better first choice.
- Before purchasing, always test with the **14-day Trial** using your actual rig files for Replace / Reload.
- If the Trial is not enough and support is essential, contact us at [contact@otakusolutions.com](mailto:contact@otakusolutions.com) with your rig sample.

---

**Q. Can I use it in Korean, Japanese, or Chinese?**

A. **The UI supports Korean, English, Japanese, and Chinese.** You can use the tool and documentation in your language.  
However, for project folder and file paths, we recommend keeping them in English to avoid Python encoding issues. (e.g. `C:\project\rig\character.max`)

## Summary

```
┌──────────────────────────────────────────────────────────────┐
│  S-Product  →  Layers delta changes (anim, materials,        │
│                modifiers) onto a master scene;               │
│                changes persist even when source updates      │
│                (MaxScript)                                   │
│                                                              │
│  Fast-Ref   →  Manages with source rig as baseline;         │
│                even when the rig changes, restores anim      │
│                via 3ds Max API + proprietary algorithm       │
│                (Selection Set kept with Rig Info nodes)      │
│                Merge · Export                                │
└──────────────────────────────────────────────────────────────┘
```

Fast-Ref was built for **game character animation production**.  
It is not the best answer for every 3ds Max reference need — and saying so clearly is, we believe, the way to ensure satisfaction after adoption.

*OtakuSolutions · Based on Fast-Ref v1.2.3 · Contact: [otakusolutions.com](https://www.otakusolutions.com)*