Jump to content

Attempting to Change the Speed of the Disco Light Rotation


Recommended Posts

Thank you in advance for reading my post.

 

I am having trouble with finding the speed control for the Disco Light. I am wondering how to change the speed of individual objects in the game without altering the game time speed itself (not using "sgtm"). I believe that anything is possible, so this must be too. I have seen mods that change the speed of the character's movement, so this must be something similar.

 

I appreciate any help or advice you have to offer.

Link to comment
Share on other sites

I honestly don't know the answer myself and I'm sorry but, I have tried to make this kind of edit to .nif's in FO3/NV and failed because it wasn't that important to me.

 

If you open the .nif in Nifscope the rotation speed is determined somewhere in the controller manage block. (or something like that) I don't know exactly where or what else to tell you but, this should be able to be changed with only nifscop.

Link to comment
Share on other sites

I honestly don't know the answer myself and I'm sorry but, I have tried to make this kind of edit to .nif's in FO3/NV and failed because it wasn't that important to me.

 

If you open the .nif in Nifscope the rotation speed is determined somewhere in the controller manage block. (or something like that) I don't know exactly where or what else to tell you but, this should be able to be changed with only nifscop.

 

The TTW train schedule board? Did you guys do anything like this with that animation?

Link to comment
Share on other sites

Unfortunately, with that particular object, you'll probably need to use actual 3ds Max, since Bethesda handled things weirdly. You could try playing around with the time values (the "end" time) as I mention below, but I'm not sure if it would work. The ones that are likely to matter are the NiTestKeyExtraData time keys, and the NiControllerSequence (the "On" one), and the sub-controllers attached to it: the NiVisControllers and the BsEffectShaderPropertyFloatController, and possibly the time keys in the NiFloatData (under NiFloatInterpolater).

 

Alternatively, you might be able to accomplish something by messing with the "Frequency" value of the various controllers, haven't done anything with that myself.

 

 

It's actually very easy to change the rotation speed of most things in nifskope. If you are doing more complex animation edits (like reversing the opening animation for the vault gear door), doing so in nifskope is still technically possible, but it would be extremely tedious, and something like 3ds max would be best.

 

You can do it two ways:

 

1) Change the Time value for the rotation keys (NiControllerManager -> NiControllerSequence -> NiTransformInterpolator -> NiTransformData -> XYZ Rotations

-You'll then want to change the Stop Time in the NiControllerSequence

- If it has something extra, like a sound assoicated with it, you'll probably also want to change the end time in the NiTextKeyExtraData

 

2) For a single speed, continuously rotating object, you can also just change the Value (same place as the time value). For rotation, the Value is an angle in radians, so a single full rotation is 2*pi, or 6.283185. If there are just the two rotation keys being used (all you need for a single-speed rotating object), you'll want to only change it in increments of 2pi, or you'll want to use the time values instead.

 

If you want to have something rotate around an center-point, you can do that by setting a Translation value in the BSTrishape info. If you want it to start in the same original place, you can nest it in a new NiNode (give it a unique "Name") and add the opposite value to the NiNode. Then you'll have to replace any instance of the BSTrishape (within the NiControllerManager) with the NiNode it is now within. Most commonly this will be the in the NiDefaultAVObjectPalette (under "Objs), the NiControllerSequence (under Controlled blocks -> Node Name), and when it exists the NiMultiTargetTransformController (under "Extra Targets"). For the Object Pallette, you would add the NiNode name, not replace the BSTrishape name.

 

So if you wanted something that currently rotates to move in a horizontal circle with a 1000 unit radius, but start from the same original position, you could:

1) put it in a NiNode

2) put in a value of 1000 for the X or Y translation

3) put in a value of -1000 for the same translation

4) change the targeted block from the BSTriShape to the NiNode

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...