niltrace Posted April 8 Posted April 8 I'm currently running on 1.6.1170. I've used FG and SL extensively in the past and am currently running on a collection that is FG based. I don't have any problem getting animations to happen. That's all fine. Problem is, I do sometimes like to mess with the physical size of my PCs in Racemenu in two ways that I believe really messes with syncing the animations. I often will change their height to a level that is taller or shorter than Skyrim's standard for their race, and for the male PCs, especially the Nords, I will also make small tweaks to their calf and thigh lengths because the Skyrim default, IMO, has them stumping around like farmers on too short legs. Reminds me of an uncle I don't like, so I try to fix it. Anyway, is there some way to tell SL and/or FG how big my PC actually is? I'm assuming they must be pulling the standard racial size from somewhere in the game configs. Can that be overridden somehow, or do I just need to accept that my PC can't be special? Apologies if this has already been asked and answered; I couldn't find anything that addresses this specific use case. Thanks for any help you can give!
traison Posted April 8 Posted April 8 What you're asking for is a magical function to disproportionally scale an animation. I'm sure a game engine company somewhere would pay a lot for something like this. Would be a lot easier to toggle NiOverride node transforms in SL like I do. Restore default size before an animation, then restore custom size afterwards. Here's the majority of the code: Spoiler ;; >> Leg length fix for SL animations Function AddThighLengthMod(Actor who, float len) float[] p = new float[3] p[2] = len NiOverride.AddNodeTransformPosition(who, true, true, "CME L Thigh [LThg]", "RMX_Leg_Thigh", p) NiOverride.AddNodeTransformPosition(who, true, true, "CME R Thigh [RThg]", "RMX_Leg_Thigh", p) NiOverride.AddNodeTransformPosition(who, true, true, "CME Body [Body]", "RMX_Leg_Thigh", p) NiOverride.AddNodeTransformPosition(who, false, true, "CME L Thigh [LThg]", "RMX_Leg_Thigh", p) NiOverride.AddNodeTransformPosition(who, false, true, "CME R Thigh [RThg]", "RMX_Leg_Thigh", p) NiOverride.AddNodeTransformPosition(who, false, true, "CME Body [Body]", "RMX_Leg_Thigh", p) EndFunction Function RemoveThighLengthMod(Actor who) NiOverride.RemoveNodeTransformPosition(who, true, true, "CME L Thigh [LThg]", "RMX_Leg_Thigh") NiOverride.RemoveNodeTransformPosition(who, true, true, "CME R Thigh [RThg]", "RMX_Leg_Thigh") NiOverride.RemoveNodeTransformPosition(who, true, true, "CME Body [Body]", "RMX_Leg_Thigh") NiOverride.RemoveNodeTransformPosition(who, false, true, "CME L Thigh [LThg]", "RMX_Leg_Thigh") NiOverride.RemoveNodeTransformPosition(who, false, true, "CME R Thigh [RThg]", "RMX_Leg_Thigh") NiOverride.RemoveNodeTransformPosition(who, false, true, "CME Body [Body]", "RMX_Leg_Thigh") EndFunction Function AddCalfLengthMod(Actor who, float len) float[] p = new float[3] p[2] = len NiOverride.AddNodeTransformPosition(who, true, true, "CME L Calf [LClf]", "RMX_Leg_Calf", p) NiOverride.AddNodeTransformPosition(who, true, true, "CME R Calf [RClf]", "RMX_Leg_Calf", p) NiOverride.AddNodeTransformPosition(who, true, true, "CME Body [Body]", "RMX_Leg_Calf", p) NiOverride.AddNodeTransformPosition(who, false, true, "CME L Calf [LClf]", "RMX_Leg_Calf", p) NiOverride.AddNodeTransformPosition(who, false, true, "CME R Calf [RClf]", "RMX_Leg_Calf", p) NiOverride.AddNodeTransformPosition(who, false, true, "CME Body [Body]", "RMX_Leg_Calf", p) EndFunction Function RemoveCalfLengthMod(Actor who) NiOverride.RemoveNodeTransformPosition(who, true, true, "CME L Calf [LClf]", "RMX_Leg_Calf") NiOverride.RemoveNodeTransformPosition(who, true, true, "CME R Calf [RClf]", "RMX_Leg_Calf") NiOverride.RemoveNodeTransformPosition(who, true, true, "CME Body [Body]", "RMX_Leg_Calf") NiOverride.RemoveNodeTransformPosition(who, false, true, "CME L Calf [LClf]", "RMX_Leg_Calf") NiOverride.RemoveNodeTransformPosition(who, false, true, "CME R Calf [RClf]", "RMX_Leg_Calf") NiOverride.RemoveNodeTransformPosition(who, false, true, "CME Body [Body]", "RMX_Leg_Calf") EndFunction ;; << 1
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now