VRRW animation - OBJ ANIM
Exchange Items, blocks, Steves, entitys to Animated OBJ
📖About VRRW animation - OBJ ANIM
Now with Realistic Surface Net - Smooth terrain mod - Hotkey: M to toggle modes ingame.
✨ OBJ Entity Animator – In-Game OBJ Animation & Modeling Framework
OBJ Entity Animator adds a complete in-game animation, modeling and behavior system for OBJ files to Minecraft.
Import models, animate them, control entity behaviors, create custom creatures, build animated props, render OBJ models as blocks and edit everything without leaving the game.
🚀 What Does This Mod Do?
OBJ Entity Animator includes the following features:
➜ Loads Wavefront OBJ + MTL files from config/objanim/import/...
➜ Replaces entities, blocks and items with 3D OBJ models
➜ Full in-game keyframe animation editor with timeline and part animation
➜ Behavior system (sleep, eat, drink, wander, aggression, emotions, follow, etc.)
➜ Animated OBJ Block for placing animated 3D models into the world
➜ Model Workbench for OBJ import/export, UV editing, texture painting and mesh editing
➜ Export animations as JSON snapshots for other mods/engines
➜ Fully in-game workflow (no external tools needed)
🧩 Features in Detail
📂 Import Folder Structure
On first launch, the mod creates:
► import/entity – models for entities/mobs
► import/block – block models
► import/item – item/handheld models
► import/custommodels – misc models (Steve rigs, props, tools)
► export – exported OBJ files & textures
► customsound – .ogg sound files
► UIelements – GUI thumbnails
► Additional JSON configs: behavior, video settings, debug, unified config
The mod scans these at startup and builds an internal model index.
🧍 Entity Animator & Behavior System
Open the OBJ Entity Editor:
► Keybind: O
Inside you can:
► Choose an entity or load a model manually
► Create activities (idle, walk, attack, sleep, eat, drink, custom…)
► Use timeline-based animation
► Set keyframes per part
► Modify rotation, position and scale
► Assign custom sounds from customsound/
BehaviorConfig GUI allows:
► Sleeping (nightly sleep animation, lying pose)
► Eating / drinking
► Aggression & attack behavior
► Idle emotions
► Follow / wander settings
Vanilla AI is not removed:
preserveVanillaBehaviors = true
🧱 Animated OBJ Block
Registered objects:
► Block: animated_obj_block
► BlockEntity: animated_obj_block
► Item: animated_obj_block
Used for:
► Decorations
► 3D signs / displays
► Machines / moving parts
► Animated statues & props
Performance options:
config/objanim/video/objanim_video.json
🛠 Model Workbench
Item: model_editor
Opens the in-game 3D editing suite:
► OBJ import from import/
► OBJ export to export/
► Mesh editing (vertex editing, transform gizmos)
► UV editor
► Texture painting
► Create new PNG textures
► Includes example Steve models: assets/objanim/models/steve
🖼 GUI Thumbnails & Texture Overrides
► Auto-generate model thumbnails
► Save to UIelements/
► Optional inventory icon override
► Per-category configuration (items, blocks, entities)
🔊 Custom Sounds
To add custom sounds:
► Place .ogg files into config/objanim/customsound
► In the animator:
– Open CustomSoundSelectScreen
– Preview sounds
– Assign to animations or activities
🔁 Model Replacement & Commands
The mod maps imported models automatically to known entities, blocks and items.
Commands:
/objanim reload
Reloads all imported models.
/objanim apply
Applies a specific model to all matching targets.
/objanim apply-all
Applies all imported models in bulk.
🎮 Player Manual
2.1 Installation
► Install NeoForge 21.x
► Place the mod JAR into mods/
► Launch the game once to generate folders
2.2 Adding Your Own Models
Place the model files:
Entities → import/entity
Blocks → import/block
Items → import/item
Misc → import/custommodels
Reload models:
/objanim reload
2.3 Using the Entity Animator
► Press O
► Select entity or choose model
► Create activities
► Open Part Animator
– Select parts
– Add keyframes
– Adjust rotation/position/scale
► Save and preview
► Configure behaviors
► Assign custom sounds
2.4 Using the Animated OBJ Block
Get block:
/give @p objanim:animated_obj_block
Workflow:
► Place block
► Open block editor
► Select OBJ model
► Select animations
► Configure orientation, scale and settings
► Adjust performance in video/objanim_video.json
2.5 Using the Model Workbench
Get item:
/give @p objanim:model_editor
Inside editor:
► Import / edit / export OBJ files
► Edit textures
► Modify UVs
► Edit meshes
► Export results to export/
2.6 Using Custom Sounds
► Add .ogg files to customsound/
► Inside animator:
– Select sound
– Preview
– Assign to activities/keyframes
2.7 Thumbnails & UI
► Thumbnails stored in UIelements/
► Enable/disable in unified config
► Optional inventory overrides
🛠 Modder Documentation / Integration Guide
3.1 Adding OBJAnim as a dependency
mods.toml:
[[dependencies.yourmod]]
modId="objanim"
type="required"
versionRange="[0.2.0,)"
ordering="NONE"
side="CLIENT"
Or optional:
type="optional"
3.2 Using ModModelAPI
// Load a model
OBJModel model = ModModelAPI.loadModel("entity/sheep_custom");
// List models
var lists = ModModelAPI.listModels(ModModelRegistry.ModelCategory.ENTITY);
// Search
var dragons = ModModelAPI.findModels("dragon");
// Preload
ModModelAPI.preloadModel("entity/sheep_custom");
Use for:
► Custom renderers
► Automatic model loading
► Large model repositories
3.3 Using ModModelRegistry
ModModelRegistry registry = ModModelRegistry.getInstance();
registry.initialize();
var meta = registry.getModelMetadata("entity/sheep_custom");
OBJModel model = registry.getModel("entity/sheep_custom");
Used for low-level metadata and cache handling.
3.4 Using OBJEntityManager
OBJEntityData data = OBJEntityManager.getOrCreate(entity);
OBJModel current = data.getCurrentModel();
String activity = data.getCurrentActivity();
int tick = data.getAnimationTick();
Use for:
► Reading animation state
► Triggering particles
► Context-based effects
3.5 Using ItemDisplayAPI
String path = ItemDisplayAPI.getObjModelPath(stack);
if (path != null) {
OBJModel model = ModModelAPI.loadModel(path);
}
Used for:
► Custom item renderers
► Consistent OBJ model loading
3.6 /objanim Dev Commands
/objanim reload – reload import folders
/objanim apply – apply specific model
/objanim apply-all – apply all models
Ideal for artists and developers.
3.7 Best Practices
► Use optional dependency loading
► Follow the import folder structure
► Load models on the client thread
► Preload large sets for performance
✔ Compatibility & Requirements
► Loader: NeoForge
► Requires NeoForge 21.x
► Minecraft 1.21.x
► Client & Server supported
► Editors & GUIs are client-only