|
# Model
|
|
# Model
|
|
Model Engine needs model files to display them in game. It is designed to work seamlessly with [BlockBench](https://blockbench.net/), 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.
|
|
Model Engine needs model files to display them in game. It is designed to work seamlessly
|
|
|
|
with [BlockBench](https://blockbench.net/), 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.
|
|
> ![](https://raw.githubusercontent.com/Ticxo/Model-Engine-Wiki/master/wiki/modeling/create_project.png)
|
|
> ![](https://raw.githubusercontent.com/Ticxo/Model-Engine-Wiki/master/wiki/modeling/create_project.png)
|
|
> ![](https://raw.githubusercontent.com/Ticxo/Model-Engine-Wiki/master/wiki/modeling/create_project_2.png)
|
|
> ![](https://raw.githubusercontent.com/Ticxo/Model-Engine-Wiki/master/wiki/modeling/create_project_2.png)
|
|
|
|
|
|
Before moving any further, there are a few very essential concepts you must learn.
|
|
Before moving any further, there are a few very essential concepts you must learn.
|
|
|
|
|
|
## Bones and Cubes
|
|
## Bones and Cubes
|
|
|
|
|
|
When modeling, it is important to know the differences between `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.
|
|
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.
|
|
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:
|
|
|
|
|
|
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.
|
|
* 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
|
|
* Only one axis can have a rotation
|
|
* Cannot be larger than 112x112x112 pixels, or 7x7x7 blocks (technically 3x3x3 blocks, but Model Engine uses display sizes to work around it)
|
|
|
|
> Note: You can hold shift while rotating to restrict your rotation values, however, they can still become illegal. Personally, I (Flame) like to create my model in Blockbench's Block/Item Project because it automatically keeps the rotations legal, then imports them into Generic Project.
|
|
|
|
|
|
|
|
However, `Bone` has less restriction:
|
|
However, `Bone` has less restriction:
|
|
|
|
|
|
* Can rotate with no limits
|
|
* Can rotate with no limits
|
|
* **Cannot be larger than 112x112x112 pixels (To make a model larger than this, combine bones together using parenting.)**
|
|
|
|
|
|
|
|
You can build the entire model with only bones, but since each bone with a model represents an armor stand, it is wise to keep a balance between `Bone` and `Cube`. bones that don't contain any model are considered `Virtual Bone`s, and don't have armor stands.
|
|
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 Bone`s, 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.
|
|
In Blockbench, you can create a `Bone` by adding a folder/group to the outliner. Then, you can start adding cubes into
|
|
|
|
the bone.
|
|
> ![](https://raw.githubusercontent.com/Ticxo/Model-Engine-Wiki/master/wiki/modeling/bone_and_cube.png)
|
|
> ![](https://raw.githubusercontent.com/Ticxo/Model-Engine-Wiki/master/wiki/modeling/bone_and_cube.png)
|
|
|
|
|
|
Let's make a simple humanoid model. Meet Kindletron JR.
|
|
Let's make a simple humanoid model. Meet Kindletron JR.
|
|
> ![](https://raw.githubusercontent.com/Ticxo/Model-Engine-Wiki/master/wiki/modeling/ME-Model-1.png)
|
|
> ![](https://raw.githubusercontent.com/Ticxo/Model-Engine-Wiki/master/wiki/modeling/ME-Model-1.png)
|
|
|
|
|
|
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.
|
|
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!
|
|
> 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
|
|
## Parenting
|
|
|
|
|
|
No, this has nothing to do with teaching children.
|
|
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](https://raw.githubusercontent.com/Ticxo/Model-Engine-Wiki/wiki/Everything-about-animating) the model.
|
|
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](https://raw.githubusercontent.com/Ticxo/Model-Engine-Wiki/wiki/Everything-about-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.
|
|
It is a nice practice to create a parent-child bone hierarchy, so that when animating, bones will stay at the correct
|
|
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.
|
|
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 Kindletron JR. as well.
|
|
Let's do this to Kindletron JR. as well.
|
|
> ![](https://raw.githubusercontent.com/Ticxo/Model-Engine-Wiki/master/wiki/modeling/ME-Model-2.png)
|
|
> ![](https://raw.githubusercontent.com/Ticxo/Model-Engine-Wiki/master/wiki/modeling/ME-Model-2.png)
|
|
|
|
|
|
## Pivot Point
|
|
## 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.
|
|
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.
|
|
> ![](https://raw.githubusercontent.com/Ticxo/Model-Engine-Wiki/master/wiki/modeling/ME-Model-3.png)
|
|
> ![](https://raw.githubusercontent.com/Ticxo/Model-Engine-Wiki/master/wiki/modeling/ME-Model-3.png)
|
|
|
|
|
|
## Saving Generic Project (Recommended)
|
|
## 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](./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.
|
|
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.
|
|
Save the model, texture, and animations by clicking `Files/Save Project`. It should be saved under the `.bbmodel`
|
|
|
|
format.
|
|
> ![](https://raw.githubusercontent.com/Ticxo/Model-Engine-Wiki/master/wiki/modeling/exporting.png) |
|
> ![](https://raw.githubusercontent.com/Ticxo/Model-Engine-Wiki/master/wiki/modeling/exporting.png) |