Animesh Test

Category:Test Plans
Category:Content Tools
=NOTE: This test supports the new features of the Animesh viewer currently (March 2018) available for testing at Linden_Lab_Official:Alternate_Viewers.=
==Purpose==
Test all functionality of the Animesh viewer.
==Test Plan==
===Stop / Start animation with LSL===
Test is at secondlife://Aditi/secondlife/Animesh2/7/247/23
* Click the black monolith and choose to start animations from the menu.
* Verify the Animesh model animates.
* Click the black monolith and choose to stop animations
* Verify the Animesh model stops animating.
* Click the black monolith and choose to start animations.
* Relog.
* Verify the Animesh model is animating.
* Move to an adjacent region
* Verify the Animesh model is still animating.
* Relog.
* Verify the Animesh model is animating when viewed from an adjacent region.
* Click the black monolith and choose to stop animations
* Verify Animesh model stops animating.
* Click the black monolith and choose to start animations.
* Verify Animesh model animates.
===Non-root prims in an animated object should be able to start and stop animations===
Test is at secondlife://Aditi/secondlife/Animesh2/23/249/23
* Click the black monolith and choose to start animations.
* Verify the Animesh model animates.
* Click the black monolith and choose to stop animations
* Verify the Animesh model stops animating.
===Any animation triggered by any prim can drive any bone in the skeleton===
Test is at secondlife://Aditi/secondlife/Animesh2/37/249/23
* Click the black monolith and choose to start animations.
* Verify the man animates typing and turning at the same time. (Two scripts in the 2 boxes are playing animations on the skeleton.) 
* Click the black monolith and choose to stop animations
* Verify the man stops animating.
===Animated objects should play only requested animations===
Test is at secondlife://Aditi/secondlife/Animesh2/37/249/23
* Enable Develop menu -> Avatar -> Animation info
* Click the black monolith and choose to start animations.
* Verify only 2 animations appear above the Animesh, then disappear, then repeat.
===An avatar may wear 1 Animesh object===
* Test is at secondlife://Aditi/secondlife/Animesh2/65/247/23
* Take 3 copies of the Teddy bear to your inventory.
* Attempt to add the 3 Teddy bears to different attachment points of your avatar.
* Verify this fails with an error that explains you cannot attach more animated objects. (Current limit is 1 - 2017/11/9)
===Teleport while wearing an animesh===
* Wear an animesh that animates. (e.g. the Teddy bear)
* Teleport to a far region, one that is not adjacent or kitty corner.
* Verify the animesh attachment continues to animate as expected. (e.g. the Teddy bear hold your hand and nods its head)
* Log an observer in and verify the attached animesh looks the same to them.
* Wait 1 minute before teleporting back.
* Teleport back to the original location.
* Verify the animesh attachment continues to animate as expected. (e.g. the Teddy bear hold your hand and nods its head)
===Log in while wearing an animesh===
* While wearing an animesh that animates (e.g. the Teddy bear), log out.
* Log an observer in.
* Log in the avatar wearing the animesh
* Verify the animesh attachment continues to animate as expected. (e.g. the Teddy bear hold your hand and nods its head)
* Verify the observe sees the same thing.
* Sit on an animesh
* Go to secondlife://Aditi/secondlife/Animesh2/78/247/23
* Take a copy of the animesh raptor.
* Rez the raptor.
* Right-click it and select Ride.
* Verify your avatar sits on the raptor.
===Sit on an animesh while wearing an animesh===
* While sitting on an animating animesh, attach an animating animesh.
* Verify the two animesh are animating.
* Log in an observer on an adjacent region
* Verify the observer sees the same thing.
* Log in an observer with a viewer that does not support Animesh (eg. http://wiki.secondlife.com/wiki/Release_Notes/Second_Life_Release/5.1.2.512803 ). 
* Verify the observer sees the two animesh are but they are not animating. 
* Verify the avatar is bent to to the shape of the animesh they are wearing. This is expected.
===Get list of currently playing animations===
Go to secondlife://Aditi/secondlife/Animesh2/7/247/23
* Take a copy of an Animesh object that is playing animations
* Rez the Animesh object.
* Add the following script to the Animesh object.
default
{
 state_entry()
 {
 llSay(0, "Hello, Avatar!");
 llSetTimerEvent(1);
 }
 timer()
 {
 list curr_anims = llGetObjectAnimationNames();
 llOwnerSay("curr_anims are " + (string) curr_anims);
 }
}
* Verify all playing animations are listed while it is animating and none are listed while animations not playing
* Cleanup: delete the animesh object.
===Enabling and Disabling Animated Mesh===
* Rez a copy of the bear from secondlife://Aditi/secondlife/Animesh2/90/247/23
* If the bear is not already dancing, click it to make it dance.
* Edit your bear, and uncheck the Animated Mesh checkbox
* Verify the bear stops dancing and is now in a T-pose.
* Verify observers see the same thing you do.
* Wear the default male avatar from Library / Clothing / Older Outfits / Boy Next Door
* Wear the bear on your right hand and walk around.
* Verify your avatar looks like a bear. 
* Verify observers see the same thing you do.
* Edit the bear you are wearing and check the Animated Mesh checkbox.
* Verify the bear now appears attached to your hand and starts dancing 
* Verify observers see the same thing you do.
* Edit the bear you are wearing and uncheck the Animated Mesh checkbox. Deselect the mesh.
* Verify your avatar looks like a bear again.
* Verify observers see the same thing you do.
* Detach the bear to Inventory
* Rez the bear on the ground.
* Verify the bear is in a T-pose, arms stretched to the sides.
* Edit your bear, and check the Animated Mesh checkbox
* If the bear is not already dancing, click it to make it dance.
* Verify observers see the same thing you do.
* Take a copy of box1 at secondlife://Aditi/secondlife/Animesh2/92/247/23 and rez it. 
* Verify the Animated Mesh checkbox cannot be modified because you do not have modify permissions for the object. 
* Take a copy of boxes2 at secondlife://Aditi/secondlife/Animesh2/95/248/23
* Verify the Animated Mesh checkbox can only be modified if you are modifying the whole linkset. If you are editing component prims ("Edit linked"), the Animated Mesh box should be disabled. 
* Right-click edit the bear at secondlife://Aditi/secondlife/Animesh2/90/247/23
* Verify you can see the Animated Mesh checkbox is checked and grayed out.
* Take a copy of the Animesh man at secondlife://Aditi/secondlife/Animesh2/7/247/23
* Rez the Animesh man
* Enable Develop > Render Metadata > Joints (requires Preferences > Advanced > Show Develop Menu)
* Verify joints are visible for the man and in addition joints for wings, tail, and rear legs.
* Disable Animated Mesh.
* Verify the joints are no longer visible on the Animesh man.
* Create a cube and enable Animated Mesh
* Verify no joints are visible for the cube.
* Disable Develop > Render Metadata > Joints
===Animated mesh can be rezzed from object inventory.===
* Go to secondlife://Aditi/secondlife/Animesh2/101/248/23
* Take a copy of the popgun.
* Attach the popgun, press M to enter mouselook mode, and left-click to fire.
* Verify you see Raptors drop out of the gun and walk around.
===Selection and Editing===
* Verify you can select an animating Animesh by dragging a selection box around it while the Edit Tools (ctrl+3) are open. 
* Verify all selected animated objects pause all of their animations for the person selecting them.
* Verify observers see the selected Animesh continue to animate.
* Unselecting any animated object should resume its animations.
* Verify you can select an animating Animesh with left-click while the Edit Tools (ctrl+3) are open. (known issue MAINT-7709)
* Verify you can select an animating Animesh with right-click. The standard object right-click menu will appear and the object will be shown with a wireframe.
* Verify selecting an animated object via the Build menu -> Region Objects floater behaves similarly - the animation is stopped. (This is only testable if you are estate owner or manager or parcel owner)
* Editing the translation and rotation of an animated object should work.
* Editing the scale of an animated object will not work.
* Moving an Animesh object across region boundaries while editing should work.
===Agent related text and controls should be hidden for Animesh===
* Hover the mouse cursor over the Animesh man at secondlife://Aditi/secondlife/Animesh2/7/247/23
* Verify that no hovertext appears about the object (This differs from regular objects.) 
* Right-click the Animesh man and inspect the right-click menu.
* Verify there are no Agent related menu items, such as View Profile, Add friend, IM, Call, etc.
* Verify the right-click menu is a typical Object context menu.
===New Diagnostic Displays===
* Verify the following diagnostics display.
* A new debug setting DebugAnimatedObjects defaults to false but can be set to true. This will display additional information in the debug text by each animated object.
* Develop->Render Metadata->Triangle count gives triangle information for objects in the scene. Shows a triangle count for the current LOD. Not restricted to animated objects.
* Develop->Render Metadata->Collision Skeleton will show the collision volumes for animated objects in red (avatars are blue)
* Develop->Avatar->Animation info will display any animations currently playing for an animated object, as it always has for avatars.
===Animated objects should be able to cross region boundaries as directed by a script===
* Go to secondlife://Aditi/secondlife/Animesh2/75/247/23
* Take a copy of the raptor and rez it.
* The Raptor has the Kart script in it. The Kart script is from the Library/Objects/Kart 1.0 object.
* Right-click the raptor and Ride
* Use the arrows to drive and the Page Down or C key to reset if it tips over.
* Verify you can drive the raptor around the region
* Verify you can drive the raptor to an adjacent region.
===Animated objects should continue to play animations after crossing a region boundary===
* Same as "Animated objects should be able to cross region boundaries as directed by a script" test.
* Verify that the Raptor continues to animate after crossing the region boundary.