[Feature Request] Better Integration with Optifine CEM
Nomandir opened this issue · 3 comments
I've been using Easy NPC for a while, currently on Forge 1.20.1, v5.5.4. Was experimenting with Optifine CEM and random mobs (using ETF and EMF) and was wondering if there could be better integration with Easy NPC.
While integrating a resourcepack adding both a CEM replacing vanilla models and random variants with different CEMs, I noticed this didn't interact too well with Easy NPC. Using Illagers as an example, they seem to share models in Easy NPC, so right now, all Illager mobs use the custom Pillager model instead of using their own model (e.g. Evoker, Vindicator, etc.), as shown below.
I've found that changing an Easy NPC's model to the correct mob (e.g. Evoker) can rectify the problem but that would sacrifice customizability like custom skins, no displayed names, etc. I've also noticed that random mobs/models works with Easy NPC and for e.g. spawning multiple Evoker NPCs and setting their model to 'Evoker' will render them correctly with the corresponding random model.
While I can accomplish my goals with existing workarounds (creating custom Illager NPCs that match vanilla Illagers with custom/random models), if Easy NPC mobs could recognize individual changes to their respective mob's models (or, use vanilla models regardless for custom skins), that would be amazing.
Thank you for your feedback and for sharing your experience with Easy NPC. I understand the challenges you're facing with integrating resource packs that include Optifine CEM and random mobs, especially when using ETF and EMF.
To clarify, Easy NPC is using the standard vanilla models by default. The customization you see, such as rendering with the pose editor, is handled through an extended version of the MobRenderer. This extension is what allows for the enhanced visual effects and customization options within Easy NPC, but it does not introduce custom models itself.
Regarding the integration issues, it's important to note that ETF and EMF modify core functionality extensively through mixins. This deep level of modification can lead to compatibility challenges, as it alters how models and rendering are handled at a fundamental level. Unfortunately, this limits what can be done from the Easy NPC side alone to ensure compatibility.
For a more seamless integration, changes would likely need to occur on both sides, particularly with ETF and EMF.
This would involve adjustments on their end to better recognize and differentiate between various NPC models, ensuring they are rendered correctly according to the customizations you’ve applied.
I hope this clarifies the situation, and I appreciate your understanding as we work within these limitations. If there are any updates or changes that could improve compatibility in the future, I'll be sure to keep you informed.
Just a quick note: I'm currently working on "raw" NPCs that are directly based on the vanilla models and renderers.
Right now, I only have a Zombie NPC available. Feel free to test it out and see if it performs better with this type of NPC.
You can summon the NPC using /summon easy_npc:zombie_raw
.
Please keep in mind that these raw models are in a very early alpha stage, but they have minimal modifications compared to the original models and renderers. This makes them more compatible with mixins from other mods.
Thanks for sharing how Easy NPC interacts with mods like EMF/ETF! I understand the difficulties of creating compatibilities.
I've discovered that Easy NPCs can be name tagged, allowing one to use CEM/random mobs name tag configs to direct EMF/ETF to use particular skins and models when an Easy NPC uses mob models. This seems to work with presets and spawners as well.
So while EMF/ETF might interfere with Easy NPC's functions currently, I can also resolve issues using EMF/ETF's existing features and Easy NPC's new custom model function and could consider these mods more or less compatible.
Might be useful information for anyone else who might want to attempt something similar to me.