- added
is_first_person_hand
variable to detect then the model part being rendered is the first person player hand - added the
player settings
category in the model settings gui- added a setting to force custom player models to only apply to your own player and not others in multiplayer
- added a setting to forcibly prevent all custom hand animations from playing in first person view
- both are disabled by default
- fixed the
is_sneaking
variable not working correctly, should now line up with all models that have a sneaking pose - added missing variables to the animation docs
- fixed block entities, and some other edge cases, with texture overrides in the model not rendering at all
-
texture overrides now give the
missing texture
texture if the texture wasn't found instead of not applying -
fixed first person hand jittering with certain player animation resource-packs
-
added the
ifb() randomb() catch()
animation functionsifb()
is a boolean returning version ofif()
randomb()
is a boolean returning version ofrandom()
catch(x, c, id)
is a new debug function that will always returnx
unless it had an error in which case it will returnc
.id
is optional and will make the function print the reasonc
was returned to the log with thisid
to identify the printout
-
added the
is_jumping
is_swimming
is_gliding
is_right_handed
animation variables -
added the
modelRule modelSuffix var varb global_var global_varb
random properties -
removed the restriction on entity variables making them only accessible from the declaring model (OptiFine parity) (wolf_collar.jem can now correctly access variables set by wolf.jem on the same wolf)
-
added a model display to the model list in the gui to see the model before exporting its .jem file
-
added attachment points
-
added arrow & spectral_arrow model support
-
added new model parts listed in
OptiFine 1.20.4_HD_U_I8_pre3
-
added variables
distance
is_blocking
is_crawling
height_above_ground
fluid_depth
fluid_depth_down
fluid_depth_up
-
added Global variables, they are specified in the format "global_var.<name>" (float) or "global_varb.<name>" (boolean), they are shared by all mobs and block entities and allow more technical things like counting entities
-
improved rule_index, now correctly applies 0 when no rule is met
-
fixed the
cannot inherit from final class
forge crash returning in v1.3 -
moved the variant property into ETF
-
fixed crash
.jem failed to load java.lang.NullPointerException: Cannot read the array length because "textureSize" is null
-
added the model file name to crash messages where it was missing
-
added
sizeAdd
to the emf model exporting -
the emf model exporting now does 2 export log passes for each model with known OptiFine part names, one pass with, and one without the OptiFine part names. The one without might reveal some extra parts, that do not get used by OptiFine, or have been added by mods
-
EMF model part boxes may now additionally declare
sizeAddX sizeAddY sizeAddZ
, as opposed to justsizeAdd
with OptiFine, for per axis model inflation.sizeAdd
will still work as before, though will be overridden if the others are present. -
added OptiFine part name definitions for
breeze
,breeze_eyes
,breeze_wind
,wind_charge
-
fixed case where "!(arms.visible)" works but "!arms.visible" doesn't in 1.3
-
the directory format for modded models has been changed from
assets/minecraft/optifine/cem/modded/<namespace>/<modelname>.jem
toassets/<namespace>/optifine/cem/<modelname>.jem
- the old directory with the /modded/ folder is still supported for now but is considered deprecated
- this change makes things more consistent with modded name spaces
- the
emf/cem/
directory is also valid in these namespaces as well as the ability to put the<modelname>.jem
file within a folder of the same name, such ascem/<modelname>/<modelname>.jem
-
added a setting for the animation distance LOD setting, to now factor in an entities size to affect larger entities less
-
fixed a crash when methods were directly inverted e.g
!between(....)
-
failed animation expressions will now resolve to
0
when applied to a model part or variable (OptiFine parity) -
supports ETF's new config screen builder
- added a category
Animation math details
which lists and explains all functions and variables registered to the animation math system - added a category
All models
which allows applying certain settings per .jem file as well as selectively disable the loading of certain models - moved a few settings, mostly for the distance LOD, into the new category
performance settings
- added settings into the
per entity settings
category to allows applying certain settings to only those entities
- added a category