Inspiration Our inspiration came from a simple goal: to empower every creator, especially those new to scripting, to bring their worlds to life with dynamic animation. We saw a common challenge where creating even simple movements—like an opening door or a floating platform—required custom code that could be intimidating. We wanted to solve this by providing a foundational suite of "plug-and-play" tools that make animation accessible, fun, and powerful for everyone.

What it does The Animation Pack is a library of self-contained, interactive assets that allow creators to add complex movement, rotation, and scaling to any object through the editor's property panel, with no code required. The pack includes several key components:

  • MoveAndRotate / MoveRotateAndScale: The foundational tools for simple, single-step animations. These are perfect for doors, platforms, and decorative elements.

  • MultiStepMover: A user-friendly script for creating paths with up to 8 waypoints, allowing objects to follow a set route with consistent timing.

  • Advanced Path System: A modular "Brain" (AdvancedPathMover) and "Node" (WaypointNode) architecture. This system allows for granular, per-segment control over an object's path, enabling unique speeds, pauses, and easing styles for every step of the journey.

  • Trigger-Based Scripts: ScaleOnTrigger and EffectOnTrigger allow creators to build reactive environments. Objects can change size or trigger sounds and particle effects when a player or another object enters a defined zone.

How we built it The Animation Pack was developed entirely within the Meta Horizon Worlds desktop editor, using TypeScript and the Horizon Worlds Scripting API.

Our core philosophy was modularity and ease of use. Instead of one monolithic script, we created a suite of specialized tools that work well together. For our pathing system, we designed a flexible "Brain" (AdvancedPathMover) and "Node" (WaypointNode) architecture. This allows a single "Brain" script to control the moving object, while optional "Node" scripts on the waypoints can override default settings for specific segments.

Every script was designed with a creator-first mindset. We focused on exposing a logical set of properties to the editor panel, with clear and descriptive names like activationMode, moveEndBehavior, and durationPerSegment, allowing for a completely codeless workflow for the end-user.

Challenges we faced One of the biggest challenges was balancing simplicity for new creators with power for advanced users. We solved this by creating two distinct path systems: the simple MultiStepMover for quick results, and the more complex AdvancedPathMover for those who need granular control.

Another challenge was designing an intuitive property interface. We went through several iterations to ensure the property names were self-explanatory and that the default values were sensible, allowing a creator to attach a script and see it work immediately.

Accomplishments we're proud of We are incredibly proud of the modularity and accessibility of this pack. The fact that a brand-new creator can make a complex moving platform with custom easing and end behaviors in under a minute is a huge accomplishment for us .

We're also proud of the "Pro Tips" we integrated into our documentation. We didn't just want to provide a tool; we wanted to teach creators how to get the most out of it. Guiding users on advanced techniques, like creating complex machines through parenting or using empty objects to visually set destinations, helps elevate the entire community's skill set.

What we learned This project reinforced the importance of documentation. A powerful tool is only useful if people know how to use it. Creating the step-by-step guides for each script was just as important as writing the code itself. We also learned that a "codeless" experience is paramount for accessibility. The more control we can give creators directly in the editor properties, the more we empower them to build without friction.

What's next for the Animation Pack We plan to expand the pack based on community feedback. Future updates may include more easing types, additional trigger conditions (like OnGrab), and new scripts for more specialized animations like tracking a player's movement or creating complex sequential animations.

Built With

Share this project:

Updates