Jump to content

How do I do animations on multi-mode engines?


Recommended Posts

That may depend on what animations you're referring to. Is this the exhaust effects (either the flame effects, or ground effects, or both), or heat animation, or gimbal animation? Or a separate deployment animation (or something)?

 

For surface effects, you need two of "ModuleSurfaceFX". Each engine mode of course has a separate "ModuleEnginesFX" or "ModuleEngines", and in the case of the former, they may or may not reference separate effects sections. If they reference separate effects sections, you'll need to make sure both exist.

 

The heat animations should work with a single "ModuleAnimateHeat" or "FXModuleAnimateThrottle", and you can usually use a single "ModuleGimbal" for gimbaling, unless you're doing tricks with the engine mode enabling or disabling nozzles or something.

Link to comment
Share on other sites

3 hours ago, NecroBones said:

That may depend on what animations you're referring to. Is this the exhaust effects (either the flame effects, or ground effects, or both), or heat animation, or gimbal animation? Or a separate deployment animation (or something)?

 

For surface effects, you need two of "ModuleSurfaceFX". Each engine mode of course has a separate "ModuleEnginesFX" or "ModuleEngines", and in the case of the former, they may or may not reference separate effects sections. If they reference separate effects sections, you'll need to make sure both exist.

 

The heat animations should work with a single "ModuleAnimateHeat" or "FXModuleAnimateThrottle", and you can usually use a single "ModuleGimbal" for gimbaling, unless you're doing tricks with the engine mode enabling or disabling nozzles or something.

 

I'm referring to:

	MODULE
	{
		name = AnimatedThrust
		ThrustAnimationName = masamuneThrust
		disableGimbalToggle = False
		dependOnEngineState = True
		dependOnThrottle = True
	}

 

The after-burning engine has it this way:

	MODULE
	{
		name = FXModuleAnimateThrottle
		animationName = TurboJetNozzleDry
		responseSpeed = 0.05
		layer = 1
		dependOnEngineState = True
		dependOnThrottle = True
		engineName = Dry
		weightOnOperational = True
	}
	MODULE
	{
		name = FXModuleAnimateThrottle
		animationName = TurboJetNozzleWet
		responseSpeed = 0.08
		layer = 2
		dependOnEngineState = True
		dependOnThrottle = True
		engineName = Wet
		weightOnOperational = True
	}

I tried to replicate it, but it wasn't doing as I wanted.

 

EDIT: Looking at it now I think I just answered my own question... 

EDIT 2: What I thought didn't work. I must have missed something

Edited by Eskandare
Link to comment
Share on other sites

If you're using BahamutoD's AnimatedThrust module, it's not going to work with a MultiMode.  It only looks for one engine module, so it has no knowledge of the other.

But at this point you're better off using the stock FXModuleAnimateThrottle, which accomplishes the same things and does support multi-modes.  You just have to set the preferMultiMode flag so it knows to look for the MultiModeEngine module rather than either of the individual engine modules.

Link to comment
Share on other sites

1 hour ago, blowfish said:

If you're using BahamutoD's AnimatedThrust module, it's not going to work with a MultiMode.  It only looks for one engine module, so it has no knowledge of the other.

But at this point you're better off using the stock FXModuleAnimateThrottle, which accomplishes the same things and does support multi-modes.  You just have to set the preferMultiMode flag so it knows to look for the MultiModeEngine module rather than either of the individual engine modules.

Excellent! I noticed KM Gimbal was used in that config. I've been having trouble with KM Gimbal not working with the animation, or not working in general. My mover name is correct but for some reason the gimbaling doesn't happen.

Link to comment
Share on other sites

7 hours ago, Eskandare said:

Excellent! I noticed KM Gimbal was used in that config. I've been having trouble with KM Gimbal not working with the animation, or not working in general. My mover name is correct but for some reason the gimbaling doesn't happen.

There's nothing special about setting up KM_Gimbal_3 compared to the stock module.  Just make sure that the thrust transform (and any nozzle parts you want to move with the gimbal), and make sure that the animation doesn't touch the actual gimbal mover.

Link to comment
Share on other sites

6 hours ago, blowfish said:

...and make sure that the animation doesn't touch the actual gimbal mover.

Ahh! This! This is my problem! I forget, how many animations does KSP support? I have heating effects on the control nozzle parts for my engine.

 

Now I have a new problem...

    My hierarchy in unity is fine 

o8BGaPj.png

 

This is may config markup.

	MODULE
	{
		name = FXModuleAnimateThrottle
		ThrustAnimationName = masamuneThrust
		disableGimbalToggle = False
		dependOnEngineState = True
		dependOnThrottle = True
		responseSpeed = 0.007
		preferMultiMode = True // bind to the parent multimode module, not the actual engines.
	}
	
	MODULE
	{
		name = FXModuleAnimateThrottle
		ThrustAnimationName = vaneAnimation1
		disableGimbalToggle = False
		dependOnEngineState = True
		dependOnThrottle = True
		responseSpeed = 0.007
		preferMultiMode = True // bind to the parent multimode module, not the actual engines.
	}
	
	MODULE
	{
		name = FXModuleAnimateThrottle
		ThrustAnimationName = vaneAnimation2
		disableGimbalToggle = False
		dependOnEngineState = True
		dependOnThrottle = True
		responseSpeed = 0.007
		preferMultiMode = True // bind to the parent multimode module, not the actual engines.
	}
	
	MODULE
	{
		name = FXModuleAnimateThrottle
		ThrustAnimationName = vaneAnimation3
		disableGimbalToggle = False
		dependOnEngineState = True
		dependOnThrottle = True
		responseSpeed = 0.007
		preferMultiMode = True // bind to the parent multimode module, not the actual engines.
	}
	
	MODULE
	{
		name = FXModuleAnimateThrottle
		ThrustAnimationName = vaneAnimation4
		disableGimbalToggle = False
		dependOnEngineState = True
		dependOnThrottle = True
		responseSpeed = 0.007
		preferMultiMode = True // bind to the parent multimode module, not the actual engines.
	}

 

Edited by Eskandare
Link to comment
Share on other sites

3 hours ago, Eskandare said:

Ahh! This! This is my problem! I forget, how many animations does KSP support? I have heating effects on the control nozzle parts for my engine.

There's no limit, but I think there's a bug on FXModuleAnimateThrottle where it will only look at the first Animation component it can find in the part.  I think you can attach all your animations to one component, but I've never tried it myself.

Link to comment
Share on other sites

7 hours ago, blowfish said:

There's no limit, but I think there's a bug on FXModuleAnimateThrottle where it will only look at the first Animation component it can find in the part.  I think you can attach all your animations to one component, but I've never tried it myself.

For some reason I'm still having trouble with the animation, it keeps activating and not obeying FXModuleAnimateThrottle. I didn't have any trouble with the other engines in the pack or the previous version I released for 1.04. This one engine is giving me the most trouble overall.

I keep getting frustrated and working on my other two mods (ship hull parts mod and Sperry-like Ball Turrets for BDA), taking a break from this one. I want to release the update to this mod first before I get too into the others.

Link to comment
Share on other sites

are you animating each vector vane individually? That's rather tedious all around don't you think? what exactly are you trying to do? The Vanes open/close based on throttle, plus engine gimbal?

Edited by nli2work
Link to comment
Share on other sites

1 minute ago, nli2work said:

are you animating each vector vane individually? That's rather tedious all around don't you think? what exactly are you trying to do? The Vanes open/close based on throttle, plus engine gimbal?

Yes, I got it to work... once.

Link to comment
Share on other sites

try it this way

gimbalMover->throttleMover->VaneMesh

set the gimbalMovers to the same orientation as the thrustTransform, positioned where the Vanes are; then link the gimbalMovers to the thrustTransform using FXModuleConstraintPosition w/ Orientation = True; Position = False. This will make all the vanes follow the gimbal orientation movements. You have to set the default orientation of the movers exactly the same as thrustTransform since the FXModule doesn't store offsets.

set the throttleMovers to the same orientation and position as VaneMeshes; animate them in a single throttle anim clip. set this to the FXAnimateThrottle

animate the emissive for everything and set this to FXAnimateHeat, make sure only to animate the emissive properties and not the Position/Rotations of the vector Vanes.

If you want more reference grab the PWR210 engine from my sig Old Mod Assets, it's in Unity package so you can see how it's set up. I was using FireSpitter's throttle animation module because stock throttle animate module didn't play well with animateHeat. I think that's been fixed after 0.9.

Edited by nli2work
Link to comment
Share on other sites

22 hours ago, nli2work said:

try it this way

gimbalMover->throttleMover->VaneMesh

set the gimbalMovers to the same orientation as the thrustTransform, positioned where the Vanes are; then link the gimbalMovers to the thrustTransform using FXModuleConstraintPosition w/ Orientation = True; Position = False. This will make all the vanes follow the gimbal orientation movements. You have to set the default orientation of the movers exactly the same as thrustTransform since the FXModule doesn't store offsets.

set the throttleMovers to the same orientation and position as VaneMeshes; animate them in a single throttle anim clip. set this to the FXAnimateThrottle

animate the emissive for everything and set this to FXAnimateHeat, make sure only to animate the emissive properties and not the Position/Rotations of the vector Vanes.

If you want more reference grab the PWR210 engine from my sig Old Mod Assets, it's in Unity package so you can see how it's set up. I was using FireSpitter's throttle animation module because stock throttle animate module didn't play well with animateHeat. I think that's been fixed after 0.9.

Thank you nli2work, your resources are invaluable as always. :D

Link to comment
Share on other sites

  • 1 month later...
This thread is quite old. Please consider starting a new thread rather than reviving this one.

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
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  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.

×
×
  • Create New...