Sophisticated Backpacks

Sophisticated Backpacks

89M Downloads

Incompatible with EMF

IranMine123 opened this issue Β· 13 comments

commented

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

  1. Installing both Sophisticated Backpack & Core and EMF mod
  2. Installing a player animation model resource pack (like Expressive Fresh Moves)
  3. 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

commented

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.

commented

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.

commented

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.

commented

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.

commented

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

commented

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?

commented

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

commented

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

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

commented

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
commented

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.

commented

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