<div>If anyone is confused as to what is happening with TVec(n)Prop here are some examples from my tests.</div><div><br></div><div>Camera has TVec3Props called Direction (Heading, Pitch, Roll) and Position (X, Y Z) which allows a Storyboard to hold a direct reference to those Camera properties allowing for animation of the view point and view direction:</div>
<div><br></div><div> ZoomIn := TStoryboard.Create(World);</div><div> ZoomIn.Add(Skybox.Camera.Direction, Vec3(0))</div><div> .Duration(0.5)</div><div> .Easing('easy');</div><div> ZoomIn.Add(Skybox.Camera.Position, Vec3(0))</div>
<div> .Duration(0.5)</div><div> .Easing('easy');</div><div> ZoomOut := TStoryboard.Create(World);</div><div> ZoomOut.Add(Skybox.Camera.Direction, Vec3(30, 20, 0))</div><div> .Duration(0.5)</div><div> .Easing('easy');</div>
<div> ZoomOut.Add(Skybox.Camera.Position, Vec3(-8, 8, 4))</div><div> .Duration(0.5)</div><div> .Easing('easy'); </div><div><br></div><div>... pressing F2 causes the camera to play alternating Storyboards to zoom the camera in or out in animated fashion ...</div>
<div><br></div><div><div> if MessageQueue.KeyDown(VK_F2) then</div><div> begin</div><div> if (Skybox.Camera.Direction = Vec3(0)) and (Skybox.Camera.Position = Vec3(0)) then</div><div> ZoomOut.Play</div><div> else</div>
<div> ZoomIn.Play;</div><div> end </div></div><div><br></div><div>... Another example where a button is animated without a Storyboard. Two vec properties are accessed, Color: TVec4Prop (which has Count 4 and components, Red, Greem Blue, and Alpha), and Scale: TVec2Prop (which has Count 2 components, X and Y, buttons are 2d in a 3d world and thus TVec2Prop is used) ...</div>
<div><br></div><div><div> Animations.Add(Button.Color.Alpha, 0.5)</div><div> .Duration(0.2)</div><div> .Easing('Easy');</div><div> Animations.Add(Button.Scale, Vec2(1.2))</div><div> .Duration(0.2)</div>
<div> .Easing('Boing');</div></div><div><br></div><div>... The code above causes the button to fade the Alpha color component from it's current value to 0.5 (half transparency) in 0.2 seconds using the 'Easy' easing, and to scale the button to 1.2 it's original size in 0.2 seconds using the 'Boing' easing.</div>
<div><br></div><div><a href="http://cache.codebot.org/snapshops/easing-modes.jpg">http://cache.codebot.org/snapshops/easing-modes.jpg</a></div><div><br></div><div>Older copy of the animation unit on github</div><div><br></div>
<div><a href="https://github.com/sysrpl/Bare.Game/blob/master/source/bare.animation.pas">https://github.com/sysrpl/Bare.Game/blob/master/source/bare.animation.pas</a></div>