3d

Implements 3D character controllers, camera rigs, animation state machines, and navigation in ignifx games.

Updated Sep 5, 2026
One-click install
npx skills add https://github.com/astrum-forge/ignifx --skill 3d-astrum-forge
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: 3d
Source: https://github.com/astrum-forge/ignifx/tree/main/packages/3d/skills/3d
Command: npx skills add https://github.com/astrum-forge/ignifx --skill 3d-astrum-forge

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Building 3D gameplay in ignifx requires wiring together physics, input, animation, and pathfinding by hand. This Skill provides the operational knowledge to add third-person and first-person character controllers, follow cameras with wall collision, Animator state machines with blend trees, and navmesh-driven agents using @ignifx/3d. ## Core Features & Use Cases - Character controllers and camera rigs: Configure ThirdPersonController, FirstPersonController, and ThirdPersonCamera with correct update-phase behavior, input actions, and pointer-lock handling. - Animation state machines: Author .animator.json documents with parameters, transitions, blend trees, and animation events driven by controller state. - Navigation and presentation: Bake NavMeshSurface navmeshes, drive NavMeshAgent companions, and add LodGroup and Billboard components. - Use Case: You are building a third-person game and need a hero that walks, jumps, and sprints with an orbit camera that avoids walls, plus an NPC companion that pathfinds to the player — this Skill gives you the exact component setup, recipes, and gotchas. ## Quick Start Ask the AI to create a third-person character with a follow camera and a baked navmesh in an ignifx project using @ignifx/3d.

Frequently Asked Questions about 3d

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add a third-person character controller in ignifx?

Add a CharacterController from @ignifx/physics and a ThirdPersonController from @ignifx/3d to the same entity, then register physics(), input(), and threeD() extensions. The controller reads Move, Jump, and Sprint input actions by default, and the action names are rebindable fields.

How do I set up an Animator state machine in ignifx?

Attach an Animator component with a .animator.json asset defining parameters, states, transitions, and blend trees. Drive parameters from a Script using setFloat, setBool, and setTrigger, and listen for animation events through animator.onEvent.

Does @ignifx/3d work in headless mode without a GPU?

Yes, almost everything runs under createApp({ headless: true }): the state machine, transitions, animation events, controllers, and navigation all function. Only the skeletal pose output requires a GPU.

Why does my navmesh pathfinding return empty paths in ignifx?

Recast navigation loads as WebAssembly asynchronously, so no navmesh is baked on the first frame and findPath returns empty. Await surface.bake() or connect to surface.onBaked before querying; queries never throw.

Why is mouse look not working in my first-person ignifx game?

FirstPersonController defaults lockPointerOnClick to true, so mouse input is ignored until the player clicks the canvas and the browser grants pointer lock. Set lockPointerOnClick to false for drag-to-look, or drive a gamepad stick in headless tests.

Can two animated characters share one glb model in ignifx?

No. Babylon Lite binds an animation group to one manager, so a second Animator on the same glb is refused and instances would share one pose. Load a second copy of the glb under a different asset address for each animated character.