Jump to content

[1.17.1] Apply rotations to ModelPart in different order


Anrza

Recommended Posts

Hello! I want to add tilted ears to some animals. Under ideal circumstances, I'd just modelPart.zRot = t. However, the rotation around the z axis is applied before the other rotations, which makes a big mess of everything.

As far as I can tell, transformation of the matrix M represented by the PoseStack to the result R depending on the rotation matrices X, Y, Z and the translation matrix P is applied as such: R=XYZPM. My solution prior to 1.17 was to extend ModelRenderer and apply the transformations in the order ZXYPM - solving the problem very simply. But since ModelPart - the 1.17 counterpart to the old ModelRenderer - is final, I see no such simple solution.

I see two possible approaches:

  1. Denote T=XYZP. Apply T^-1(ZXYP) to the PoseStack before I ModelPart#render. The ModelPart will then apply T, resulting in my desired ZXYP  transformation. No problem in theory, but quite convoluted in practice.
  2. Consider Z(z)X(x)Y(y). Do some linear algebra and trigonometry to find out (s,t,u) such that X(s)Y(t)Z(u)=Z(z)X(x)Y(y), then ModelPart#setRotation(s,t,u). I haven't done the math on this, so I'm not sure how feasible this is.

Anyone got a simpler solution? Or should I rather do a feature request to make ModelPart not final?

Link to comment
Share on other sites

7 hours ago, Anrza said:

My solution prior to 1.17 was to extend ModelRenderer and apply the transformations in the order ZXYPM - solving the problem very simply. But since ModelPart - the 1.17 counterpart to the old ModelRenderer - is final

you can use Access Transformer to remove the final modifier from the class

Edited by Luis_ST
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • So im full into world generation right now, carving shit for a dimension I'm doing. I understand what the CarvingMask is, if i understand correctly, an array of bits that, for each chunk, marks wether the block the bit represent is (1) or isn't (0) carved. But I'm not seeing what uses it can have. Under what circumstances is good to make and keep track of a carvingmask?
    • Yes, it is possible. You should develop the API as a separate project. Wether you want your mod to have the API integrated or have a dependency on it is up to you. I'd say that for testing the API integration, you should have it separated and add it as a dependency to your mod (at least, thats how I've done it in the past).   I recall there is also option to compile different parts of your project on different jars. Either way, thats more of a forgegradle question, if i understand it correctly
    • forge simply won't boot up no matter how many mods are installed, i tried only the 1.20.1 and 1.20.6 versions and the same thing happened: nothing. the only thing that shows up in the logs is this   [14jun.2024 11:07:34.757] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: ModLauncher running: args [--username, {MINECRAFT_USERNAME}, --version, 1.20.1, --gameDir, C:\Users\{COMPUTER_USERNAME}\AppData\Roaming\com.modrinth.theseus\profiles\s, --assetsDir, C:\Users\{COMPUTER_USERNAME}\AppData\Roaming\com.modrinth.theseus\meta\assets, --assetIndex, 5, --uuid, {MINECRAFT_UUID}, --accessToken, ????????, --clientId, c4502edb-87c6-40cb-b595-64a280cf8906, --xuid, 0, --userType, msa, --versionType, release, --width, 854, --height, 480, --launchTarget, forgeclient, --fml.forgeVersion, 47.2.17, --fml.mcVersion, 1.20.1, --fml.forgeGroup, net.minecraftforge, --fml.mcpVersion, 20230612.114412] [14jun.2024 11:07:34.765] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: ModLauncher 10.0.9+10.0.9+main.dcd20f30 starting: java version 17.0.11 by Azul Systems, Inc.; OS Windows 10 arch amd64 version 10.0 [14jun.2024 11:07:34.946] [main/WARN] [net.minecraftforge.fml.loading.FMLConfig/CORE]: Configuration file C:\Users\{COMPUTER_USERNAME}\AppData\Roaming\com.modrinth.theseus\profiles\s\config\fml.toml is not correct. Correcting [14jun.2024 11:07:34.948] [main/INFO] [net.minecraftforge.fml.loading.FMLConfig/CORE]: Incorrect key [earlyWindowSkipGLVersions] was corrected from null to [] [14jun.2024 11:07:34.948] [main/INFO] [net.minecraftforge.fml.loading.FMLConfig/CORE]: Incorrect key [earlyWindowSquir] was corrected from null to false [14jun.2024 11:07:34.970] [main/INFO] [net.minecraftforge.fml.loading.ImmediateWindowHandler/]: Loading ImmediateWindowProvider fmlearlywindow [14jun.2024 11:07:35.208] [main/INFO] [EARLYDISPLAY/]: Trying GL version 4.6   i tried in two different computers and had the same results help.....
    • Get the latest drivers from their website - do not update via system
    • https://paste.ee/p/2yikd  After installing curse forge and running 1.20.1 with 0 mods, only forge 47.3.1, this report is being yielded. Vanilla minecraft is not crashing, and I initially thought it was a mod issue, but it is clear now there is some sort of interaction between forge and my computer occurring.  Here are my computer specs for anyone wondering: TUF gaming A15 ASUS running Windows 11 Processor: AMD Ryzen 7 4800H with Radeon Graphics, fully updated (31.0.12014.6) Graphics: NVIDIA GeFORCE GTX 1660 Ti, fully updated game-ready drivers (32.0.15.5599)  I have been told this an error code related to graphics drivers, but both my integrated and dedicated drivers are entirely up to date. My AMD drivers have no version to roll back to and have never previously encountered this issue. I am seriously confused by this because I have never had an issue with running forge in the past and frequently play modded MC. This issue was exactly the same when I ran 1.19.2 with Forge version 43.2.0,  again with no mods.  Please help!!
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.