JuJooGuppy Posted May 7, 2016 Share Posted May 7, 2016 (edited) Hello, Well as the title states, I have some questions about working with NiTransformController for making an object rotate, as it is new to me.To the point, my questions are: 1. When changing the interpolation type, (Under the XYZ Rotations area, where you set the number of keys as well), I am very unfamiliar with these. I did figure out some of the basics:Linear_keys tend to have no smooth transition, instead they just progress at the same speed. XYZ_Rotation_key seems to behave identical to the Linear key?Quadratic_keys perform the opposite, having nice smooth transitions, slowly building up speed.Const_key seems to avoid any actual shown animation, rather just pops into position at the set time by the key.TBC_Key, however, is a mystery to me. It did not seem to work on the model, so I have no idea.So, my questions regarding these are:Is the above observations all accurate?Is there other details I missed about them?What does the TBC_Key do, what does it stand for, etc?Is there any real difference between XYZ_Rotation and linear when it comes to the interpolation type for an XYZ Rotation?The above questions are really the least important to me, since I have already decided that for what I am doing, I need to use a Quadratic_key interpolator. But, I have a a question about the values used by the quadratic. This question is my main question, and the one I need answered the most: How exactly do the quadratic key values (Specifically, Value, Forward, & Backward) work exactly, and in relation to each other? While I am capable of simply changing values around endlessly until I get a result that looks like what I am wanting to do, I can't seem to figure out exactly what the values mean, and how exactly they work with each other? Again I understand the basics of setting up the time for the key, and then adjusting the value so that during the time from the previous key to the next key it performs said value. But I have no idea what exactly those 3 values mean, and how the numbers for those values relate to the nif. Its obvious that a value of say 1 in the value field is not 1 full rotation, nor 1 degree of rotation. So, what is it..?I did note that by adjusting the Forward value when the Value is set to a positive value, can often times lead to a faster "spin-up", requiring less time to get up to full speed. I say most of the time, however, because once while trying to figure this out, I set "value" to 1, and "Forward" to 100. This resulted in erratic behavior; the model spun several times in one direction, then actually went the OTHER way. So, it really just added to my confusion unfortunately.Its also worth noting that I am not really all that familiar with some of the terms even, such as how Quadratic keys work in general, much like how I had no clue what a Quaternion value was (I know get the gist of those, but they still can be confusing to work with in my opinion! I hope I am not alone with my struggles with those..) Mind you I did search for this prior, but like so many topics regarding NIFs and even modding to a slight degree, I was unable to find any info on this. Its although worth noting that I will likely achieve what I set out to do while waiting for replies, but, I also likely will still not know exactly how the values interact in the quadratic key. Knowing what exactly they do, how they interact, will definitely help me in the future by allowing me to more quickly finish my projects.Sorry for the long post, and I appreciate any and all replies.EDIT: Oops, I left a few lines of gibberish that were just notes, LOL. Edited May 7, 2016 by JuJooGuppy Link to comment Share on other sites More sharing options...
Deleted1205226User Posted May 7, 2016 Share Posted May 7, 2016 (edited) Hello,I've studied these in FO3 but I guess i would be valid for FO4 as well. In my understanding:LINEAR_KEY interpolation creates a uniform rate of change between key frames. The change between two given values will be constant.QUADRATIC_KEY (or Quaternion Rotation Key) interpolation creates a triangular rate of change between key frames. Forward and Backward values are available. Change will be speeding up then speeding down between two given values. The speed factor is tweaked with Forward and Backward values.TBC_KEY interpolation (Tension Bias Continuity) allows customizing the curved rate of change between key frames with three values added: X = Tension, Y = Bias, Z = Continuity. This allows to fine-tuning the changes between two given values.CONST_KEY interpolation will display the texture (or the object) at the set key frames without transition. This allows frame by frame animation.XYZ_ROTATION_KEY are dedicated to Objects animation only and can have interpolation of one of the four types. http://i68.tinypic.com/2d6rzpl.jpg Hope it helps! Edited May 7, 2016 by Guest Link to comment Share on other sites More sharing options...
Deleted1205226User Posted May 7, 2016 Share Posted May 7, 2016 (edited) Also,The rotation values are expressed in Radians.RADIANS = Degrees * PI/180 (PI being the circular constant)So it would work out to the following when dealing with the common angles:90 Degrees = PI/2 = 1.5708180 Degrees = PI = 3.1416270 Degrees = 3 * PI/2 = 4.7124360 Degrees = 2 * PI = 6.2832All scientific calculators will have a feature that allows you to get the answer in either DEGREES or RADIANS for more specific angle.(Thanks to Ranx31 for these info) *Edited for clarity. Edited May 7, 2016 by Guest Link to comment Share on other sites More sharing options...
JuJooGuppy Posted May 7, 2016 Author Share Posted May 7, 2016 (edited) Awesome, this is very in depth and looks like it really answers all of my questions. It definitely helps me understand it all a bit better, should be much easier for me to put this into practice.You rock! Thanks a bunch! I had to pop over to your Nexus profile and give you a Kudos for this. its really appreciated sir. Edited May 7, 2016 by JuJooGuppy Link to comment Share on other sites More sharing options...
Deleted1205226User Posted May 7, 2016 Share Posted May 7, 2016 You're welcome and thank you! Link to comment Share on other sites More sharing options...
Ethreon Posted May 7, 2016 Share Posted May 7, 2016 Needing this. Marking it down, thanks for the info. Link to comment Share on other sites More sharing options...
TrickyVein Posted May 7, 2016 Share Posted May 7, 2016 Note: using quadratic keys to achieve smooth transitions between frames isn't as straightforward as inputting linear keys. You will need to include different positive and negative forward and backward values in order to get the result you want, and if you have multiple keys between starting and end times, it can become difficult to figure out manually between them. I believe this was part of your original question, which I may be able to shed a little light on with an example: Has starting velocity (v), slows to a stop (like acceleration in the opposite direction): t0value: 0forward: 0backward: -vt1value: vforward: 0backward: 0Note that these are just two keys. If I had wanted to include another key (t2) and slip it in between t0 and t1, while preserving the overall motion of slowing down between t0 and t1, I would need to give t2 some forward velocity commensurate with it's relative position in time (positive forward value), so here I would actually need to use a formula with acceleration. I'm not even sure how the values would be adjusted without doing some testing, so you can see how it gets a little complicated. Beth's exporter for Max probably defaults to using xyz_rotation keys and quadratic keys for everything, even if the animation is constant velocity which would work the same with linear keys. I've never seen TBC keys used anywhere, period. Constant keys are only used for boolean data like for activating NiVisControllers or particle systems. Link to comment Share on other sites More sharing options...
Deleted1205226User Posted May 7, 2016 Share Posted May 7, 2016 (edited) (...)Constant keys are only used for boolean data like for activating NiVisControllers or particle systems. They can be used in textures animations as well. Thanks for the additional info. Edited May 7, 2016 by Guest Link to comment Share on other sites More sharing options...
TrickyVein Posted May 7, 2016 Share Posted May 7, 2016 For changing which properties of a texture or material? I've never seen an example from the games. I guess constant key data would be useful for changing emissivity like to make a light go on or off, instantly. Link to comment Share on other sites More sharing options...
Deleted1205226User Posted May 7, 2016 Share Posted May 7, 2016 Using them with TT_TRANSLATE_U and _V in NiTextureTransformControllers will allow to make film sequence like a gif or flip book. I don't recall any Vanilla game example, but I've release a few screen objects based on that principle hereThe whole procedure is explained here Again, this is coming from FO3 researches but it should be valid for FO4 (and FNV, of course) Link to comment Share on other sites More sharing options...
Recommended Posts