For all features that are described as matching OptiFine you may follow the OptiFine documentation here:
File names for armor: "MOBNAME_inner_armor.jem" & "MOBNAME_outer_armor.jem"
E.G. "zombie_inner_armor.jem" & "zombie_outer_armor.jem"
The inner armor is the thinner armor layer used by leggings, whereas the outer armor layer is the model used by the rest of the armor
Armor jem models have the following model parts
head, headwear, body, left_arm, right_arm, left_leg, right_leg
Player models are fully supported by EMF and can be animated and varied using the random model feature of OptiFine
File names: "player.jem" & "player_slim.jem"
Player jem models have the following model parts
head, headwear, body, left_arm, right_arm, left_leg, right_leg, ear, left_sleeve, right_sleeve, left_pants, right_pants, jacket, cloak
(yes "ear" is a valid part,all players technically have the DeadMau5 ears in their model)
cloak does indeed refer to the player cape
- The
is_climbinganimation variable, true when the entity is climbing. - The
move_forward&move_strafinganimation variables actually have a function, they function as a measurement of the directionality of a mobs movement relevant to it's facing direction.move_forward&move_strafingare theY&Xco-ordinates for where the entities current horizontal movement vector, compared from their head angle, intersects with the circumference of a unit circle. (with positive Y being the entities facing direction and positive X being 90 degrees to the right of that )move_forwardranges from -1 to 1 and is a measure of how much of an entities movement is directed in their looking direction.- (A player holding only
wwill have amove_forwardof 1) - (A player holding only
aordwill have amove_forwardof 0) - (A player holding only
swill have amove_forwardof -1)
- (A player holding only
move_strafingranges from -1 to 1 and is a measure of how much of an entities movement is directed 90 degrees to the right of their looking direction.- (A player holding only
dwill have amove_strafingof 1) - (A player holding only
worswill have amove_strafingof 0) - (A player holding only
awill have amove_strafingof -1)
- (A player holding only
- A player moving diagonally from their moving direction will have both
move_forward&move_strafingcap out around 0.707. - TL;DR if you add both a "moving forwards" & a "strafing to the right" animation you can effectively multiply them by
move_forward&move_strafingrespectively to get a smooth blend between the two when the models moves around.
EMF supports custom entity models for all modded entities who's model factories appear through the proper 'vanilla' channels, this means mods using other custom model mods are not likely to be supported.
To find out if your modded entity is supported, open the EMF settings screen and open the Tools screen, you will then see a button labelled Print out unknown model info.
If you enable this option and then leave the settings screen, the loading screen will then appear as the game reloads all resources (including models)
EMF will then write details into the game log of all unknown entity models found during this reload.
Depending on what option you set for the setting EMF will either:
- just log all the models information including: part names, .jem file location, possible default pivots & other model values
- log this info AND create an example .jem model for the model and place it in
MC_DIRECTORY/emf/unknown_cem/. (please note these example models are not perfect at this time and are meant as a guide only)
These modded CEM models support all CEM features and can be varied by random models and animated fully.
As explained above EMF can identify unknown models and automatically supports them, with that being said a few Vanilla models not present in OptiFine CEM also get captured by this system.
These are: (modelname # parts)
shield.jem# plate, handleelytra.jem# right_wing, left_wingspin_attack.jem# box
All the listed features below are present in EMF and work just like in OptiFine, with a few exceptions in the next category
- .jem CEM
- .jpm CEM parts
- CEM animations
- CEM random models
- CEM for all entities & block entities
- animation variables
is_in_hand&is_in_item_framedo not currently work and will just returnfalse - some animation variables (especially for block entities & non-living entities) might be a bit off from their values in OptiFine
- Sprites are not currently supported
- Non-CEM features. EMF only supports OptiFine CEM. For other features you will need other mods, like ETF which supports OptiFine random and emissive entity textures.
- possibly more that I've forgotten to mention at this time, let me know if you find something that doesn't work and isn't listed here :)
These issues are known and do not need to be reported
All or some of EMF's features will not work with these mods and cannot be fixed.
- OptiFine - incompatible
- OptiFabric - incompatible
- dorianpb's CEM mod - incompatible
- EBE (Enhanced Block Entities): while this mod is installed custom block entity models will not load, that is because this mod makes them no longer render as entity models.