promotional bannermobile promotional banner

VRRW animation - OBJ ANIM

Obj Animator - Items, blocks and entity ingame - blender tool

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.

Discord for Issues and more (Server discriptions, mod guide, server host wiki),

 

 


🚀 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 <modelName>
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 <model> – 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

 

The VRRW animation - OBJ ANIM Team

profile avatar
Owner
  • 11
    Followers
  • 11
    Projects
  • 37.0K
    Downloads

More from bastegkView all