Assuming your object is named "Object_1" and the scene directory is named "SceneDirector1",
here is a sample code :
Dim myObj as xpBaseObject
Dim objSceneDir as xpSceneDirector
if Scene.GetObjectByName("Object_1", myObj) = True Then
' check if object is visible
if myObj.Visible = True Then
' Get scene director by his name
if Scene.GetSceneDirectorByName("SceneDirector1", objSceneDir) = True then
' Stop, reset position and play again
objSceneDir.Stop()
objSceneDir.position = 0
objSceneDir.Play()
' maybe you will need to put back visibility to False to avoid reset again at next render
myObj.Visible = False
end if
end if
End if
if you want to be notified only when the visibility has changed to "visible" , you can add a Event Marker object in your scene, and put the following script in the OnShow() event :
Dim objSceneDir as xpSceneDirector
' Get scene director by his name
if Scene.GetSceneDirectorByName("SceneDirector1", objSceneDir) = True then
' Stop, reset position and play again
objSceneDir.Stop()
objSceneDir.position = 0
objSceneDir.Play()
End if
If you have only one scene director in your scene you can use the default one (no need to search by name anymore) :
Scene.SceneDirector.Stop()
Scene.SceneDirector.position = 0
Scene.SceneDirector.Play()
Hope it helps,
Antoine
#XPression