|
Creating a model |
|
# Model
|
|
\ No newline at end of file |
|
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_2.png)
|
|
|
|
|
|
|
|
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
|
|
|
|
* 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:
|
|
|
|
* 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.
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
|
|
|
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](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.
|
|
|
|
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.
|
|
|
|
> ![](https://raw.githubusercontent.com/Ticxo/Model-Engine-Wiki/master/wiki/modeling/ME-Model-2.png)
|
|
|
|
|
|
|
|
## 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)
|
|
|
|
|
|
|
|
## Saving Generic Project (Recommended)
|
|
|
|
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.
|
|
|
|
> ![](https://raw.githubusercontent.com/Ticxo/Model-Engine-Wiki/master/wiki/modeling/exporting.png) |