Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
Model Engine 4 Model Engine 4
  • Project overview
    • Project overview
    • Details
    • Activity
  • Issues 108
    • Issues 108
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Create a new issue
  • Issue Boards
Collapse sidebar
  • MythicCraft
  • Model Engine 4Model Engine 4
  • Wiki
    • Modeling
  • Creating a Model

Last edited by Ticxo Sep 27, 2023
Page history

Creating a Model

Model Engine needs model files to display them in game. It is designed to work seamlessly with BlockBench, which is a free software that can be used for modeling, texturing, and animating.

Note: This page does not focus on explaining how to use Blockbench or texturing. Please watch or read a tutorial online for that.

To start modeling, create a new Generic Model project in the start page. And fill in File Name. File Name would be the ID of the model in Model Engine, so choose wisely.

Before moving any further, there are a few very essential concepts you must learn.

Bones and Cubes

When modeling, it is important to know the differences between Bones and Cubes.

Cubes are each individual cube in a model. Bones are folders for cubes, grouping them up. Model Engine achieves smooth animation by taking a Generic or Bedrock model and splitting it into multiple resource pack compatible models, based on the bones. In-game every bone is represented by an armor stand that wears the new models on its head.

Because the new models are put into a resource pack, Cubes must obey the laws and restrictions of Minecraft Item Modeling:

  • Rotations can only be 0, 22.5, -22.5, 45, and -45. Rotations like 90 and 67.5 do not count.
  • Only one axis can have a rotation

However, Bone has less restriction:

  • Can rotate with no limits

You can build the entire model with only bones, but since each bone with a model uses an entity, it is wise to keep a balance between Bone and Cube. bones that don't contain any model are considered Virtual Bones, and don't have armor stands.

In Blockbench, you can create a Bone by adding a folder/group to the outliner. Then, you can start adding cubes into the bone.

Let's make a simple animal model. Meet Mr. Capybara!

When modeling, make sure you look at the grid in Blockbench and see if your model is facing North. Model Engine uses North as the default forward direction. The grid is 16x16 pixels big, or 1 block big if you need a sense of scale.

Note: Conveniently, the grid is also exactly the ground level of Minecraft. If you want the model to be standing, make sure the feet are touching that grid!

Parenting

No, this has nothing to do with teaching children.
Parenting is when one bone is placed inside another bone. The outside bone is the parent, and the inside bone is the child. This is useful because the child bone will follow the parent bone while animating the model.

It is a nice practice to create a parent-child bone hierarchy, so that when animating, bones will stay at the correct position.
Usually, bones are paired according to their connection. For example, connecting Arm(child) to Body(parent) so that Arm will stick to Body, no matter how Body moves or rotates.

Let's do this to Mr. Capybara as well.

Pivot Point

Each bone has a pivot point. It determines how the part rotates. For instance, the Arm bone should rotate near the side of the Body bone, so you place the pivot point next to the body. All bones should have a proper pivot point, or else they will rotate strangely when you animate it.

You can set a bone's pivot point in BlockBench by selecting the pivot tool, then selecting the bone folder (NOT CUBE), and drag the pivot point.

Hitbox and Eye Height

After creating the model, all there is left is assigning a hitbox and eye height to the model.
The Hitbox works exactly like how vanilla hitboxes do. You can hit it, shoot arrows at it, and the model will get stuck if trying to pass through a gap too small for it.
Eye Height, on the other hand, tells Model Engine how tall is the model. When a mob is short, it tends to look up at you. When it is tall, it looks down on you. Eye Height allows you to set the exact height of your model so the model looks at you correctly. It is also the "breathing" position, where the mob will suffocate if it is in a solid block.

Create both by adding a bone called hitbox with a cube inside. The size of that cube is the hitbox size, and the eye height is the Y value of the hitbox bone's pivot point.
Due to Minecraft's limitations, the X and Z values of the hitbox must be the same. Therefore, Model Engine only reads the largest width of the cube, and ignores the Z size. The hitbox must also obey Minecraft's hitbox limit, which is 64x64x64 in blocks (1024x1024x1024 in pixels).

Shadow

To finalize the model, you can optionally create a shadow for the model to make it more grounded in game. The shadow can be at any size, will always be centered around the model, and be placed on ground level. If the model doesn't have a shadow, there will be no shadow in-game as well.

To create a shadow, add a bone called shadow with a cube inside. The largest width of the cube will be the diameter of the shadow, while the height of the cube is ignored.

Special Bone Behaviors

Model Engine adds many custom bone behaviors by default. These bone behaviors alter the functionality of a bone, such as enabling head rotation, converting bones into seats, or even adding sub-hitboxes. For more information, check out Bone Behaviors.

Saving Generic Project

After creating a model, you'll want to save it of course! Make sure you are using the correct format. Save the model, texture, and animations by clicking Files/Save Project. It should be saved under the .bbmodel format.

Clone repository
Home
FAQ / Common Issues
Commands & Permissions
Configuration

Modeling
  • Creating a Model
    • Hitbox & Eye Height
    • Shadow
  • Bone Behaviors
    • Player Limbs
  • Animating a Model
  • Importing a Model
  • Scriptable Keyframes
  • Optional Tools
MythicMobs
  • Mechanics
  • Conditions
  • Targeters
Citizens (R4.0.4)
  • Trait
  • Commands & Permissions

API
  • Basic
    • Apply / Remove Model
    • Play / Stop Animation
    • Configure Bone Behaviors
    • Mounting / Dismounting Model
    • Per-Player Model
    • Events
  • Advanced
    • Custom Base Entity
    • Custom Mount Controller
    • Custom Importer
    • Custom Bone Behaviors
    • Custom Script Reader
    • Custom Timeline
    • Custom Animation Handler
    • Custom Render Type

Technical
  • Terminology
  • Animation Systems
  • Mount Controllers
Promotional Material