animation
Animation principles, techniques, and best practices for 3D animation
What this skill does
# 3D Animation ## Animation Principles ### The 12 Principles of Animation - **Squash and Stretch**: Convey weight, flexibility, and impact - **Anticipation**: Prepare audience for upcoming actions - **Staging**: Present action clearly and unmistakably - **Straight Ahead vs Pose to Pose**: Different animation workflows - **Follow-Through and Overlapping Action**: Natural movement flow - **Slow In and Slow Out**: Natural acceleration and deceleration - **Arcs**: Natural curved paths of motion - **Secondary Action**: Reinforce primary action with complementary movements - **Timing**: Number of frames for action - **Exaggeration**: Enhance actions for clarity and appeal - **Solid Drawing**: 3D form and weight - **Appeal**: Engaging and memorable characters ### Additional Principles - **Weight**: Convey mass and gravity - **Balance**: Maintain equilibrium - **Rhythm**: Create pleasing patterns of movement - **Personality**: Infuse character into movement - **Readability**: Ensure actions are clear and understandable ## Keyframe Animation Techniques ### Keyframing Workflow - **Blocking**: Establish key poses that define the action - **Breakdowns**: Add intermediate poses to define timing - **In-Betweening**: Fill in frames between keys - **Polishing**: Refine curves and add secondary motion - **Review**: Check animation from multiple angles ### Key Types - **Pose Keys**: Define the main poses of an action - **Timing Keys**: Define the timing and spacing - **Breakdown Keys**: Define the transition between poses - **In-Between Keys**: Fill in the motion between breakdowns ### Keyframe Spacing - **Linear**: Constant speed - **Ease In**: Slow start, accelerates - **Ease Out**: Fast start, decelerates - **Ease In Out**: Slow start and end, fast middle - **Custom**: Custom spacing for specific effects ## Procedural Animation ### Procedural Techniques - **Physics-Based**: Use physics simulation for realistic movement - **Inverse Kinematics**: Calculate joint positions from end effector - **Forward Kinematics**: Calculate end effector from joint positions - **Constraint-Based**: Use constraints to drive animation - **Mathematical Functions**: Use sine waves, noise, etc. ### Procedural Applications - **Cloth Simulation**: Simulate cloth physics - **Hair Simulation**: Simulate hair movement - **Particle Systems**: Simulate particles and fluids - **Crowd Simulation**: Simulate crowd behavior - **Vegetation**: Simulate plant movement ### Procedural vs Keyframed - **Procedural**: Dynamic, unpredictable, physics-based - **Keyframed**: Controlled, predictable, artist-directed - **Hybrid**: Combine both approaches for best results ## Animation Curves and Graph Editor ### Curve Types - **Linear**: Straight line between keys - **Bezier**: Smooth curves with handles - **Stepped**: Instant transitions - **Constant**: Hold value until next key ### Curve Editing - **Tangent Handles**: Control curve shape at keys - **Tangent Types**: Auto, Clamped, Linear, Stepped, Free - **Curve Smoothing**: Reduce noise in curves - **Curve Filtering**: Apply filters to curves - **Curve Copying**: Copy curves between attributes ### Graph Editor Techniques - **Offset Keys**: Offset keys for overlapping action - **Scale Keys**: Scale timing of animation - **Mirror Keys**: Mirror keys for symmetrical actions - **Cycle Keys**: Create looping animations - **Bake Simulation**: Convert procedural animation to keys ## Animation Blending and State Machines ### Animation Blending - **Blend Shapes**: Blend between facial expressions - **Blend Trees**: Blend between animations based on parameters - **Layer Blending**: Blend between animation layers - **Additive Blending**: Add animation on top of base animation - **Crossfading**: Smooth transition between animations ### State Machines - **States**: Individual animations or animation groups - **Transitions**: Movement between states - **Conditions**: Rules for when transitions occur - **Parameters**: Variables that control transitions - **Blend Trees**: Blend between animations based on parameters ### Animation Layers - **Base Layer**: Primary animation - **Additive Layers**: Additive animation on top - **Override Layers**: Override base animation - **Masking**: Apply layers to specific body parts - **Layer Blending**: Control layer influence ## Performance Optimization for Animations ### Optimization Techniques - **Reduce Key Count**: Remove unnecessary keys - **Simplify Curves**: Reduce curve complexity - **Use IK/FK Efficiently**: Don't overuse IK - **Optimize Blend Trees**: Reduce blend tree complexity - **Use Animation Compression**: Compress animation data - **Reduce Bone Count**: Remove unnecessary bones ### Real-Time Considerations - **Frame Rate**: Maintain target frame rate - **Memory Usage**: Minimize animation memory - **CPU Usage**: Reduce animation CPU cost - **GPU Usage**: Minimize GPU impact - **Network**: Reduce network bandwidth for multiplayer ### Platform-Specific Optimization - **Mobile**: Lower bone count, simpler animations - **Console**: Medium optimization, balance quality and performance - **PC**: Higher quality, more complex animations - **VR**: High frame rate priority, reduced complexity - **AR**: Real-time performance priority ## Animation Export and Integration ### Export Formats - **FBX**: Most common format, supports animation - **Maya ASCII/Binary**: Maya native format - **Blender**: Blender native format - **Collada (DAE)**: Open standard format - **glTF/GLB**: Web-ready format ### Export Settings - **Bake Animation**: Bake all constraints and IK to FK - **Sample Rate**: Set keyframe sampling rate - **Animation Compression**: Apply compression to reduce file size - **Root Motion**: Include or exclude root motion - **Animation Takes**: Export specific animation takes ### Integration - **Unity**: Import FBX, create Animator Controller, set up animation clips - **Unreal**: Import FBX, create Animation Blueprint, set up animation montage - **Godot**: Import glTF/FBX, create AnimationPlayer, set up animation tree - **Web**: Use Three.js or Babylon.js with glTF animations - **Custom**: Parse animation data and apply to custom systems
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.