24 · 30 · 60 · 120 FPS Animation Output
QuickMagic Multi-FPS MoCap Guide: Choose, Import and Retiming Correctly
Understand the difference between source-video VFR and fixed animation sampling, choose 24, 30, 60 or 120 FPS for the actual delivery pipeline, normalize problematic phone footage, avoid accidental import resampling, and validate QuickMagic animation in Maya, Unreal Engine, Unity, Blender, iClone and 3ds Max.
Current QuickMagic frame-rate limits
QuickMagic feature and import workflow videos
QuickMagic AI Motion Capture Feature Overview
Shows QuickMagic feature updates, including multi-frame-rate motion output.
Open video on YouTubeQuickMagic AI Motion Capture + Mixamo + Blender Tutorial
Demonstrates a generated QuickMagic motion moving through a Mixamo/Blender workflow.
Open video on YouTubeDo not mix up source, asset and runtime frame rates
1. Source-video frame timing
This describes when camera frames were recorded. A phone file can be constant-frame-rate or variable-frame-rate, even when its metadata reports an average such as 30 FPS.
2. Animation sample rate
This describes how many stored animation evaluations or keys exist per second. QuickMagic's 24/30/60/120 options belong to this category.
3. Runtime render/display FPS
This is how often a game or viewport draws a frame. Engines evaluate animation over continuous time and interpolate between stored curve samples. A 30 FPS asset can therefore play smoothly in a game that renders at 60, 90 or 120 FPS.
Original article graphics and corrections
Source VFR vs. QuickMagic fixed multi-FPS output
Detect VFR with FFmpeg
ffmpeg -i input.mp4 -vf vfrdet -an -f null - FFmpeg's vfrdet filter reports frames with variable and constant PTS deltas. A nonzero variable result is a reason to inspect the file—not proof that it must always be converted.
Convert a problematic phone VFR file to 30 FPS CFR
ffmpeg -i input.mp4 \
-map 0:v:0 -map 0:a? \
-vf "fps=30:start_time=0" \
-c:v libx264 -crf 18 -preset medium \
-c:a aac -b:a 192k -movflags +faststart \
output_cfr30.mp4 FFmpeg's fps filter creates a constant output rate by dropping or duplicating frames as necessary. It preserves a stable timeline but does not perform motion-compensated reconstruction or recover detail that was not recorded.
fps=30 with fps=60 only when the source and intended workflow justify 60 FPS. Converting a 30 FPS source to 60 or 120 merely increases the number of output frames unless a separate interpolation method is used. 1Choose output FPS from the delivery requirements
| Output | Best starting use | Current paid duration | Important caveat |
|---|---|---|---|
| 24 FPS | 24p film, animation and cinematic editorial | 60 seconds | Less dense for very rapid action; do not confuse 24 with 23.976 |
| 30 FPS | General web, creator, prototype and many real-time assets | 60 seconds | A 30 FPS asset can still play smoothly in a high-render-FPS game |
| 60 FPS | Fast combat, sports, VR editing and dense curve work | 30 seconds | More keys, larger files and more cleanup cost |
| 120 FPS | High-speed source footage, retiming and detailed analysis | 15 seconds | Only useful when the source has genuine temporal detail or the take will be conformed |
Frame-count budget
A fixed-rate clip contains approximately duration × FPS samples when animation is baked every frame. Under the current limits, 30 FPS × 60 seconds, 60 FPS × 30 seconds and 120 FPS × 15 seconds each equal about 1,800 sample times. Actual file size also depends on bones, curves, compression and export format.
2Generate the QuickMagic motion
- Upload the original source or validated CFR mezzanine.
- Select full body, upper body, hands, face or the required capture mode.
- Choose the target software/skeleton preset.
- Select 24, 30, 60 or 120 FPS according to the workflow above.
- Choose traveling or in-place motion deliberately.
- Enable applicable physical or anti-penetration optimization.
- Generate and inspect the preview.
- Download the motion and record the selected FPS in the filename or asset metadata.
A useful filename is Actor_Action_QM_60fps_Traveling_v01.fbx. This prevents a later artist from guessing the sampling rate or root behavior.
Maya: set the time unit before retargeting or resampling
- Open Windows → Settings/Preferences → Preferences.
- Set the Maya Time unit to the intended asset or delivery rate.
- Import the QuickMagic FBX.
- Check animation duration in seconds—not only the ending frame number.
- Characterize and retarget with HumanIK or the production rig workflow.
- When exporting with FBX Resample All, remember that Maya uses the host application's frame-rate/time setting.
Unreal Engine: control the FBX animation sample rate
- Import the FBX as skeletal animation and select the correct Skeleton asset.
- Enable Import Animations.
- Disable Use Default Sample Rate when you do not want all curves sampled at 30 FPS.
- Set Custom Sample Rate to 24, 30, 60 or 120, or use 0 for automatic selection.
- Import and inspect sequence duration, number of sampled keys and root motion.
- Retarget with the IK Rig/IK Retargeter when the target skeleton differs.
Unity: verify the imported Animation Clip instead of assuming 30 FPS
- Place the FBX in the Unity project.
- Use the Rig tab to configure Humanoid or Generic and verify the Avatar/root node.
- Enable Import Animation on the Animation tab.
- Preview the clip and verify its start/end frame, duration, root transform and loop settings.
- Review Resample Curves when the source contains Euler curves.
- Test the clip in the Animator at different runtime rendering rates.
Unity's variable runtime timestep and fixed physics timestep are separate from the sample density of an imported animation clip. Do not use Fixed Timestep as a method for correcting the FPS of imported mocap.
Blender: set scene FPS and validate duration
- Set Output Properties → Format → Frame Rate to the intended scene rate.
- Import the QuickMagic FBX with Animation enabled.
- Inspect the imported Action in the Dope Sheet and Graph Editor.
- Confirm the duration in seconds: ending frame divided by scene FPS.
- Retarget to the target armature.
- Use sample/key reduction only after target contacts and motion accents are approved.
Blender defines scene duration from frame range and scene frame rate. For example, 300 frames at 30 FPS and 600 frames at 60 FPS are both ten seconds.
iClone and 3ds Max
iClone
Use Import External Motion or the applicable Reallusion characterization workflow. Select the correct source sampling behavior, inspect motion duration, then use Motion Layer and Motion Correction for target-specific cleanup.
3ds Max
Set Time Configuration deliberately before import or resampling. Use BIP for Biped, FBX/CAT Capture Animation for CAT and a custom retargeter for other rigs. Check whether changing Time Configuration rescales time or only changes display interpretation.
Resampling and conforming are different operations
| Operation | Duration | Result |
|---|---|---|
| Resample 120 FPS to 30 FPS | Preserved | Fewer stored samples over the same seconds; no slow motion |
| Conform 120 FPS samples to a 30 FPS timeline | 4× longer | Quarter-speed slow motion while retaining every source sample |
| Interpret 30 FPS frame numbers as 60 FPS without time compensation | Half as long | Animation plays twice as fast—usually an error |
30 ÷ 120 = 0.25. Common multi-FPS problems
| Problem | Likely cause | Recommended fix |
|---|---|---|
| Animation plays too fast or slow | Frame numbers were reinterpreted at another time unit | Compare duration in seconds and rescale time or restore the correct scene FPS. |
| Phone footage drifts from audio | Uneven VFR timestamps or problematic transcode | Inspect with vfrdet and create a CFR mezzanine when required. |
| 120 FPS output still looks choppy | Low-FPS, blurred or repeated source frames | Use a sharper high-FPS source; extra output samples cannot reconstruct absent detail. |
| Unreal sequence imports at 30 FPS | Use Default Sample Rate is enabled | Disable it or set Custom Sample Rate deliberately. |
| Game at 60 FPS seems unrelated to clip FPS | Runtime rendering and animation sampling were confused | Evaluate motion fidelity independently from render performance. |
| File is much larger than expected | Dense keys at 60/120 FPS | Use the lowest justified rate or reduce keys after final retarget/cleanup. |
| Foot events trigger at wrong time | Clip was resampled or events referenced frame numbers rather than seconds | Rebuild events after the final clip sample rate is established. |
| 24 FPS delivery does not match 23.976 footage | Integer and fractional film rates were treated as identical | Confirm editorial timebase and perform an intentional conform/resample. |
Production checklist
- The source frame timing has been inspected.
- Problematic VFR footage is normalized only when necessary.
- The output rate is chosen from delivery and editing requirements.
- The selected FPS is available within the plan's duration limit.
- The QuickMagic filename records FPS and root-motion behavior.
- The DCC scene's time unit is set deliberately.
- Engine import does not silently force a default sample rate.
- Duration is checked in seconds after every conversion.
- Contacts and root travel are verified after retargeting.
- Runtime render FPS is tested separately from animation quality.
Frequently asked questions
Is QuickMagic multi-FPS the same as VFR video?
No. Multi-FPS means selecting a fixed animation sample rate. VFR video contains uneven source-frame timestamps.
Which frame rates and duration limits are currently available?
Free currently lists 30 FPS up to 30 seconds. Starter and Professional list 24/30 FPS up to 60 seconds, 60 FPS up to 30 seconds and 120 FPS up to 15 seconds.
Should a 60 FPS game use 60 FPS motion assets?
Not automatically. Engines interpolate animation over time. Use 60 FPS assets when the motion fidelity or editing pipeline benefits from denser samples.
Does 120 FPS output improve a 30 FPS source?
It increases output sample count but cannot recover motion that was not captured. Record real high-frame-rate, low-blur footage for genuine fast-motion detail.
How do I detect VFR?
Use FFmpeg's vfrdet filter and inspect the final variable/constant PTS report.
How do I convert a phone VFR file to CFR?
Use FFmpeg's fps filter at the intended rate, preserving the audio stream. The filter drops or duplicates frames; it does not recover missing detail.
Why did Unreal turn my motion into 30 FPS?
The default-sample-rate option samples animation at 30 FPS. Disable it, use automatic source detection or set a Custom Sample Rate.
How do I make 120 FPS animation quarter-speed?
Conform all 120 samples to a 30 FPS timeline so the duration becomes four times longer. Resampling while preserving duration is not slow motion.
Related QuickMagic guides
Validate one short clip before processing the full take
Test the source timestamps, output FPS, target preset and import settings on a short action, then reuse the confirmed pipeline for the longer motion.
Official references and video sources
- QuickMagic: Original multi-FPS article
- QuickMagic: Current FPS and duration limits
- FFmpeg: vfrdet and fps filters
- FFmpeg: frame-rate output behavior
- Autodesk Maya: FBX Resample All and host frame rate
- Epic Games: FBX animation sample-rate options
- Unity: imported Animation Clip settings and curve resampling
- Unity: runtime variable and fixed time steps
- Blender: scene frame rate
- Blender: frame range and duration
- QuickMagic AI Motion Capture Feature Overview
- QuickMagic AI Motion Capture + Mixamo + Blender Tutorial



