New function to call a non animated function over the animation duration:
Fixed a bug with delay and callFunctionWithDelay.
New functions of the JPExtendedAPI pack are supported:
New feature: loop mode. You can now define a looping animation without having to use callbacks:
New function to set several parameters at once:
leaveAnimationMode now returns the total duration of the animation you've just created:
Parameters order changed for the following function, in order to make it more readable:
Now possible to not interpolate all the values of a function by setting nil values instead (eg: object.setTranslation ( hObject, nil, nil, 50, object.kGlobalSpace )). Works for all the functions that have a equivalent get function plus object.translate and object.rotateTo. Functions like object.lookAt, object.rotateAround are not supported.
If a function is missing, you can add it yourself to the pack thanks to the new function: JPAnimation.addFunction
it is now possible to pass additional parameters to the JPAnimation.setAnimation function. It is useful for instance to send parameters to the JPTweener curves.
Fixed a bug with JPAnimation.callFunction for HUDs
application.setOption is now supported
JPAnimation process optimized.
Pack size greatly reduced
Fixed a bug with JPAnimation.sendValueToUser, was instant instead of animated.
Function JPAnimation.useInstantFeature ( ) removed, this feature is now activated by default. This feature allows to force a function to not be animated in an animation bloc by prefixing it with 'instant.' or 'inst.', for instance: inst.object.setRotation ( hObject, 0, 45, 0, object.kGlobalSpace )
New functions:
New constants:
Removed the setAllowClosestRotations and setDefaultAllowClosestRotations functions. Here's the new rotation functions behaviour:
Fixed the function object.rotateAround, was not working properly.
The following functions always rotate in the closest side: object.lookAt, object.lookAtWithUp, object.rotateTo, object.rotateToAxisAngle, object.rotateToQuaternion, object.rotateToYPR.
The following functions never rotate in the closest side: object.rotate, object.rotateYPR, object.rotateAxisAngle, object.rotateQuaternion.
For the following functions, you can choose to rotate in the closest side: object.setRotation, object.setRotationYPR, object.setRotationAxisAngle, object.setRotationQuaternion.
To choose, use the following functions: JPAnimation.setAllowClosestRotations ( bAllow ) JPAnimation.setDefaultAllowClosestRotations ( bAllow )
JPAnimation.enableJPExtendedAPIFunctions removed, not needed anymore to get the JPExtendedAPI functions working with JPAnimation.
All of the functions impacting the objects rotation now share the same start parameters (UseTargetInsteadOfCurrentValues mode)
All of the functions impacting the objects translation now share the same start parameters (UseTargetInsteadOfCurrentValues mode)
All of the functions impacting the HUDs positions now share the same start parameters (UseTargetInsteadOfCurrentValues mode)
New functions: object.lookAt object.lookAtWithUp object.matchRotation object.matchTranslation object.resetRotation object.resetTranslation object.rotate object.rotateAround object.rotateAxisAngle object.rotateQuaternion object.rotateTo object.rotateToAxisAngle object.rotateToQuaternion object.rotateToYPR object.rotateYPR object.setRotationAxisAngle object.setRotationYPR object.translate object.translateTo
New functions: JPAnimation.pause ( sAnimationID ) JPAnimation.pauseAll ( ) JPAnimation.resume ( sAnimationID ) JPAnimation.resumeAll ( ) bPaused = JPAnimation.isPaused ( sAnimationID )
JPAnimation is now compatible with the JPExtendedAPI functions. Call JPAnimation.enableJPExtendedAPIFunctions ( ) to link these functions with JPAnimation. The following functions are supported: hud.setComponentScreenSpaceBottomLeftCorner ( hComponent, nPositionX, nPositionY ) hud.setComponentScreenSpaceBottomRightCorner ( hComponent, nPositionX, nPositionY ) hud.setComponentScreenSpaceCenter ( hComponent, nPositionX, nPositionY ) hud.setComponentScreenSpaceTopLeftCorner ( hComponent, nPositionX, nPositionY ) hud.setComponentScreenSpaceTopRightCorner ( hComponent, nPositionX, nPositionY )
Optimizations (up to 20%)
You can now force a function to be called instantly while in an animation bloc. You just have to prefix the function with "instant.", for instance: instant.object.setRotation ( hObject, 0, 90, 0, object.kGlobalSpace ) You can also prefix with "inst."
JPAnimation.callFunction and JPAnimation.callFunctionWithDelay can now call any function, even those that are not in the base ShiVa's API.
--hud hud.setComponentZOrder ( hComponent, nZOrder ) hud.setDefaultTextShadowColor ( hUser, nRed, nGreen, nBlue, nAlpha ) hud.setEditTextDisplayRange ( hComponent, nRangeMin, nRangeMax ) hud.setEditTextMaxLength ( hComponent, nLength ) hud.setLabelTextDisplayRange ( hComponent, nRangeMin, nRangeMax ) hud.setListFingerScrollingInertia ( hComponent, nInertia ) hud.setListItemsForegroundColorSelected ( hComponent, nRed, nGreen, nBlue, nAlpha ) hud.setListVerticalScrollPos ( hComponent, nValue )
--light light.setDynamicShadowsViewSpaceClipRectangle ( hObject, nMinX, nMinY, nMaxX, nMaxY )
--mesh mesh.setSubsetVertexNormal ( hObject, nCurveIndex, nPointIndex, x, y, z ) mesh.setSubsetVertexPosition ( hMesh, nSubset, nVertex, x, y, z )
--microphone microphone.setSpectrumWidth ( nWidth )
--navigation navigation.setWaitTimeout ( hObject, nTimeout ) navigation.setPathMaxLength ( hObject, nMaxLength )
--object object.setRotationQuaternion ( hObject, nQuatX, nQuatY, nQuatZ, nQuatW, kSpace )
--scene scene.setAnimationsFrameTimeFactor ( hScene, nFactor ) scene.setColorGradingFadeTime ( hScene, nFadeTime ) scene.setColorLevels ( hScene, r, g, b, nFactor ) scene.setColorSaturation ( hScene, r, g, b, nFactor ) scene.setDynamicsFrameTimeFactor ( hScene, nFactor ) scene.setDynamicsIterationsPerStep ( hScene, nIterations ) scene.setDynamicsTimeStep ( hScene, nTimeStep ) scene.setOceanReflectorBias ( hScene, nBias ) scene.setOceanRefractionNoiseScale ( hScene, nScale ) scene.setParticlesFrameTimeFactor ( hScene, nFactor ) scene.setTrailsFrameTimeFactor ( hScene, nFactor )
--shape shape.setCurveEndColor ( hObject, nCurveIndex, nRed, nGreen, nBlue ) shape.setCurvePoint ( hMesh, nSubset, nVertex, x, y, z ) shape.setCurveStartColor ( hObject, nCurveIndex, nRed, nGreen, nBlue ) shape.setMeshOpacity ( hObject, nOpacity ) shape.setMeshSubsetMaterialEffectMap0AdditionalUVOffset ( hObject, nSubsetIndex, u, v ) shape.setMeshSubsetMaterialEffectMap0AdditionalUVRotation ( hObject, nSubsetIndex, nCenterU, nCenterV, nAngle ) shape.setMeshSubsetMaterialEffectMap0AdditionalUVScale ( hObject, nSubsetIndex, u, v ) shape.setMeshSubsetMaterialEffectMap1AdditionalUVOffset ( hObject, nSubsetIndex, u, v ) shape.setMeshSubsetMaterialEffectMap1AdditionalUVRotation ( hObject, nSubsetIndex, nCenterU, nCenterV, nAngle ) shape.setMeshSubsetMaterialEffectMap1AdditionalUVScale ( hObject, nSubsetIndex, u, v ) shape.setMeshSubsetVertexColor ( hObject, nSubset, nVertex, r, g, b, a )
--user user.setRenderPriority ( hUser, nPriority )
--sfx sfx.setParticleEmitterOpacityAt ( hObject, nIndex, nOpacity ) sfx.setTrailOpacityAt ( hObject, nIndex, nOpacity )
--JPAnimation API JPAnimation.activate ( sUserToken, sActivationKey ) --Animation mode sAnimationID = JPAnimation.enterAnimationMode ( bOptResetParameters ) nTotalDuration = JPAnimation.leaveAnimationMode ( hOptCompletionObject, sOptCompletionAIModel, sOptCompletionHandler, vOptParam0, vOptParam1, vOptParam2, vOptParam3, vOptParam4, vOptParam5, vOptParam6, vOptParam7, vOptParam8, vOptParam9 ) bYes = JPAnimation.isInAnimationMode ( ) --If you want a function to not be animated in an animation bloc, prefix it with 'instant.' or 'inst.'. For instance, instant.object.setRotation ( hObject, 0, 90, 0, object.kGlobalSpace ) will never be animated. --Animation handling JPAnimation.cancel ( sAnimationID ) JPAnimation.cancelAll ( ) bAlive = JPAnimation.isAlive ( sAnimationID ) JPAnimation.pause ( sAnimationID ) JPAnimation.pauseAll ( ) JPAnimation.resume ( sAnimationID ) JPAnimation.resumeAll ( ) bPaused = JPAnimation.isPaused ( sAnimationID ) bYes = JPAnimation.respondToFunction ( sApiDotFunction ) --Set values --Several at once JPAnimation.setParameters ( sAnimation, nDuration, nDelay, kLoopMode, bUseTargetInsteadOfCurrentValues, bWaitUntilDone ) --One by one JPAnimation.setAnimation ( sAnimation, vParam0, vParam1, vParam2, vParam3, vParam4 ) JPAnimation.setDelay ( nDelay ) JPAnimation.setDuration ( nDuration ) JPAnimation.setLookAtMode ( kLookAtMode ) JPAnimation.kLookAtModeStartPosition JPAnimation.kLookAtModeUpdatedPositionProgressiveFactor JPAnimation.kLookAtModeUpdatedPositionFullFactor JPAnimation.setLoopMode ( kLoopMode ) JPAnimation.kLoopModeOnce JPAnimation.kLoopModeOnceReversed JPAnimation.kLoopModeLoop JPAnimation.kLoopModeLoopReversed JPAnimation.kLoopModePingPong JPAnimation.setTimeFactor ( nTimeFactor ) JPAnimation.setUseTargetInsteadOfCurrentValues ( bUseTargetInsteadOfCurrentValues ) JPAnimation.setWaitUntilDone ( bWaitUntilDone ) --Define default values, used when calling JPAnimation.enterAnimationMode ( true ). JPAnimation.resetToDefaultParameters ( ) JPAnimation.setDefaultAnimation ( sAnimation, vParam0, vParam1, vParam2, vParam3, vParam4 ) JPAnimation.setDefaultDelay ( nDelay ) JPAnimation.setDefaultDuration ( nDuration ) JPAnimation.setDefaultLookAtMode ( kLookAtMode ) JPAnimation.setDefaultLoopMode ( kLoopMode ) JPAnimation.setDefaultTimeFactor ( nTimeFactor ) JPAnimation.setDefaultUseTargetInsteadOfCurrentValues ( bUseTargetInsteadOfCurrentValues ) JPAnimation.setDefaultWaitUntilDone ( bWaitUntilDone ) --Animation parameters that can be changed on the fly JPAnimation.changeAnimationLoopMode ( sAnimationID, kLoopMode ) JPAnimation.changeAnimationTime ( sAnimationID, nTime ) JPAnimation.changeAnimationTimeFactor ( sAnimationID, nTimeFactor ) --Get functions nDuration = JPAnimation.getAnimationDuration ( sAnimationID ) kLoopMode = JPAnimation.getAnimationLoopMode ( sAnimationID ) nTime = JPAnimation.getAnimationTime ( sAnimationID ) nTimeFactor = JPAnimation.getAnimationTimeFactor ( sAnimationID ) --Global parameters nTimeFactor = JPAnimation.getGlobalTimeFactor ( ) JPAnimation.setGlobalTimeFactor ( nTimeFactor ) --Interpolate a value JPAnimation.sendValueToObject ( hObject, sAIModel, sHandler, nStartValue, nEndValue ) JPAnimation.sendValueToUser ( hUser, sAIModel, sHandler, nStartValue, nEndValue ) --Call of any function JPAnimation.callFunction ( nParamCount, sApiDotFunction, vParam0, vParam1, ... ) JPAnimation.callFunctionWithDelay ( nDelay, nParamCount, sApiDotFunction, vParam0, vParam1, ... ) JPAnimation.callFunctionOverTime ( nParamCount, sApiDotFunction, vParam0, vParam1, vParam2, vParam3, vParam4, vParam5, vParam6, vParam7, vParam8, vParam9, vParam10, vParam11, vParam12, vParam13, vParam14, vParam15 ) --Add an unsupported function yourself JPAnimation.addFunction ( sAPI, sSetFunction, nSetParamsCount, tGetReturnsIndexes, sGetFunction, tGetParamsIndexes ) --What are tGetReturnsIndexes and tGetParamsIndexes? They are the parameters index of the set function, for the parameters and return values of the get function. --Example: --JPAnimation.addFunction ( "object", "setTranslation", 5, {1,2,3}, "getTranslation", {0,4} ) -- --Here are the 5 params for the set function: object.setTranslation ( hObject, nTx, nTy, nTz, kSpace ) -- #0 #1 #2 #3 #4 --Here are the params for the get function: nTx, nTy, nTz = object.getTranslation ( hObject, kSpace ) --tGetReturnsIndexes is {1,2,3} -> nTx, nTy and nTz were params #1, #2 and #3 for the setTranslation function --tGetReturnsIndexes is {0,4} -> hObject and kSpace were params #0 and #4 for the setTranslation function -- --To summurize, you can read it like that: --Function definition: JPAnimation.addFunction ( "object", "setTranslation", 5, {1,2,3}, "getTranslation", {0,4} ) --Params index from set to get function: object.setTranslation ( #0, #1, #2, #3, #4 ) #1, #2, #3 = object.getTranslation ( #0, #4 ) --SUPPORTED FUNCTIONS --JPExtendedAPI application.setGlobalSoundsVolumeCoef ( nCoef ) hud.setComponentScreenSpaceBottomLeftCorner ( hComponent, nPositionX, nPositionY ) hud.setComponentScreenSpaceBottomRightCorner ( hComponent, nPositionX, nPositionY ) hud.setComponentScreenSpaceCenter ( hComponent, nPositionX, nPositionY ) hud.setComponentScreenSpaceTopLeftCorner ( hComponent, nPositionX, nPositionY ) hud.setComponentScreenSpaceTopRightCorner ( hComponent, nPositionX, nPositionY ) hud.translate ( hComponent, nTx, nTy ) sound.setVolume ( hObject, nSoundIndex, nVolume ) --animation animation.setPlaybackCursor ( hObject, nBlendLayer, nValue ) animation.setPlaybackLevel ( hObject, nBlendLayer, nValue ) animation.setPlaybackSpeed ( hObject, nBlendLayer, nValue ) animation.setSkeletonScale ( hObject, nBlendLayer, nValue ) --application application.setCurrentUserAIVariable ( sAIModel, sVariable, vValue ) application.setCurrentUserEnvironmentVariable ( sName, vValue ) application.setFrameTimeFactor ( nValue ) application.setOption ( kOption, nValue ) --camera camera.setAspectRatioScale ( hObject, nValue ) camera.setDepthBlurFactor ( hObject, nValue ) camera.setChromaticAberrationAmplitude ( hObject, nValue ) camera.setChromaticAberrationFactor ( hObject, nValue ) camera.setDepthBlurFocusRangeMax ( hObject, nValue ) camera.setDepthBlurFocusRangeMin ( hObject, nValue ) camera.setDistortionAmplitude ( hObject, nValue ) camera.setDistortionFactor ( hObject, nValue ) camera.setDistortionFrequency ( hObject, nValue ) camera.setDistortionMapAmplitude ( hObject, nValue ) camera.setDistortionMapFactor ( hObject, nValue ) camera.setDistortionMapUVOffset ( hObject, u, v ) camera.setDistortionMapUVScale ( hObject, u, v ) camera.setDistortionTiling ( hObject, nValue ) camera.setFieldOfView ( hObject, nValue ) camera.setMaxViewDistance ( hObject, nValue ) camera.setMinViewDistance ( hObject, nValue ) camera.setMotionBlurFactor ( hObject, nValue ) camera.setVelocityBlurFactor ( hObject, nValue ) --dynamics dynamics.setAngularDamping ( hObject, nCoef ) dynamics.setAngularSpeedLimit ( hObject, nLimit ) dynamics.setAngularVelocity ( hObject, x, y, z, kSpace ) dynamics.setBounce ( hObject, nCoef ) dynamics.setBounceThreshold ( hObject, nThreshold ) dynamics.setFriction ( hObject, nCoef ) dynamics.setLinearDamping ( hObject, nCoef ) dynamics.setLinearSpeedLimit ( hObject, nLimit ) dynamics.setLinearVelocity ( hObject, x, y, z, kSpace ) dynamics.setMass ( hObject, nMass ) dynamics.setOffset ( hObject, x, y, z ) --hud hud.setButtonTextHeight ( hComponent, nValue ) hud.setButtonTextLetterSpacing ( hComponent, nValue ) hud.setButtonTextLineSpacing ( hComponent, nValue ) hud.setCheckTextHeight ( hComponent, nValue ) hud.setCheckTextLetterSpacing ( hComponent, nValue ) hud.setCheckTextLineSpacing ( hComponent, nValue ) hud.setComponentBackgroundColor ( hComponent, nRed, nGreen, nBlue, nAlpha ) hud.setComponentBackgroundImageUVOffset ( hComponent, nOffsetU, nOffsetV ) hud.setComponentBackgroundImageUVScale ( hComponent, nScaleU, nScaleV ) hud.setComponentBorderColor ( hComponent, nRed, nGreen, nBlue, nAlpha ) hud.setComponentForegroundColor ( hComponent, nRed, nGreen, nBlue, nAlpha ) hud.setComponentOpacity ( hComponent, nValue ) hud.setComponentPosition ( hComponent, nPositionX, nPositionY ) hud.setComponentRotation ( hComponent, nValue ) hud.setComponentShapeEllipseMaxAngle ( hComponent, nValue ) hud.setComponentShapeEllipseMinAngle ( hComponent, nValue ) hud.setComponentShapeRoundRectangleCornerRadius ( hComponent, nValue ) hud.setComponentSize ( hComponent, nSizeX, nSizeY ) hud.setComponentZOrder ( hComponent, nZOrder ) hud.setCursorPosition ( hComponent, nPosX, nPosY ) hud.setDefaultTextShadowColor ( hUser, nRed, nGreen, nBlue, nAlpha ) hud.setEditTextHeight ( hComponent, nValue ) hud.setEditTextLetterSpacing ( hComponent, nValue ) hud.setEditTextLineSpacing ( hComponent, nValue ) hud.setEditTextDisplayRange ( hComponent, nRangeMin, nRangeMax ) hud.setEditTextMaxLength ( hComponent, nLength ) hud.setLabelTextHeight ( hComponent, nValue ) hud.setLabelTextLetterSpacing ( hComponent, nValue ) hud.setLabelTextDisplayRange ( hComponent, nRangeMin, nRangeMax ) hud.setLabelTextLineSpacing ( hComponent, nValue ) hud.setListColumnWidthAt ( hComponent, nColumn, nWidth ) hud.setListItemsBackgroundColorEven ( hComponent, nRed, nGreen, nBlue, nAlpha ) hud.setListItemsBackgroundColorOdd ( hComponent, nRed, nGreen, nBlue, nAlpha ) hud.setListItemsBackgroundColorSelected ( hComponent, nRed, nGreen, nBlue, nAlpha ) hud.setListItemsHeight ( hComponent, nValue ) hud.setListTextHeight ( hComponent, nValue ) hud.setListTextLeftMargin ( hComponent, nValue ) hud.setListTextLetterSpacing ( hComponent, nValue ) hud.setListTextLineSpacing ( hComponent, nValue ) hud.setListTextRightMargin ( hComponent, nValue ) hud.setListFingerScrollingInertia ( hComponent, nInertia ) hud.setListItemsForegroundColorSelected ( hComponent, nRed, nGreen, nBlue, nAlpha ) hud.setListVerticalScrollPos ( hComponent, nValue ) hud.setMoviePlaybackProgress ( hComponent, nProgress ) hud.setPixelMapUVOffset ( hComponent, nOffsetU, nOffsetV ) hud.setProgressValue ( hComponent, nValue ) hud.setSliderValue ( hComponent, nValue ) --light light.setColor ( hObject, nRed, nGreen, nBlue ) light.setDynamicShadowsViewSpaceClipRectangle ( hObject, nMinX, nMinY, nMaxX, nMaxY ) --mesh mesh.setSubsetIndexValue ( hMesh, nSubset, nLOD, nIndex, nValue ) mesh.setSubsetVertexNormal ( hObject, nCurveIndex, nPointIndex, x, y, z ) mesh.setSubsetVertexPosition ( hMesh, nSubset, nVertex, x, y, z ) mesh.setSubsetVertexTexCoord ( hMesh, nSubset, nVertex, nSet, u, v ) --microphone microphone.setSpectrumWidth ( nWidth ) --navigation navigation.setAcceleration ( hObject, nValue ) navigation.setHeightOffset ( hObject, nValue ) navigation.setPathMaxLength ( hObject, nMaxLength ) navigation.setSpeedLimit ( hObject, nValue ) navigation.setWaitTimeout ( hObject, nTimeout ) --object object.lookAt ( hObject, nPx, nPy, nPz, kSpace, nFactor ) object.lookAtWithUp ( hObject, nPx, nPy, nPz, nUx, nUy, nUz, kSpace, nFactor ) object.matchRotation ( hObject, hOtherObject, kSpace ) object.matchTranslation ( hObject, hOtherObject, kSpace ) object.resetRotation ( hObject, kSpace ) object.resetTranslation ( hObject, kSpace ) object.rotate ( hObject, nRx, nRy, nRz, kSpace ) object.rotateAround ( hObject, nPx, nPy, nPz, nRx, nRy, nRz, kSpace ) object.rotateAxisAngle ( hObject, nAxisX, nAxisY, nAxisZ, nAngle, kSpace ) object.rotateQuaternion ( hObject, nQuatX, nQuatY, nQuatZ, nQuatW, kSpace ) object.rotateTo ( hObject, nRx, nRy, nRz, kSpace, nFactor ) object.rotateToAxisAngle ( hObject, nAxisX, nAxisY, nAxisZ, nAngle, kSpace, nFactor ) object.rotateToQuaternion ( hObject, nQuatX, nQuatY, nQuatZ, nQuatW, kSpace, nFactor ) object.rotateToYPR ( hObject, nYaw, nPitch, nRoll, kSpace, nFactor ) object.rotateYPR ( hObject, nYaw, nPitch, nRoll, kSpace ) object.setAIVariable ( hObject, sAIModel, sVariable, vValue ) object.setRotation ( hObject, nRx, nRy, nRz, kSpace ) object.setRotationAxisAngle ( hObject, nAxisX, nAxisY, nAxisZ, nAngle, kSpace ) object.setRotationQuaternion ( hObject, nQuatX, nQuatY, nQuatZ, nQuatW, kSpace ) object.setRotationYPR ( hObject, nYaw, nPitch, nRoll, kSpace ) object.setScale ( hObject, nSx, nSy, nSz ) object.setTranslation ( hObject, nTx, nTy, nTz, kSpace ) object.setUniformScale ( hObject, nScale ) object.translate ( hObject, nTx, nTy, nTz, kSpace ) object.translateTo ( hObject, nTx, nTy, nTz, kSpace, nFactor ) --pixelmap pixelmap.setBrushOrigin ( hPixelMap, sBrush, x, y ) pixelmap.setPixel ( hPixelMap, x, y, r, g, b, a ) --projector projector.setColor ( hObject, nRed, nGreen, nBlue ) projector.setFieldOfView ( hObject, nValue ) projector.setMaxClipDistance ( hObject, nValue ) projector.setMinClipDistance ( hObject, nValue ) projector.setOpacity ( hObject, nOpacity ) --scene scene.setAmbientColor ( hScene, r, g, b ) scene.setAmbientOcclusionColor ( hScene, r, g, b ) scene.setAmbientOcclusionDepthBias ( hScene, nValue ) scene.setAmbientOcclusionDistance ( hScene, nValue ) scene.setAmbientOcclusionIntensity ( hScene, nValue ) scene.setAmbientOcclusionSampleCount ( hScene, nValue ) scene.setAnimationsFrameTimeFactor ( hScene, nFactor ) scene.setBackgroundColor ( hScene, r, g, b ) scene.setBackgroundOpacity ( hScene, nValue ) scene.setBloomColoring ( hScene, nValue ) scene.setBloomIntensity ( hScene, nValue ) scene.setBloomMotionBlurFactor ( hScene, nValue ) scene.setBloomThreshold ( hScene, nValue ) scene.setColorContrast ( hScene, nValue ) scene.setColorGradingIntensity ( hScene, nValue ) scene.setColorGradingFadeTime ( hScene, nFadeTime ) scene.setColorLevels ( hScene, r, g, b, nFactor ) scene.setColorSaturation ( hScene, r, g, b, nFactor ) scene.setDistanceFogStart ( hScene, nValue ) scene.setDynamicShadowsFadeDistance ( hScene, nValue ) scene.setDynamicShadowsMaxDistance ( hScene, nValue ) scene.setDynamicsFrameTimeFactor ( hScene, nFactor ) scene.setDynamicsIterationsPerStep ( hScene, nIterations ) scene.setDynamicsTimeStep ( hScene, nTimeStep ) scene.setDynamicsGravity ( hScene, x, y, z ) scene.setFogColor ( hScene, r, g, b ) scene.setFogDensity ( hScene, nValue ) scene.setGammaCorrection ( hScene, nValue ) scene.setHeightFogDensityFactor ( hScene, nValue ) scene.setHeightFogLevel ( hScene, nValue ) scene.setMonochromeFilter ( hScene, r, g, b, nValue ) scene.setNormalMappingFadeScreenSize ( hScene, nValue ) scene.setNormalMappingMinScreenSize ( hScene, nValue ) scene.setOceanDepthAttenuationFactor ( hScene, nValue ) scene.setOceanFoamMapScrollingSpeed ( hScene, x, z ) scene.setOceanFoamMapTiling ( hScene, nValue ) scene.setOceanFresnelBias ( hScene, nValue ) scene.setOceanFresnelPower ( hScene, nValue ) scene.setOceanNormalMapScrollingSpeed ( hScene, x, z ) scene.setOceanNormalMapTiling ( hScene, nValue ) scene.setOceanReflectedObjectsMaxSurfaceDistance ( hScene, nValue ) scene.setOceanReflectionNoiseScale ( hScene, nValue ) scene.setOceanSurfaceColor ( hScene, r, g, b ) scene.setOceanSurfaceColorFactor ( hScene, nValue ) scene.setOceanSurfaceColorMaxDistance ( hScene, nValue ) scene.setOceanUnderwaterFogColor ( hScene, r, g, b ) scene.setOceanUnderwaterFogDensity ( hScene, nValue ) scene.setOceanReflectorBias ( hScene, nBias ) scene.setOceanRefractionNoiseScale ( hScene, nScale ) scene.setOceanWavesAmplitude ( hScene, nValue ) scene.setOceanWavesFrequency ( hScene, nValue ) scene.setOceanWavesMeanHeight ( hScene, nValue ) scene.setParticlesFrameTimeFactor ( hScene, nFactor ) scene.setPerPixelLightingMinScreenSize ( hScene, nValue ) scene.setPotentiallyOccludedObjectMaxSize ( hScene, nValue ) scene.setShadowAmbientColor ( hScene, r, g, b ) scene.setSkyBoxColor ( hScene, r, g, b ) scene.setSpecularLightingFadeScreenSize ( hScene, nValue ) scene.setSpecularLightingMinScreenSize ( hScene, nValue ) scene.setTrailsFrameTimeFactor ( hScene, nFactor ) --sensor sensor.setBoxCenterAt ( hObject, nIndex, x, y, z, kSpace ) sensor.setBoxSizeAt ( hObject, nIndex, sx, sy, sz ) sensor.setSphereCenterAt ( hObject, nIndex, x, y, z, kSpace ) sensor.setSphereRadiusAt ( hObject, nIndex, nRadius ) --sfx sfx.setParticleAttractorFieldPointPosition ( hObject, nIndex, x, y, z, kSpace ) sfx.setParticleAttractorFieldStrength ( hObject, nIndex, nValue ) sfx.setParticleEmitterCustomForce ( hObject, nIndex, x, y, z, kSpace ) sfx.setParticleEmitterGenerationRateAt ( hObject, nIndex, nValue ) sfx.setParticleEmitterInitialCountFactorAt ( hObject, nIndex, nFactor ) sfx.setParticleEmitterInitialSpeedFactorAt ( hObject, nIndex, nValue ) sfx.setParticleEmitterKillBoxAt ( hObject, nIndex, xmin, ymin, zmin, xmax, ymax, zmax ) sfx.setParticleEmitterLifeTimeFactorAt ( hObject, nIndex, nValue ) sfx.setParticleEmitterOpacityAt ( hObject, nIndex, nOpacity ) sfx.setParticleEmitterUniformScaleAt ( hObject, nIndex, nValue ) sfx.setParticleTurbulenceFieldFrequency ( hObject, nIndex, nFrequency ) sfx.setParticleTurbulenceFieldStrength ( hObject, nIndex, nStrength ) sfx.setParticleVortexFieldAxialDrop ( hObject, nIndex, nValue ) sfx.setParticleVortexFieldAxialDropDamping ( hObject, nIndex, nValue ) sfx.setParticleVortexFieldOrbitalSpeed ( hObject, nIndex, nValue ) sfx.setParticleVortexFieldOrbitalSpeedDamping ( hObject, nIndex, nValue ) sfx.setParticleVortexFieldRadialPull ( hObject, nIndex, nValue ) sfx.setParticleVortexFieldRadialPullDamping ( hObject, nIndex, nValue ) sfx.setParticleVortexFieldStrength ( hObject, nIndex, nValue ) sfx.setTrailOpacityAt ( hObject, nIndex, nOpacity ) --shape shape.overrideSkeletonJointRotation ( hObject, sJointName, rx, ry, rz, kSpace, nFactor ) shape.overrideSkeletonJointTranslation ( hObject, sJointName, tx, ty, tz, kSpace, nFactor ) shape.setCurveEndColor ( hObject, nCurveIndex, nRed, nGreen, nBlue ) shape.setCurvePoint ( hMesh, nSubset, nVertex, x, y, z ) shape.setCurveStartColor ( hObject, nCurveIndex, nRed, nGreen, nBlue ) shape.setMeshOpacity ( hObject, nOpacity ) shape.setMeshSubsetMaterialEffectMap0AdditionalUVOffset ( hObject, nSubsetIndex, u, v ) shape.setMeshSubsetMaterialEffectMap0AdditionalUVRotation ( hObject, nSubsetIndex, nCenterU, nCenterV, nAngle ) shape.setMeshSubsetMaterialEffectMap0AdditionalUVScale ( hObject, nSubsetIndex, u, v ) shape.setMeshSubsetMaterialEffectMap1AdditionalUVOffset ( hObject, nSubsetIndex, u, v ) shape.setMeshSubsetMaterialEffectMap1AdditionalUVRotation ( hObject, nSubsetIndex, nCenterU, nCenterV, nAngle ) shape.setMeshSubsetMaterialEffectMap1AdditionalUVScale ( hObject, nSubsetIndex, u, v ) shape.setMeshSubsetVertexColor ( hObject, nSubset, nVertex, r, g, b, a ) shape.setSkeletonJointRotation ( hObject, sJointName, rx, ry, rz, kSpace, nFactor ) shape.setSkeletonJointTranslation ( hObject, sJointName, tx, ty, tz, kSpace, nFactor ) --sound sound.setPlaybackProgress ( hObject, nSoundIndex, nValue ) sound.setSpatializationReferenceDistance ( hObject, nValue ) sound.setSpatializationRolloffFactor ( hObject, nValue ) --user user.setAIVariable ( hUser, sAIModel, sVariable, vValue ) user.setEnvironmentVariable ( hUser, sName, vValue ) user.setLocalSoundSourceReferenceDistance ( hUser, nValue ) user.setLocalSoundSourceRolloffFactor ( hUser, nValue ) user.setRenderPriority ( hUser, nPriority ) user.setViewport ( hUser, nLeft, nBottom, nWidth, nHeight )
JPAnimation pack is truly magical. It is a system that will allow you to create animations in your games using the easiest possible way, by using the functions of the ShiVa base API. Usually, when you use a ShiVa function, the effect is instantaneous. With JPAnimation, you can choose at any time to enter or exit the 'animation mode', a mode where all the functions that you use will be applied not instantly but gradually from the current value to the new value, over a defined duration. See for yourself how this works:
object.setTranslation ( hObject, 0, 0, 0, object.kGlobalSpace ) JPAnimation.enterAnimationMode ( ) object.setTranslation ( hObject, 5, 0, 0, object.kGlobalSpace ) JPAnimation.leaveAnimationMode ( )
The object is firstly placed at the origin of the scene. Then is declared an animation block (between enterAnimationMode and leaveAnimationMode). Everything in that block will be interpreted as functions that have to be animated. Here is defined a new position of the object (5,0,0). This will make the object moving from the position (0,0,0) to (5,0,0) over a duration of 1 second (which is the default animation duration).
You can also define an AIModel and a handler to be called when all of the animations defined in the block have ended. Thanks to JPAnimation, you can develop your game with a "event-driven programming" style, no need to create states or onEnterFrame anymore to animate things, JPAnimation does it for you.
The animation proposed by JPAnimation follows a linear curve. By installing the JPTweener pack, you can offer to JPAnimation all of the JPTweener transition curves. The combination of JPAnimation and JPTweener is very powerful, it allows you to make great animations in your game with very few lines of code. Try the sample to see what these packs are capable of. Here's how to use JPTweener with JPAnimation:
JPAnimation.setAnimation ( "easeInSine" )
JPAnimation works with most of the get/set function pairs of the ShiVa API, such as for objects (translation, rotation, scale, ...), for scenes (colors, shaders, ocean, fog distance, ...) and all of the other APIs. To know the list of the functions JPAnimation supports, please refer to the API page by clicking the corresponding button below. In case a function you need is missing, please contact me and I will be happy to complete the pack. In the meantime, you can reference the missing function into JPAnimation by yourself thanks to the great function: JPAnimation.addFunction
JPAnimation also offers to call any other function with a delay, by using JPAnimation.callFunction ( nParamCount, sApiDotFunction, vParam0, vParam1, ... ) like that:
object.setTranslation ( hObject, 0, 0, 0, object.kGlobalSpace ) JPAnimation.enterAnimationMode ( ) object.setTranslation ( hObject, 5, 0, 0, object.kGlobalSpace ) JPAnimation.callFunction ( 2, "object.setVisible", hObject, false ) JPAnimation.leaveAnimationMode ( )
As a result, the object will translate to its new position, and then will be hidden.
JPAnimation also provides a function JPAnimation.callFunctionWithDelay ( nDelay, nParamCount, sApiDotFunction, vParam0, vParam1, ... ). With this function, you will be able to delay the call of any function without having to declare an animation block:
JPAnimation.callFunctionWithDelay ( 5, 2, "hud.setComponentVisible", hComponent, true )
The HUD component will be visible in 5 seconds.