Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Suggestion] Keybind/Hotkey to toggle 3D layer #125

Open
suitablychosenusername opened this issue Oct 10, 2023 · 7 comments
Open

[Suggestion] Keybind/Hotkey to toggle 3D layer #125

suitablychosenusername opened this issue Oct 10, 2023 · 7 comments

Comments

@suitablychosenusername
Copy link

As some mods changes the player model completely, breaking the second layer in the process, and adding compat for every single one of them could be troublesome/take time, I believe a simple keybind for toggling the 3D renderering on/off could be a great and fast workaround for these cases.

If possible, a keybind that can overlap with another one. For instance, Epic Fight has a keybind to toggle between battle and mining modes. Having the same key to toggle Epic Fight and the 3D layer would simplify the whole process.

@tr7zw
Copy link
Owner

tr7zw commented Oct 10, 2023

No, I don't think that's a good idea. This is an epic fight mod exclusive issue, and that mod also doesn't work with many other of my mods or in general other mods. Either they render the model in a normal way like better combat does, or they don't render the player at all using the Vanilla logic, or they could add explicit 3d skin layer support(still waiting for them to get around to adding first person mod support). Adding a useless hotkey is not the correct solution, and better combat shows that it doesn't have to be like this.

@suitablychosenusername
Copy link
Author

Wow, sorry, "useless hotkey"? I don't know what your deal with Epic Fight is, but that was just an example, I didn't mean to hit a nerve there. Leaving your personal deals aside and focusing on your work, if you have the option to toggle it in your config, then why not have to option to facilitate that in-game with a single keypress for the player? Why would it be "useless" if it would facilitate the access to a feature that the mod already has? I wonder, then, why bother having the option to toggle the 3D skin layer at all if it's useless?

You say it's an Epic Fight exclusive, but you said yourself in another issue: "Don't think that Figura(or any other custom player models) will ever be compatible." (#48). Maybe that changed by now, but that doesn't mean other incompatible mods won't ever appear.

Another user posted an old issue here and said "If I have a mod that changes the player, it leaves the 3d layers there, but it doesn't matter if I can just disable 3d layers for myself." (#25), and that's exactly my point. My suggestion was to simply facilitate the process of opening up the mod list and changing 6 options from time to time because another mod my friends like uses custom models that f-ups my visuals. A couple of mods add the possibility of having a hotkey to, at least, open up their respective config menu (which I find pretty helpful, particularly). 3DSkinLayers doesn't even have that. At least it starts with a number, so it shows up at the top of the mod list...

Also, I said "workaround", not "solution". I agree with you, it's not the correct solution, but it can make mods playable (or rather, tolerable, since 3D Skin Layer doesn't affect gameplay) while the problem doesn't or won't get fixed. You're giving your users the opportunity of using your mod along with any other mod they like that causes skin/model problems together but doesn't crash the game altogether. And that's not for a single mod that you obviously hate, but to every single mod that can cause problems in the future.

@tr7zw
Copy link
Owner

tr7zw commented Oct 10, 2023

I don't know what your deal with Epic Fight

Tldr: I've been getting asked about issues with epic fight for like 2 years now, and I'm just tired of it. I tried to help the devs(both firstperson mod and this one have 1 api class they would have to implement to make them perfectly compatible), but they have yet to do anything. Firstperson, Waveycapes, 3d skin layers, not enough animations, any cosmetics/animation mod basically, all incompatible with it due to how they implemented it, unlike Better Combat, which just transforms the vanilla model.

Wow, sorry, "useless hotkey"?

It doesn't serve any gameplay purpose and isn't even a workaround in this case(same with #25). If it only toggled it for yourself, other players in multiplayer would still be broken while in combat mode. If you don't play multiplayer, then just don't install this mod in the first place. If it toggles it off for everyone, you need to toggle it off when you see someone else in combat mode? It just doesn't make any sense. That's why I think this would be a useless feature since it would literally have no practical use. Right now the correct fix is that they need to implement the transformer class, or to correctly cancel rendering(and in the meantime to just not use both mods at once).

You say it's an Epic Fight exclusive, but you said yourself in another issue: "Don't think that Figura(or any other custom player models) will ever be compatible." (#48)

With that, I meant that they don't correctly fully replace the model. If they did that, this entire mess wouldn't be there in the first place. To clarify: this isn't a bug of this mod, this is a bug of their mod. They skip rendering the vanilla model, but never hide the rest attached to the vanilla model or update the position of it. If they did that correctly, this wouldn't be an issue. That's also why any custom armor, cosmetics, wings, etc don't work with Epic Fight and break the exact same way as this mod.

but it can make mods playable (or rather, tolerable, since 3D Skin Layer doesn't affect gameplay) while the problem doesn't or won't get fixed. You're giving your users the opportunity of using your mod along with any other mod they like that causes skin/model problems together but doesn't crash the game altogether.

And how is that not the case right now? The game doesn't crash, in the normal first person it looks fine, it just has a non-gameplay affecting render bug in 3rd person. If I wanted to be fully correct I could have added it to the breaks list, so the game just doesn't boot up with both installed at the same time.

@tr7zw
Copy link
Owner

tr7zw commented Oct 10, 2023

This also appears to be Epic Fights policy at this point. If you use Epic Fight, don't install other mods that affect the player. Yesssssman/epicfightmod#536

@MetalKnight56
Copy link

MetalKnight56 commented Oct 11, 2023

Hey epic fight developer here. I'm sorry if you feel like we are not doing anything to improve. We are a two man team and since epic fight is a very complex mod its sometimes hard to find time to fix specific compatbilities. We've already found multiple ways in which developers are able to patch their armor to work with epic fight, in fact i myself have made a very detailed walkthrough in how our system works and how you can patch armors .

The thing is, Skin Layers 3D is well, a layer, and it does require other ways to actually fix it, most likely we'll only be able to do it in code side. We've just released our biggest update yet improving our api, and fixing several bugs as for implementing multiple new features. Our next plan is to fist fix geckolib's new armor rendering layer that was introduced in 1.20.1, then adding controllable compatbility, and from there working on the rest of our mod incompatbility list such as skin layers 3D and your first person model mod (Which i've already fixed, but i'm also working on improving our first person anims so i haven't commited the changes yet)

Tldr: I've been getting asked about issues with epic fight for like 2 years now, and I'm just tired of it. I tried to help the devs(both firstperson mod and this one have 1 api class they would have to implement to make them perfectly compatible), but they have yet to do anything. Firstperson, Waveycapes, 3d skin layers, not enough animations, any cosmetics/animation mod basically, all incompatible with it due to how they implemented it, unlike Better Combat, which just transforms the vanilla model.

I'm sorry to hear you've been waiting too long, and of course as a modder yourself you must understand that users don't usually understand how these things work, so i'd suggest maybe setting up a discord bot or simply not answering to these issues all together (We also get these requests all the time, mostly comming from mods such as optifine, but its just how it is in modding). We've already clarified it'll be fixed, but still, we can't say when as we just have a bunch load on our hands.

It doesn't serve any gameplay purpose and isn't even a workaround in this case(same with #25). If it only toggled it for yourself, other players in multiplayer would still be broken while in combat mode. If you don't play multiplayer, then just don't install this mod in the first place. If it toggles it off for everyone, you need to toggle it off when you see someone else in combat mode? It just doesn't make any sense. That's why I think this would be a useless feature since it would literally have no practical use. Right now the correct fix is that they need to implement the transformer class, or to correctly cancel rendering(and in the meantime to just not use both mods at once).

Thanks for the suggestion btw, i'll have a look on our sc and see when we can get that quick patch up and running.

With that, I meant that they don't correctly fully replace the model. If they did that, this entire mess wouldn't be there in the first place. To clarify: this isn't a bug of this mod, this is a bug of their mod. They skip rendering the vanilla model, but never hide the rest attached to the vanilla model or update the position of it. If they did that correctly, this wouldn't be an issue. That's also why any custom armor, cosmetics, wings, etc don't work with Epic Fight and break the exact same way as this mod.

Well the thing is, we add bends, actual bends, so i don't think there's any way for us to implement bends and custom animations by changing the vanilla player model (if you do please share). As mods like BlockBusters also handle the player model the same way that we do, and this goes the same way for mo bends. Mods that add bends completely override the vanilla player render and from what i've seen and learned from all these years of modding there is no capable library or tool that allows for bends without completely overriding the vanilla methods. I'm afraid we are not willing to rewritte the whole mod, as most mods out there already work greatly with epic fight (aside the ones that override the player model, which some like Skin Layer 3D we are working on fixing incompatbilities).

I agree with you that this is indeed our problem and we are still far away from perfect but we are improving each and every update, and i feel like theres some miscredit from your part only and solely to the fact that random users that got no knowledge of how modding work want to play with both mods (imo this just means that they love both projects and they are both great in their own ways).

@suitablychosenusername
Copy link
Author

suitablychosenusername commented Oct 11, 2023

Thanks for the heads-up, @MetalKnight56, that's good to know but my suggestion really has nothing to do with Epic Fight, at least not specifically. It may be an issue caused by the lack of compatibility between both mods, but that doesn't justify deeming the request "useless" and telling the user to unistall the mod when 3DSkinLayers already has this feature implemented on its side and all I'm asking is for a keybind to it...

Tldr: I've been getting asked about issues with epic fight for like 2 years now

I get ya, trully, I'm also a dev (not a modder, though) and I have to deal with this kind of thing every day at my job. But one thing is getting annoyed/irritated by it, other is bluntly refusing a request simply because of a mention as an example of something you have a problem with (that's no different than unleashing your fury in someone else who has nothing to do with the problem).

It doesn't serve any gameplay purpose ... That's why I think this would be a useless feature since it would literally have no practical use.

And so does your entire mod. Not only this one, but most of them are only aesthetical and offer no practical use. And yet you went out of your way to make them, right?

If it only toggled it for yourself, other players in multiplayer would still be broken while in combat mode. If you don't play multiplayer, then just don't install this mod in the first place. If it toggles it off for everyone, you need to toggle it off when you see someone else in combat mode?

You missed my point entirely. Maybe because the overlap suggestion got in the way of your understanding. That overlap idea, specifically, came from a friend that like to use both mods and I really didn't give it much thought, tbh, because I personally don't use Epic Fight.

Here's my specific situation, for better understanding: My friends and I have a private SMP server which uses both Better Combat and Epic Fight, because my friends like EF, but I don't, because it doesn't have the vanilla feel to me, and I'm the sole reason our server has BC. I also use Shoulder Surfing, not only because I like 3rd-person cameras better, but I find it better to fight in 3rd-person too, not only for vanilla MC but mainly with BC, as I have trouble minding the distance between the player and the enemy in fp. And I also like to take screenshots with 3DSL on, because I like the aesthetic it gives. That's why 3DSL is still usable for me even in single player worlds. And since EF's model and controls are behind a toggleable player state and I really don't mind the changes to the mobs, I can still keep it on single player worlds without any need to reload modpacks.

And I really don't want to make a new modpack for single player just to put 3DSL on it without EF, because, first, my pc takes 300s+ to load the modpack, even with Lightspeed and other performance-enhancing mods. That's 5+ minutes of waiting. And second, it's kind of a waste of space seeing EF is toggleable in-game and 3DSL already has the option to toggle the 3D render on their config. And even though the modpack doesn't take much space, having duplicates is still a waste for me. But, unlike EF, every time I change between single and multiplayer or wish to take a screenshot while at the server, I have to open the mod list, open 3DSL's config and toggle 6 buttons, when it all could be accomplished with just a single keypress.

My point in the og post being that this could be useful to other people who uses mods with CPMs as well, not for changing between worlds, because I think that's my own specific problem, but to take screenshots or even recording videos without the need to open up the config, just like Iris has a keybind for toggling shaders, which I use and abuse bc I don't have the most robust pc in the market, as you can notice, but I do like to activate shaders when I find a specific place worth a screenshot in-game. Once I take it, I press the key again and done.

@tr7zw
Copy link
Owner

tr7zw commented Oct 11, 2023

We are a two man team and since epic fight is a very complex mod its sometimes hard to find time to fix specific compatbilities.

I'm alone and maintain my ~12+ projects as a hobby, so I feel this. Thats also why I error on the side of "worst-case just remove my mod if your explicit edge case doesn't work".

and from there working on the rest of our mod incompatbility list such as skin layers 3D and your first person model mod (Which i've already fixed, but i'm also working on improving our first person anims so i haven't commited the changes yet)

Sounds good. I'm also reachable on the Epic Fight discord for questions, and can provide some examples from making Better Combat/Emotecraft compatible(via https://modrinth.com/mod/playeranimator).

I'm sorry to hear you've been waiting too long, and of course as a modder yourself you must understand that users don't usually understand how these things work, so i'd suggest maybe setting up a discord bot or simply not answering to these issues all together (We also get these requests all the time, mostly comming from mods such as optifine, but its just how it is in modding). We've already clarified it'll be fixed, but still, we can't say when as we just have a bunch load on our hands.

Yea, in my case 90% of all mod compatibility questions I get is usually either Epic Fight, MrCrayfish's Gun Mod or TLauncher breaking 3d Skin Layers(thankfully not Optifine anymore). At some point, it just gets really tiring to explain the same thing every time, hence my slightly annoyed response.

Thanks for the suggestion btw, i'll have a look on our sc and see when we can get that quick patch up and running.

One really crude and simple fix might be hiding all render layers where the mod doesn't know whether they are compatible, or really skip the entire player model rendering, where the render layers are a part of as well. Another thing might be keeping the vanilla model part visibility flags in sync with the custom model. For example if Epic fight sees that the player head is set to invisible, also set the custom player head invisible(that logic would for example fix FirstPerson). On the other hand it could then set the entire model to be invisible, which would hide the floating 3d layers(as they check for the body part to be visible before rendering).

Well the thing is, we add bends, actual bends, so i don't think there's any way for us to implement bends and custom animations by changing the vanilla player model (if you do please share).

The before-mentioned https://modrinth.com/mod/playeranimator kinda does that. They just move the vanilla model and apply the bends afaik using some shader magic. Of course, this also doesn't fix that the 3d layer then won't bend on its own, but it renders in the correct location and replaces the 2d vanilla layer, as these parts are still the vanilla model as usual. Better Combat is using it without introducing bends for style reasons, and 3d skin layers was compatible without any changes.

And so does your entire mod. Not only this one, but most of them are only aesthetical and offer no practical use. And yet you went out of your way to make them, right?

My point is that it just breaks the entire premise of the mod. It's supposed to be an "install it, and it just works" kind of thing. Instead of creating this bodged workaround where no one is happy in the end I could use the same time to look into the epic fight source, find how to detect that it's enabled, and then just skip rendering the layer, making it "compatible"(2d, but not worse than usual). And my example applies to any other mod replacing the player model. It just feels like a massive waste of my time and the user's time to add this clunky and broken workaround.

just like Iris has a keybind for toggling shaders

Yes, and that makes sense, like my FirstPerson mod having a toggle for that. These are gameplay and performance-impacting things, where being able to toggle them on/off on the fly makes sense. Skin layers are not. The only people who use mods to add keybinds to toggle the skin layers on/off either do that to be "funny" or for roleplaying reasons. The layer being 3d or not should not have any gameplay impact that requires on-the-fly toggling it. A different example would be Falling Leaves. If in combination with another mod it turns into a glitchy mess the solution is not adding a keybind to toggle Falling Leaves off any time you see that modded tree. Either don't combine the two, or fix the root issue. Epic Fight has that you are sometimes the normal player model, but with a custom player model mod you are an incompatible model the entire time, so adding a toggle or installing this mod in the first place makes no sense.

Repository owner deleted a comment from NotVexsor Nov 27, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants