Jump to content

Somewhere to put any knowledge learned about using the .mu plugin.


Recommended Posts

19 minutes ago, Lisias said:

Fully porting the parttools into Blender would be marvelous IMHO

If you are capable of doing that then you might get worshipped as one

of those higher beings.

19 minutes ago, Lisias said:

I have a hint. I'm allowing the InternalModule to automatically calculate the portrait camera position, and I'm getting screwed sometimes. I think the code just gets the seat position and adds half a meter (guess) into the -Z axis.

Just occured to me that adding a camera in the module might be to force it not to use a default position. Allowing you to create custom distance and angles. Will have to experiment and see.

I should be building internals for these.

yBN7yNS.png

And instead I built and have been trying to get this to fly right.

1YM4MWO.png

Link to comment
Share on other sites

10 hours ago, ColdJ said:

but can't find the log outside of it

When you click the button there’s a small pop up at the bottom middle of the screen. Click on that and the cfg lines will be in there.  It outputs both euler angles and quaternions, just select the lines you want and hit copy.

 

10 hours ago, ColdJ said:

I do not know what you mean by share meshes as most models are made up of several meshes within the same .mu file. Taking the Chair mesh from one .mu model and reparenting it in another is easy

When you do this, you’ve made the game load the same mesh geometry twice.  When you use a prop or reference other .mu files with MODEL nodes in the cfg, the mesh geometry only exists once and is just referenced rather than duplicated.  Further it creates the maintenance headache that I mentioned - what happens when you want to update the chair model?  You have to do all that work over again.

Edited by JonnyOThan
Link to comment
Share on other sites

10 hours ago, ColdJ said:

I do not know what you mean by share meshes as most models are made up of several meshes within the same .mu file. Taking the Chair mesh from one .mu model and reparenting it in another is easy.

It's like playing lego. You slice your model in different, independent parts in their own mu file.

Then you glue these lego pieces together. On one of the IVA's I'm doing, I did:

INTERNAL
{
    name = mk1CabinExecutiveInternal
    MODEL
    {
        model = net.lisias.ksp/mkext/Mk1/Spaces/mk1CabinInternal/mk1CabinGenericInternal
        texture = CockpitGeneric, Squad/Spaces/sharedAssets/CockpitGeneric
        texture = CockpitGeneric_NRM, Squad/Spaces/sharedAssets/CockpitGeneric_NRM
    }
    MODEL
    {
        model = net.lisias.ksp/mkext/Mk1/Spaces/mk1CabinInternal/mk1CabinGenericFlatLeftWall
        texture = CockpitGeneric, Squad/Spaces/sharedAssets/CockpitGeneric
        texture = CockpitGeneric_NRM, Squad/Spaces/sharedAssets/CockpitGeneric_NRM
    }
    MODEL
    {
        model = net.lisias.ksp/mkext/Mk1/Spaces/mk1CabinInternal/mk1CabinGenericFlatRightWall
        texture = CockpitGeneric, Squad/Spaces/sharedAssets/CockpitGeneric
        texture = CockpitGeneric_NRM, Squad/Spaces/sharedAssets/CockpitGeneric_NRM
    }
    MODEL
    {
        model = net.lisias.ksp/mkext/Mk1/Spaces/mk1CabinInternal/mk1CabinFloorLeftInternal
        texture = CockpitGeneric, Squad/Spaces/sharedAssets/CockpitGeneric
        texture = CockpitGeneric_NRM, Squad/Spaces/sharedAssets/CockpitGeneric_NRM
    }
    MODEL
    {
        model = net.lisias.ksp/mkext/Mk1/Spaces/mk1CabinInternal/mk1CabinFloorRightInternal
        texture = CockpitGeneric, Squad/Spaces/sharedAssets/CockpitGeneric
        texture = CockpitGeneric_NRM, Squad/Spaces/sharedAssets/CockpitGeneric_NRM
    }
    MODEL
    {
        model = net.lisias.ksp/mkext/Mk1/Spaces/mk1CabinInternal/mk1CabinExecutiveInternal
        texture = CockpitGeneric, Squad/Spaces/sharedAssets/CockpitGeneric
        texture = CockpitGeneric_NRM, Squad/Spaces/sharedAssets/CockpitGeneric_NRM
    }
    MODEL
    {
        model = Squad/Spaces/OverlayMasks/Mk1CabinMask
    }
    MODEL
    {
        model = Squad/Spaces/OverlayMasks/Mk1CabinBorder
    }
	<yada yada yada

The mk1CabinGenericInternal is the common ground between all my cabins. Everything that is equal on all of them.

Then there's the floor and the fancy walls. Some cabins have them on the right, others on the left, and one of them on both sides.

Ditto for the floor.

KSP "merges" them into a single entity on drawing, like we would do by importing assets on Blender. But without effectively duplicating the models in memory.

All these cabins essentially share the same "lego pieces", so I get 4 parts at the cost of the memory footprint of a single one - well, almost. :) But textures and meshes are 99% (or more) of the total memory footprint of a part, so the savings are huge.

Link to comment
Share on other sites

Posted (edited)
1 hour ago, Lisias said:

KSP "merges" them into a single entity on drawing, like we would do by importing assets on Blender. But without effectively duplicating the models in memory

Seems complicated but think I get what you are doing. The various pieces are like props that are added to the base mesh, which in this case is a centred cylinder so you don't have to worry about the different offsets that you get with different cockpits. And you are referencing Stock textures to save on having to have your own. Though if you just make up your own texture pic that includes every texture you need and stored in the same folder then you could save yourself having to add those 2 lines in every model call.

I checked and the default setting for the "Internal Seat" module has a camera placed looking at where the kerbals face should be. So if you don't want a unique camera angle then that can be left out of the .mu

For your camera getting blocked problem, if the bits that are blocking are bits you can edit, try changing the mesh layer to 20 in blender (default is 16) I will put the list off the front page of this thread in a spoiler and you can see why this might work,

 

Spoiler

Layers in KSP

There are 32 layers available. This is a hard limit in Unity. Layers 0 to 7 are reserved by Unity.

  • 0: Default (Unity built-in): All external visible parts that interact.
  • 1: TransparentFX (Unity built-in)
  • 2: Ignore Raycast (Unity built-in)
  • 3:
  • 4: Water (Unity built-in)
  • 5: UI (Unity built-in)
  • 6:
  • 7: (  @Ger_space said : found Layer 7: its the editor Gizmo handles in the SPH and VAB. )
  • 8: PartsList_Icons
  • 9: Atmosphere
  • 10: Scaled Scenery
  • 11: UIDialog
  • 12: UIVectors
  • 13: UI_Mask
  • 14: Screens
  • 15: Local Scenery
  • 16: kerbals/ Internals and their props. Everything in the heirachy must be set to layer 16, compared to external models the scene is rotated 180 degrees around the blender Z axis then 90 around the X axis.
  • 17: EVA
  • 18: SkySphere
  • 19: PhysicalObjects
  • 20: Internal Space: Used to prevent IVA camera views being blocked by props or hull parts also used when creating internal props)
  • 21: Part Triggers: Airlocks and Ladders etc, Must be tagged as to their function and have the boxes for trigger and separate ticked.
  • 22: KerbalInstructors
  • 23: AeroFXIgnore: Prevents parts from showing aero effects
  • 24: MapFX
  • 25: UIAdditional
  • 26: WheelCollidersIgnore: Layer for the wheel collision enhancer.
  • 27: WheelColliders: Used for the flat wheel collider, this tells the game where the wheel interaction is to be. It is the radius in the config that sets height of visible wheel to ground. If the radius is too large you will bounce high on spawn, too low , wheel will spin but not move.
  • 28: TerrainColliders
  • 29: DragRender
  • 30: SurfaceFX
  • 31: Vectors

@Lisias

I found that my thrust transforms had skewed slightly in my Hot Air Balloon and fixed them, all stable now.

While adjusting the atmosphere curve I realised I had a solution for my Helicarrier, so it doesn't just keep flying higher and higher while you a circling to land on it. Yay.

9ZNu2oE.pngp3Ihfjn.png

Edited by ColdJ
Link to comment
Share on other sites

13 minutes ago, ColdJ said:

Seems complicated but think I get what you are doing. The various pieces are like props that are added to the base mesh, which in this case is a centred cylinder so you don't have to worry about the different offsets that you get with different cockpits. And you are referencing Stock textures to save on having to have your own. Though if you just make up your own texture pic that includes every texture you need and stored in the same folder then you could save yourself having to add those 2 lines in every model call.

Yep, but since I wanted the internals to look nice with the Stock ones, reusing the original Textures is the best solution.

 

15 minutes ago, ColdJ said:

For your camera getting blocked problem, if the bits that are blocking are bits you can edit, try changing the mesh layer to 20 in blender (default is 16) I will put the list off the front page of this thread in a spoiler and you can see why this might work,

Humm... I can set the mesh layer on blender? How? (feeling like a noob now! :D ).

Link to comment
Share on other sites

4 minutes ago, Lisias said:

Humm... I can set the mesh layer on blender? How? (feeling like a noob now! :D ).

Select the mesh in blender, go to object properties ( right side , looks like an orange cube in BforArtists) when it is clicked, scroll down to the bottom of it's section. You will see a box you can type in that says Layer, it should currently have a 16 in it as you are working with an internal. click on it, you will then be able to edit the number, hit enter and now the layer is changed.

Link to comment
Share on other sites

6 hours ago, Lisias said:

KSP "merges" them into a single entity on drawing, like we would do by importing assets on Blender.

Well they generally will be separate draw calls. But at least the mesh geometry isn’t duplicated.

Link to comment
Share on other sites

41 minutes ago, JonnyOThan said:

Well they generally will be separate draw calls. But at least the mesh geometry isn’t duplicated.

How KSP does it it's really out of the scope of this. I think it could even be undesirable to know.

What matters from our point of view is that everything works as you had loaded them from a single mu file.

I fact, I quoted "merge" in an (apparently futile) intent to use the word as an allegory instead of the factual meaning, as I don't have any insight as how KSP really does it under the bonnet. :)

Link to comment
Share on other sites

29 minutes ago, Lisias said:

How KSP does it it's really out of the scope of this. I think it could even be undesirable to know.

Well, no, it has pretty significant performance impacts.  It's important to understand what's going on under the hood so you can make good decisions about how to build content.  Most of this stuff is not specific to KSP though; it's general Unity knowledge.

Edited by JonnyOThan
Link to comment
Share on other sites

34 minutes ago, JonnyOThan said:

Well, no, it has pretty significant performance impacts.  It's important to understand what's going on under the hood so you can make good decisions about how to build content.  Most of this stuff is not specific to KSP though; it's general Unity knowledge.

Please measure it. Last time we talked about performance, I had benchmarks to support my claims.

On a (minimalist and naive, admittedly) measure here I could not detect any performance differences between using a monolithic mu file, and the legolized ones I'm preferring to use now. I can detect (small) measurable savings in memory, but could not detect any performance ones.

Link to comment
Share on other sites

9 hours ago, Lisias said:

detect any performance differences between using a monolithic mu file, and the legolized ones I'm preferring to use now

Right I wouldn’t expect much difference at all at that scale. We’re talking about 4 draw calls vs one.  Each frame is usually on the order of tens of thousands of draw calls.  You only really need to start caring when you expect the impact to be multiplied hundreds or thousands of times.  For example this is significant when dealing with props.  And again it’s a trade off - maintainability vs memory vs speed - so you need to know what’s going on in order to make good decisions.  And, yes, profile it :)

 

Link to comment
Share on other sites

On 6/12/2024 at 3:40 PM, ColdJ said:

Now to control surface. You can have multiple control surfaces on one wing but each must have it's own named transform and it's own module in the config.

I messed up with multiple transforms to rotate all parts of a VTOL engine simultaneously using only one ModuleControlSurface to bind it's deployment angle to a joystick axis. That didn't work initially but FXModuleConstrainPosition did the trick. The nozzleTransform.001 was parented to the control surface, nozzleTransform.002.... etc  were parented to transforms with unique names that copied the rotation of a control surface transform using FXModuleConstrainPosition

Link to comment
Share on other sites

@Manul

Hi, why bind vtol engines to a Module control surface?

If they just transition from hover to forward then a generic animation would do. Each pivot in the model is unique but you give them all the same animation name and when you toggle in game they would all turn.

Or you could make them a hinge or servo if you have "Breaking Ground" installed so that you can have fine graduated control. They would just need to be a separate engine, or pair from the main model.

Link to comment
Share on other sites

46 minutes ago, ColdJ said:

Hi, why bind vtol engines to a Module control surface?

It's the easiest way to rotate an engine to any angle using action groups or axis using Deploy action and DeployLimit axis. OPT Legacy and Mk2/3 expansion engines use this trick to have 180 degrees of freedom, and they allow to do some crazy maneuvers when used together with the right hardware setup.

Now I'm trying to make an engine with multiple nozzles rotating about 45 degrees and assign their rotation to RCS translation axis that would (in theory) allow to do some UFO-style tricks without breaking the space-time and messing with gravity

Link to comment
Share on other sites

3 minutes ago, Manul said:

It's the easiest way to rotate an engine to any angle using action groups or axis using Deploy action and DeployLimit axis. OPT Legacy and Mk2/3 expansion engines use this trick to have 180 degrees of freedom, and they allow to do some crazy maneuvers when used together with the right hardware setup.

Now I'm trying to make an engine with multiple nozzles rotating about 45 degrees and assign their rotation to RCS translation axis that would (in theory) allow to do some UFO-style tricks without breaking the space-time and messing with gravity

All sounds very cool. You should try some servo based ones as well to be able to have 360 degree rotation.

If you get it how you want it some day, would love to check out your mod and see your vision.

Link to comment
Share on other sites

8 minutes ago, ColdJ said:

If you get it how you want it some day, would love to check out your mod and see your vision.

Feline Utility Rovers has some hover engines with their gimbals controlled by RCS, so it's not something new. But these engines rely on a plugin to do all the hover stuff and they often end up facing the wrong direction.

Link to comment
Share on other sites

Posted (edited)

Animation

I just recently worked out how to animate colour and light sources myself, rather than rely of material properties or light sources from other models.
So here are the 3 types of animation I am aware how to do.

First: Physical animation, being able to make a mesh change location, change rotation or change scale. Go to the Animation work space.
First highlight the mesh in the heirachy that you wish to animate. Then go to the setting shown in the pic below to choose what type of animation you want to do, you will see that you can choose a single or combination of types.
Once chosen and showing in it's box you can insert your first Keyframe, using the small white key you can see in the pic. This usually defaults to frame 1. Though you can start at other frames it is best to start all animations at frame 1 and then if you don't wish them to do anything till another frame, move the frame positioner to the frame of your choice (Frame positioner is the green line in the pics and can be dragged by the mouse.) and then add a keyframe without changing anything. Then drag to the next frame you wish and use the tools in the workspace to change what you want, repeat till you have what you want and make sure you have put a keyframe at the end of your animation. You can actually animate several meshes at once, making sure to change and keyframe each one at each point you choose in the animation, this allows you to see how one mesh affects another as you go, especially as any mesh parented inside another will be changed by the parent as you change it. For my example I am just changing one scale dimension.

Don't worry about the right side in the pics, I forgot to highlight the cube before taking the screenshots.

Spoiler

NwGHq4H.jpegDMZxHqM.jpeg

Second: Animate a meshes colour, generally used to make engine heat effects. the animation can be used by the "Throttle Animation Module" (Look in Squads Ion Engine to see an example.) Highlight a mesh you have made and give it a new Material Property, go down to the KSP shaders section of material properties and from the list choose "KSP/unlit". Go to the texture section and the "_MainTex" "Name:" to the name of the texture pic you are using. (Remember you are not changing "_MainTex" to something else but rather the reference name found in the box under where it says "Name:" (Usually it is defaulted to say "White" or "Grey")(best to choose a white or very light colour texture on your pic for the mesh) Then go down slightly further and open the drop down that says "Colors" and open it up. It should be defaulted to have a black rectangle box under the "Name:" section. Left click on the black box and you will see a pop up with a circle, choices and a slider.

Spoiler

RI744Su.jpeg

As this example is for a heat effect, leave this as is and then right click the same box and a small menu will come up. At the top of the menu it has the option of "Insert keyframe" . Left click it and then open the Animate workspace. If you have left the frames at frame one from the last exercise then you will see the dots that show you have inserted a keyframe at frame one, if not then remove the keyframe and reset to frame one before redoing. Then move to the frame you want to end on and go left click on the color box to open the popup. Drag the slider on the right all the way up and you will see the circle is a colour palette. Drag the selection dot around till you get the colour you want, then go back out, right click on the color box and choose add keyframe. ( obviously for an effect where it goes through multiple colours you could add more keyframes to your animation, changing the colour each time.) And there you have your animated colour.

Spoiler

sSFH5oo.jpeg

You can add lights from the Add menu, remember to reparent them into your heirachy. (note the 4 blue boxes in the "Culling Mask" section. These are the ones needed to cause models and ground to be affected by a light source without lighting things you don't want lit.)

Spoiler

8DnaXBC.jpeg

Adding an effect where the light source goes from dark to light is very similar to changing the colour but now we are using the Light properties. Same idea, in the box that has a number and a W for Watts, change the number to zero, then right click and then click "Add Keyframe", go to the Animate workspace and move to your end frame, go change the number to Watt value that you want the light to brighten to, then insert a keyframe as before. Remember you can set the colour of your light using the box above the number. This could also be used in conjunction with the colour animation to make lights that you want to come on gradually.

Spoiler

e1GJMur.jpeg

Now to finish any animation you need to name it. This is the name the animation module will reference in your config file. In the Animation workspace to the left just above the frames section are 4 small boxes, we have been working with the far left to add frames, now we use the far right to name them.(Looks like little rectangles stacked) Open up the dropdown you see linked to your mesh, material or light name, double left click on the "NLA Tracks" you see and type the name you want, hit enter. You have named that particular animation. Repeat for each. So far it seems that if you name the physical animation the same as the others it doesn't export correctly, so best to name it differently.

Spoiler

yTa7gPG.jpeg

So far I know of no way to see the light and colour animations on the mesh in blender, but if you look at the properties set to the first frame, then look at them set to the last frame, then you should see the change if it has worked.

Edited by ColdJ
Link to comment
Share on other sites

2 hours ago, ColdJ said:

(note the 4 blue boxes in the "Culling Mask" section.

Cool stuff!  Setting the culling mask correctly is often overlooked.  For a light in IVA, you want only layers 16 and 20 checked - that’s the first and 5th in the bottom left group (it starts counting from 0)

Edited by JonnyOThan
Link to comment
Share on other sites

32 minutes ago, JonnyOThan said:

For a light in IVA, you want only the 16th and 20th boxes checked - that’s the first and 5th in the bottom left group.

Interesting. Squad must not have thought about this when they were building internals originally, as only the very last internal by date that they put out (not looking in DLC)doesn't have every box filled. The crewCabinInternals is the only one to only have 16 filled.

As the internals build layers are 16 and 20 I guess the correlation makes sense.

Link to comment
Share on other sites

1 hour ago, ColdJ said:

Interesting. Squad must not have thought about this when they were building internals originally, as only the very last internal by date that they put out (not looking in DLC)doesn't have every box filled. The crewCabinInternals is the only one to only have 16 filled.

As the internals build layers are 16 and 20 I guess the correlation makes sense.

Ah I’m pretty sure the code does mask certain layers out of the IVA lights so that might not actually cause a problem. But it’s definitely better to be explicit about it.  And external lights that include layers 16 and 20 *will* appear in the IVA but in the wrong places because the coordinate spaces are different. The engine light from waterfall has this problem.

Link to comment
Share on other sites

On 6/18/2024 at 12:26 PM, ColdJ said:

This could also be used in conjunction with the colour animation to make lights that you want to come on gradually.

Did you try to make lights with physical animation? I made an attempt to make a deployable light and KSP seems to hate this idea: the light goes on but the deployment animation doesn't play.  The retractable light from B9 aerospace doesn't work as well.

I checked my LightDeploy animation with ModuleAnimateGeneric and it does work: the light gets deployed and lit:

    MODULE
    {
        name = ModuleAnimateGeneric
        animationName = LightDeploy
        isOneShot = true //false
        startEventGUIName = Open
        endEventGUIName = Close
        actionGUIName = Toggle_Light
    }

But it doesn't move when I use it like this.

   MODULE
   {
          name = ModuleLight
          lightName = Wlamp
          lightMeshRendererName = WingLight
          useAnimationDim = True
          lightBrightenSpeed = 2.5
          lightDimSpeed = 2.5
          resourceAmount = 0.01
          animationName = LightDeploy
          useResources = True
    }

WingLight is a mesh the Wlamp is parented to and it has the deployment animation.

Edited by Manul
Link to comment
Share on other sites

@Manul

This is something I experimented with but never got far. If you look in the brand new lights that can change colour and blink that gets you part way. I don't think the module "ModuleAnimateGeneric" allows for looping (need to double check but I believe I have tried before and failed.) I was looking into using the throttle animation to animate because it does allow looping, combined with Emmision Module, like that used to make command pods windows glow. I  need to build something but if you imagine a dome with an orange glow when the light is turned on, and in it's centre a rotating spot that puts out orange light so it looks like a rotating warning light.

Spoiler

    MODULE
    {
        name = ModuleColorChanger
        shaderProperty = _EmissiveColor
        animRate = 0.8
        animState = false
        useRate = true
        toggleInEditor = true
        toggleInFlight = true
        toggleInFlight = true
        unfocusedRange = 5
        toggleName = #autoLOC_502011 //#autoLOC_502011 = Toggle Lights
        eventOnName = #autoLOC_502012 //#autoLOC_502012 = Lights On
        eventOffName = #autoLOC_502013 //#autoLOC_502013 = Lights Off
        toggleAction = True
        defaultActionGroup = Light
        redCurve
        {
            key = 0 0 0 3
            key = 1 1 0 0
        }
        greenCurve
        {
            key = 0 0 0 1
            key = 1 1 1 0
        }
        blueCurve
        {
            key = 0 0 0 0
            key = 1 0.7 1.5 0
        }
        alphaCurve
        {
            key = 0 1
        }
    }

Spoiler

    MODULE
    {
        name = FXModuleAnimateThrottle
        animationName = Rotors
        responseSpeed = 0.05
        layer = 2
        dependOnEngineState = True
        dependOnThrottle = True
        weightOnOperational = True
        affectTime = false
        baseAnimSpeed = 100.0        // base + (throttle setting * multiplier)
        baseAnimSpeedMult = 800
        playInEditor = False
        animWrapMode = 2      //    Default = 0    Once = 1        Clamp = 1    Loop = 2        PingPong = 4    ClampForever = 8
    }

Apparently in the old versions of KSP it was possible to animate physical moving lights but something got changed to break it.

If anybody reading this knows how to make it work these days, please let us know.

Link to comment
Share on other sites

50 minutes ago, ColdJ said:

I don't think the module "ModuleAnimateGeneric" allows for looping (need to double check but I believe I have tried before and failed.) I was looking into using the throttle animation to animate because it does allow looping, combined with Emmision Module, like that used to make command pods windows glow. I  need to build something but if you imagine a dome with an orange glow when the light is turned on, and in it's centre a rotating spot that puts out orange light so it looks like a rotating warning light.

If you are looking for a way to make rotary warning lights, I can look through parts list in my current KSP install to see if there is something  worth reverse-engineering. I remember there was a rotating scanner and and some lights that were advertised as RWLs, but I've never tested how they do in a modern KSP.

50 minutes ago, ColdJ said:

Apparently in the old versions of KSP it was possible to animate physical moving lights but something got changed to break it.

I guess that happened at the Great Light Massacre when we got a bunch of new spotlights but all the old lights lost their animations. I would like to find a reliable way to fix broken lights from some good old mods.

Edited by Manul
Link to comment
Share on other sites

@ColdJ I've found a "rotating" light from USI Exploration Pack, the lightsource itself doesn't rotate but some part of the model does.

Spoiler

xn1yXeF.png

And here is a crazy hierarchy of my prototype VTOL engine I made a month ago. When the engine is activated, the shutters open (Baha AnimatedEngine handles this)  and they rotate together with NozzleTransform controlled by the ModuleControlSurface. Control surface ToggleDeploy  action should be assigned to the same action group as the engine toggle.

PrBrOiy.png

Some pics in action

Spoiler

tz27EM0.png

active

TOdbrNo.png

RCS stick down

VOkviJQ.png

RCS stick up

aLcOUjY.png

 

And of course there is a problem because ModuleControlSurface didn't work with both instances of NozzleTransform. That's easy to fix by parenting NozzleTransform.001 to something like NozzleAxis and using ConstrainPosition to match it's rotation with NozzleTransform.g7GqupN.png

P.S. the hierarchy is so weird because I will never ever apply animation to transforms controlled by PartModules. When I tried to rotate SuspensionTransform within the gear deployment animation, things got FUBAR pretty quickly.

Edited by Manul
Link to comment
Share on other sites

2 hours ago, Manul said:

P.S. the hierarchy is so weird because I will never ever apply animation to transforms controlled by PartModules. When I tried to rotate SuspensionTransform within the gear deployment animation, things got FUBAR pretty quickly.

You do seem to be trying some very complicated setup there. I guess it is because you want it to look like the louvers are following the path of thrust. As I am self taught I have never tried to get into the whole animated bones way of controlling animations for complex effects, but maybe you should learn for what you are doing. The Squad afterburning engines use this method for making the nozzle expand and shrink with the throttle while still having the nozzles gimbal. Hooligan Airships Core uses a very complex setup for the Cirrus balloon. I believe that this method might give you what you want to do. Also the Constrain Module. If each louvre is on a axis that is constrained to look at a moving axis at the tip of the axis that the control suface uses. I think that is what you were going for but I am not sure if you aimed at an empty that is parented inside the axis empty and at a distance from the origin point to create a bigger arc.

As for the suspensionTransform. Never try to rotate it by itself, always rotate something it is parented in and only for opening landing gear or closing. The module does not allow for somewhere inbetween. The modules that control suspension, steering and wheel pivot require a strict heirarchy in order to operate together.

2 hours ago, Manul said:

That's easy to fix by parenting NozzleTransform.001

Never leave them named with a .001 when using control surface module. It is the way blender tells the difference between parts with the same name. Always give your second transform a different name and use a second surface control module in the config. Leaving transforms with .001, .002 etc is only for thrust, intake and points you want the same exhaust effect to spawn at because the game treats them as the same. The older exhaust effects like "Light Smoke Trail" will only work on the first named, while the newer Multi effects will use them all.

 

2 hours ago, Manul said:

I've found a "rotating" light from USI Exploration Pack, the lightsource itself doesn't rotate but some part of the model does.

Yes, this mod was built before the change that broke that way of animating lights. I once went through and changed all the parts that used lights in that mod to the new standard in the config. It meant the lights worked but it did not fix what should have physically moved.

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
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...