Incompatible with EMF
IranMine123 opened this issue Β· 13 comments
Describe the bug
Hello. it seems Backpacks mod is not compatible with Entity Model Features (EMF). the issue is I'm using a resource pack that makes player have better animation which handled by EMF. but the backpack is not get animated. here is a video:
Screen.Recording.2024-11-19.194811.mp4
To Reproduce
- Installing both Sophisticated Backpack & Core and EMF mod
- Installing a player animation model resource pack (like Expressive Fresh Moves)
- doing F5 and backpack animation not synced with EMF
Expected behavior
Compatible with EMF, so I can see backpack is moving within the player's chest
Versions
Minecraft: 1.21.1 Fabric (I don't think its fixed on forge too)
Sophisticated Core: 0.6.50.61
Sophisticated Backpacks: 3.20.19.51
Entity Model Features (EMF): 2.2.2
Entity Texture Features (ETF): 6.2.2
Well this is likely for EMF to add some kind of support for modded layers in general so please report to them...
ok the issue is reposted (Traben-0/Entity_Model_Features#289) to them too but I don't think it gonna be fixed on their side. I mean the EMF project is adding Entity Model Customization which also some other mods like Optifine and etc offer (altough Optifine does'nt offer Player modeling). well the EMF is more like to be a "Core" mod as it adding model customization.
...that compatibility would be complicated and likely prone to errors that I would have to keep fixing when EMF changes.
the stress amount of changing how features work on their side is more, as it might broke the support of resource packs using their feature formatting and the "Core" mods they made compatible. so It's barely they change the features or how their code work.
Well this is likely for EMF to add some kind of support for modded layers in general so please report to them. I don't think I would pursue special kind of compatibility on my side because from first look it seems that compatibility would be complicated and likely prone to errors that I would have to keep fixing when EMF changes.
Well they may be adding a "core" but that is their core which is pretty much a lot of vanilla stuff customization. And any compatibility that I would add would likely use their internal code or even have to change their internal code and internal code is called that because it's not really supposed to be called externally as it can change at any point. So, no mods that totally change how models get rendered can't expect all the other mods to implement compatibilities. That should primarily be on them or other mods can potentially do it if there's a good enough API they can use (which in this case doesn't exist) and they are willing to add the compatibility.
Also when you mention Optifine just know that Optifine is notoriously incompatible with mods, doesn't care about fixing those issues with mods and because of that most mod devs would just tell you to either stop using it or live with the broken rendering they cause in the mods. So mentioning that is like a huge red flag. I am hoping that EMF is more compatible in general than Optifine.
you're right. I think they need a good api and documentation for other developers.
got it. waiting for @Traben-0 response.
I am hoping that EMF is more compatible in general than Optifine.
it is, as it have more features: https://github.com/Traben-0/Entity_Model_Features/blob/master/FEATURES.md
I try to be more compatible
@P3pp3rF1y do the backpacks copy all the rotation and pivot offsets of the body
part of the player? or do they do something else? Like a fixed copy of the vanilla tranforms of body
?
I've had a quick look at the layer renderer and backpack model, it seems like it's fixed values.
Which is totally fine for vanilla but just doesn't leave anything for EMF to affect :/
I will make a note of looking into mixing into BackpackModel.translateRotateAndScale()
to read and apply any EMF custom animation transforms from the parentModel
if it is an EMF model. But I cant guarantee i'll look at it very soon
EMF does have an API with javadocs available here if you are interested in having a look in the meantime, though you wouldn't even need it just to copy part offsets, as the EMF model masquerades as the vanilla model and copying the vanilla body
transforms will also take on EMF animations
forgot the link lol: https://github.com/Traben-0/Entity_Model_Features/blob/master/common/src/main/java/traben/entity_model_features/EMFAnimationApi.java
ooo... so it has an API. coolπ
I've had a quick look at the layer renderer and backpack model, it seems like it's fixed values. Which is totally fine for vanilla but just doesn't leave anything for EMF to affect :/
I will make a note of looking into mixing into
BackpackModel.translateRotateAndScale()
to read and apply any EMF custom animation transforms from theparentModel
if it is an EMF model. But I cant guarantee i'll look at it very soonEMF does have an API with javadocs available here if you are interested in having a look in the meantime, though you wouldn't even need it just to copy part offsets, as the EMF model masquerades as the vanilla model and copying the vanilla
body
transforms will also take on EMF animations
ok, I took a look at this and using the body translateAndRotate
actually simplifies the the render layer code a bit as well so I have made this change and tested with EMF.
Seems to work well, but @IranMine123 if you can try and just confirm that it seems good to you as well would be great.
And @Traben-0 that means there's no need for compat / mixin here :D
Seems to work well, but @IranMine123 if you can try and just confirm that it seems good to you as well would be great.
It's WORKINGπ
THANK Y'ALL for fixing this
(ignore the terrible lag)
but isn't it a lil bit bouncy? π btw this is the resource pack maker's job
Screen.Recording.2024-11-22.013112.mp4
well, it's as bouncy as the player's body because now backpack sticks to it. So yes that would be more about resource pack maker and how bouncy they want the player's body at this point.
This is really great to hear,
just so you are aware sometimes EMF pack makers will leave the body empty and put the cube in extra nested children to make certain animations easier.
There isn't anything you can do about those one's, it's not a best practise to do it that way specifically for it having issues with mods copying body itself