Embodiment3DModelingStatus

From OpenCog

Status of required 3D models and their features:

The effort for integrating an animation into a Virtual World (and corresponding PVP) may vary, depending on if there is any synchronization to be done with the own model movements (e.g., translation and turning) and/or other objects (e.g., grab/drop/throw objects, bite, kick, etc). For those animations that require special integration handling, a separate page with the details on this is created and they are listed at the beginning of each model section bellow.

Pet model (Chihuahua)

Animations

List of animations that needs special handling for being integrated:

# Name Description Status Exported to Priority
1 idle used while dog is just standing done MV, ReX (named Stand)
2 walk used while dog is moving slowly done MV, ReX (named Walk)
3 run used while dog is moving quickly done MV, ReX (named Run)
4 grab used for picking things up done MV (named grab, grab_first and grab_second), ReX (named Grab, Grab_first and Grab_second)
5 drop used for dropping grabbed objects done MV (named drop, drop_first and drop_second), ReX (named Drop, Drop_first and Drop_second)
6 bark actually, barks twice done MV, ReX (named Bark)
7 wagtail for expressing happiness done MV, ReX (named WagTail)
8 sitdown for sitting down done (both new and old ones) MV (old one named sitdown2), ReX (named Sit_start)
9 sit_end for standing up from sit position done (both new and old ones) MV (old one named sit_end2), ReX (named Sit_end)
10 sit_idle for keeping sit down doing nothing else done (both new and old ones) MV (old one named sit_idle2), ReX (named Sit_idle, SitOnGround, SitOnGround1 and SitOnObject)
11 sit_bark for barking while sit done (both new and old ones) MV (new one named sit_bark0; old one named sit_bark), ReX (named Sit_bark)
12 sit_wagtail for wagging tail while sit done (both new and old ones) MV (new one named sit_wagtail0; old one named sit_wagtail), ReX (named Sit_wagtail)
13 grab_idle for keeping holding an object after grabbing it done MV, ReX (named Grab_idle)
14 grab_sit_idle for keeping holding an object after grabbing it while sit done (both new and old ones) MV (new one named grab_idle0; old one named grab_idle), ReX (named Grab_sit_idle)
15 eat for eating something inside the pet food bowl or, eventually, on the ground done MV, ReX (named Eat)
16 drink for drinking something inside the pet water bowl or, eventually, from another container on the ground done (just like eat) MV, ReX (named Drink)
17 pee for making pee like a dog usually does done (for both left and right sides) MV, ReX (named Pee)
18 poo for making poo like a dog usually does done MV, ReX (named Poo)
19 jumpUp for jumping up forwards (though it should move forward just a bit) and goes back to the standup/idle position done MV, ReX (named JumpUp)
20 beg for begging done (normal,start,idle,end) MV, ReX (named Beg)
21 stretch for stretching done MV, ReX (named Stretch)
22 sniffAt (and sniffLo_standing) for sniffing at something in front of the dog done (both at head and ground levels, respectively) MV, ReX (named SniffHi and SniffLo)
23 lick/lickLo for licking something in front of the dog done (both at head and ground levels) MV, ReX (named LickHi and LickLo)
24 greet for greeting some avatar in front of the dog done MV, ReX (named Greet)
25 turn for turning to left or right done (for both left and right) MV (named turn_xxx, where xxx is start_L, idle_L or end_L for left side; and start_R, idle_R or end_R for right side), ReX (named Turn_start_left, Turning_left and Turn_end_left and similar names for right side)
26 bite for attacking an avatar or another pet (demonstrate aggressiveness) done (both low and high versions) MV (named biteLo and biteHi, respectively), ReX (named BiteLo and BiteHi)
27 shake_head when grabbing something, pet may shake it's head to play with the holding object done MV, ReX (named ShakeHead)
28 sniffLo for sniffing the ground while walking as if looking for something done MV (named sniffLo_xxx, where xxx is start, idle or end), ReX (named Walk_sniffing_start, Walk_sniffing and Walk_sniffing_end)
29 Behavior #1 Play a funny trick when owner is holding food done MV (named B01:trick_for_food), ReX (named TrickForFood)
30 Behavior #2 The dog does a flip while playing fetch done MV (named B02:flip_running)
31 Behavior #3 Dog does a back-flip: http://www.youtube.com/watch?v=72eBqonkOZk&feature=related done MV (named B03:back_flip), ReX (named BackFlip)
32 Behavior #4 While sitting, slaps the palm of another agent done MV (named B04:sit_slap_palm)
33 Behavior #5 Looks up, turning head slowly from side to side, roughly as at 0:20 and 0:35 of http://www.youtube.com/watch?v=gCtNCRtsDZs done MV (named B05:look_up_turn_head), ReX (named LookUpTurnHead)
34 Behavior #6 Run with weight in mouth done MV (named B06:run_front_legs_xxx, where xxx is start, with, without or end)
35 Behavior #7 Runs in circles like at 0:22 of http://www.youtube.com/watch?v=EZ3Ussh-nMc&feature=related done (both left and right versions) MV (although inverted: named B07:run_in_circle_L for right and B07:run_in_circle_R for left), ReX (named RunInCircle_left and RunInCircle_right)
36 Behavior #8 "Tap dancing" like at 0:21 of http://www.youtube.com/watch?v=NMhAytENdQI&feature=related It's OK if our dog does it more slowly. done MV (named B08:tap_dance), ReX (named TapDance)
37 Behavior #9 "Pre-attack" posture like at 0:14 of http://www.youtube.com/watch?v=DfINhcaCrJ4&feature=related done MV (named B09:pre_atack_xxx, where xxx is start, idle or end), ReX (named PreAttack, PreAttack_start, PreAttack_idle and PreAttack_end)
38 Behavior #10 Do "lean with it, rock with it" dance as in http://www.youtube.com/watch?v=i-v63sJUmAc&feature=related (but without the human hands behind it of course -- the dog should do this all by itself) done MV (named B10:lean_rock_dance), ReX (named LeanRockDance)
39 Behavior #11 The play invitation bow done MV (named B11:play_invitation_xxx, where xxx is start, idle or end), ReX (named PlayInvitation, PlayInvitation_start, PlayInvitation_idle and PlayInvitation_end)
40 Behavior #12 The fearful dog posture done MV (named B12:fearful_posture_xxx, where xxx is start, idle or end), ReX (named FearfulPosture, FearfulPosture_start and FearfulPosture_end)
41 Behavior #13 The "aroused" posture, as shown in http://www.humanesocietyofdecatur.com/DogPosture.htm done MV (named B13:aroused_posture_xxx, where xxx is start, idle or end)
42 Behavior #14 A "hiding" posture done MV (named B14:hiding_xxx, where xxx is start, idle or end)
43 Behavior #15 Kick soccer ball. We need separate animations for kicking with the right foot, and with the left foot done MV (named B15:kick_soccer_ball_L and B15:kick_soccer_ball_R)
44 Behavior #16 Handling the soccer ball. This basically means: walking forward while giving the ball small kicks, periodically done MV (named B16:handling_ball)
45 Behavior #17 Receiving a pass in soccer. This means: When someone else kicks the ball to the dog, it must stop the ball with its foot, so that the ball is in front of it (and it can then kick the ball or handle the ball) done MV (named B17:receive_soccer_pass)
46 Behavior #18 Curling up... http://www.bassetandbeagle.org/images/Adoptable/PDsmall.JPG done MV (start, idle, end)
47 Behavior #19 Hiding face with hands. The dog should do this while standing up. Reference human behavior #22 done MV (named B18:curled_xxx, where xxx is start, idle or end), ReX (named HideFace, HideFace_start, HideFace_idle and HideFace_end)
48 Behavior #20 Kicking soccer ball sideways, with front foot done MV (named B20:kick_ball_sideways_X, where X is L or R)
49 Behavior #21 Kicking soccer ball backwards, with back foot done MV (named B21:kick_ball_backwards_X, where X is L or R)
50 play_invitation_idle idle animation for Behavior #11 (whose animation should be split in 2) done MV (named B11:play_invitation_idle), ReX (named PlayInvitation_idle)
51 fearful_idle idle animation for Behavior #12 (whose animation should be split in 2) done MV (named B12:fearful_posture_idle), ReX (named FearfulPosture_idle)
52 aroused_idle idle animation for Behavior #13 (whose animation should be split in 2) done MV (named B13:aroused_posture_idle)
53 hiding_idle idle animation for Behavior #14 (whose animation should be split in 2) done MV (named B14:hiding_idle)
54 curled_idle idle animation for Behavior #18 (whose animation should be split in 2) done MV (named B18:curled_idle)
55 hiding_face_idle idle animation for Behavior #19 (whose animation should be split in 2) done MV (named B19:hide_face_idle), ReX (named HideFace_idle)

Attachment Points (Sockets)

For now, pet needs only 1 attachment point at its mouth, for grabbing objects (accessories like stick, bone and small ball). It's done and it works fine (technically speaking) for the current accessory objects. However, the attachment point position offsets depends on each specific accessory object so that it fits better the dog's mouth.

Facial Expressions

A set of facial expressions is desirable for expressing emotional feelings (fear, love, anger, excitement, etc). I'll collect them from some emails and put them here later...

Human model (Woman -- originally in red dress)

Animations

List of animations that needs special handling for being integrated:

# Name Description Status Exported to Priority
1 idle used while avatar is just standing done MV, ReX (named idle and Stand)
2 walk used while avatar is moving done MV, ReX (named Walk)
4 grab used for picking things up done (compatible with grab_idle only, not with hold_idle) MV (named grab, grab_first and grab_second), ReX (named Grab, Grab_first and Grab_second)
5 drop used for dropping grabbed objects done (compatible with grab_idle only, not with hold_idle) MV, ReX (named Drop, which is compatible with grab_idle; and Drop_from_hold_idle)
6 grab_idle used for keeping holding grabbed objects (compatible with grab/drop/throw only, not with pickup/putdown) done MV, ReX (named Grab_idle)
7 throw for throwing an object that the avatar is holding done (compatible with grab_idle only, not with hold_idle) MV (named throw_first and throw_second), ReX (named Throw_first and Throw_second)
8 sit for sitting down on the ground done MV (named sit_start), ReX (named Sit_start)
9 sit_idle for keeping sit on the ground done MV, ReX (named Sit_idle)
10 getup for standing up from sit position done MV (named sit_end), ReX (named Sit_start)
11 lie_down for lying down done MV (named lie_start), ReX (named Lie_start)
12 put_down for putting the grabbed object down on the ground (not only drop it) done (compatible with hold_idle -- the held object in front of the body, not with grab_idle) MV (named putdown), ReX (named PutDown)
13 pick_up for picking up an object (compatible with hold_idle -- the held object in front of the body, not with grab_idle) done MV, ReX (named PickUp)
14 point_forward_90 for pointing forward to something (arm performing a 90 degree movement) done MV (named point90_xxx, where xxx is start, idle or end), ReX (named Point90, Point90_start, Point90_idle and Point90_end)
15 kick for kicking something or even a pet or avatar (with some aggressiveness) done MV, ReX (named Kick)
16 liedown_idle for keeping lie down done MV (named lie_idle), ReX (named Lie_idle)
17 getup_from_liedown for getting up from a lie down position done MV (named lie_end), ReX (named Lie_end)
18 grab_sit_idle for keeping sit and holding an object done MV, ReX (named Grab_sit_idle)
19 grab_liedown_idle for keeping lie down and holding an object done MV, ReX (named Grab_lie_idle)
20 hold for keeping holding an object done MV (named hold_idle)
21 turn for turning to both left or right sides done (named turnL_start, turnL_idle, turnL_end, turnR_start, turnR_idle and turnR_end) MV (named Turn_start_left, Turning_left and Turn_end_left -- and similar ones for *_right)
22 Behavior #1 Turning in a circle, while standing done MV (named B01:turningCircle), ReX (named TurnInCircle)
23 Behavior #2 Turning the head up and looking into the air done MV (named B02:headUp), ReX (named HeadUp)
24 Behavior #4 Raising the hand in the air in front of the body, with the palm facing forward, so as to slap the palm of another avatar or dog (for that, the woman should be sit) done (for both standing and sitting) MV (named B04:slap and B04:sit_slap respectively), ReX (named Slap and Sit_slap)
25 Behavior #5 Run in circles (reference dog behavior #7) done MV (named B05:runInCircle), ReX (named RunInCircle)
26 Behavior #6 Tap dancing, similar to dog behavior #8 done MV (named B06:tapDance), ReX (named TapDance)
27 Behavior #7 "Lean with it, rock with it" dance, similar to dog behavior #10 A good illustration of this very simple dance is here: http://uk.youtube.com/watch?v=VtAj4yAqRpQ (look at seconds 0 through 20) Another one is here: http://uk.youtube.com/watch?v=qSzEcelBcZI We don't need this to be done extremely artistically, it can be done simply; but some humor can be injected as well... done MV (named B07:leanRockDance -- the arms deform a bit in some movements), ReX (named LeanRockDance) border="1"
28 Behavior #8 The "What the fuck do you want?" gesture at 1:43 of http://www.youtube.com/watch?v=jVCuyrPk7P4 done MV (named B08:whatFUWant), ReX (named WhatFUWant)
29 Behavior #9 Good, at 0:21 of http://www.youtube.com/watch?v=xHSe1ogHYUw done MV (named B09:good)
30 Behavior #10 Bad, at 0:27 of above done MV (named B10:bad), ReX (named Bad)
31 Behavior #11 Time Out, at 0:42 of above done MV (named B11:timeOut), ReX (named TimeOut)
32 Behavior #12 You're Dead, at 0:56 of above done MV (named B12:UrDead), ReX (named URDead)
33 Behavior #13 One / Just a Second, at 1:04 of above done MV (named B13:one/JustASecond), ReX (named One_JustASecond)
34 Behavior #14 Stop, at 1:42 of above done MV (named B14:stop), ReX (named Stop)
35 Behavior #15 Come Here, at 1:49 of above done MV (named B15:comeHere), ReX (named ComeHere)
36 Behavior #16 Let's fight, at 2:00 of above done MV (named B16:letsFight_xxx, where xxx is start, idle or end), ReX (named LetsFight, LetsFight_start, LetsFight_idle and LetsFight_end)
37 Behavior #17 Allegiance/love, at 3:11 of above done MV (named B17:Allegiance/love), ReX (named Allegiance_Love)
38 Behavior #18 (a) Kicking a soccer ball done MV (named B18:kickL and B18:kickR for kicking left and right, respectively), ReX (named KickBall_left and KickBall_right)
39 Behavior #18 (b) Handling a soccer ball (i.e., running forward slowly while making small kicks forward to the ball) done MV (both quickly and slowly; the former is a bit shifted to her right side; named B18:handle_xxx, where xxx is start, idle or end -- for quickly -- and start2, idle2 and end2 -- for slowly), ReX (named Walk_handlingBall, Walk_handleBall_start, Walk_handleBall_end)
40 Behavior #19 Kicking a soccer ball sideways, with the side of the foot done MV (named B19:kickSidewaysL and B19:kickSidewaysR for using left and right legs respectively), ReX (named KickBallSideways_left and KickBallSideways_right) -- note that the left leg kicks to the right side and vice-versa
41 Behavior #20 Kicking a soccer ball backwards, with the back of the foot done MV (named B20:kickBackwardL and B20:kickBackwardR for left and right legs respecively), ReX (named KickBallBackwards_left and KickBallBackwards_right)
42 Behavior #21 Receiving a pass (reference dog behavior #17) done MV (named B21:receivingPassL and B21:receivingPassR for left and right legs respectively), ReX (named ReceivePass_right and ReceivePass_left) -- for receiving pass with right and left legs respectively; note that if the pass comes from right, it uses the left leg to receive it and vice-versa
43 Behavior #22 Hiding face with hands, see http://www.nelsonhouse.on.ca/graphics/childhide01.jpg done MV (named B22:hidingFace_xxx, where xxx is start, idle or end), ReX (named HideFace, HideFace_start, HideFace_idle and HideFace_end)
44 Behavior #23 Fetal position, as in http://wwwdelivery.superstock.com/WI/223/1557/PreviewComp/SuperStock_1557R-298815.jpg done MV (named B23:fetal_xxx, where xxx is start, idle or end -- leg deformation issue remains, but I don't think it's solvable with the current skeleton), ReX (named FetalPos_start, FetalPos_idle, FetalPos_end)
45 Behavior #24 Fetal position (#23), but with the head up and the face looking forward done MV (named B24:fetalHeadUp_xxx, where xxx is start, idle or end -- leg deformation issue remains, but I don't think it's solvable with the current skeleton), ReX (named FetalPosHeadUp_start, FetalPosHeadUp_idle, FetalPosHeadUp_end)
46 lets_fight_idle idle animation for Behavior #16 (whose animation should be split in 2) done MV (named B16:letsFight_idle), ReX (named LetsFight_idle)
47 hiding_face_idle idle animation for Behavior #22 (whose animation should be split in 2) done MV (named B22:hidingFace_idle), ReX (named HideFace_idle)
48 fetal_position_idle idle animation for Behavior #23 (whose animation should be split in 2) done MV (named B23:fetal_idle), ReX (named FetalPos_idle)
49 fetal_position_head_up_idle idle animation for Behavior #24 (whose animation should be split in 2) done MV (named B24:fetalHeadUp_idle), ReX (named FetalPosHeadUp_idle)
50 point_forward_45 for pointing forward to something small and not too near (arm rotated 45 degrees from its initial position in idle animation) done MV (named point45_xxx, where xxx is start, idle or end), ReX (named Point45, Point45_start, Point45_idle, Point45_end)
51 point_forward_15 for pointing forward to something small and very near (arm rotated 15 degrees from its initial position in idle animation) done MV (named point15_xxx, where xxx is start, idle or end), ReX (named Point15, Point15_start, Point15_idle, Point15_end)

Attachment Points (Sockets)

For now, avatar needs only 1 attachment point at its right hand, for grabbing objects (accessories like stick, bone and small ball). It seems it was done in 3D max, but it was not exported correctly to Multiverse format yet.


Accessories

# Name Description Status Exported To Priority
1 bone a toy in format of bone to be grabbed/dropped by the pet (or the avatar) done MV
2 pet_stick a wood stick to be grabbed/dropped by the pet (or the avatar) done MV
3 pet_ball a small ball to be grabbed/dropped by the pet (or the avatar). So it must fit the pet's mouth (and avatar's hand) done MV
4 pet_doghouse a dog house done MV
5 pet_waterbowl a pet bowl with water inside done MV
6 pet_foodbowl a pet bowl with dog food inside done MV
7 soccer ball (1) done MV
8 soccer goal (2) done MV (although it has issues with transparency and shadows)
9 Dog toy (3a) http://pet.imageg.net/graphics/product_images/pPETS-3760026t400.jpg done MV
10 Dog toy (3b) http://mod-dog.com/blog/wp-content/uploads/2007/08/forthedogs_1838_148075.jpg done MV
11 Dog toy (3c) http://www.dog-online.co.uk/images/drnoyexsmallteddy_02.jpg done MV
12 Dog toy (3d) http://www.athleticpets.com/images/Florida_plush_football.jpg done MV
13 Dog toy (3e) http://www.dogtoys365.com/uploaded_images/dog-chew-toys-725801.jpg done MV
14 Dog toy box (4) A dog toy box, maybe like the box in this image: http://www.dog-pawlor.com/images/dog_toy_box.jpg (but we don't need all the toys that are in this box, of course). Also, the box should have a lid that can be placed on the box, or removed from it. done MV
15 A soccer ball The same one used in soccer-related animations done (the same as object #7) MV
16 A poo object The same one(s) used in the poo animation requested

Exportation issues and tips

  • Exportation to MV-compatible Ogre format: Junfei Guo's friend has already exported most of the animations to MV-compatible Ogre format. He haven't explain the process to achieve this though (September 17th, 2008) .
  • Exportation to Rex-compatible Ogre format:
    • Jason Maskell (a volunteer for OpenCog project) has written up a doc with instructions on how to export animations from 3ds max to Rex-compatible Ogre format at http://docs.google.com/View?docid=ddgdrrm5_57s3bfgcf6.
    • While exporting a model:
      • for selecting the model, use the "select by name" button from the tool bar or the "Edit->Select by->Name" menu item.
      • If the model (geometry, e.g. "ChihuahuaBase") does not appear in the list to be selected, it must be hidden. For unhide it, you should use the mouse right-click menu on the model area and select "Unhide by name" or the "Unhide all" option so that it appears next time.
    • After exporting a model as explained above, you should pos-process the exported model using RexMeshTool, as follows:
      • Scale => 0.004
      • X Align => Center
      • Y Align => Min
      • Z Align => Center
      • Y Rotate => 180
      • Then, check the animations and save the changes (you will probably need to change the Y Rotate to better check the animation. If so, don't forget to set it to 180 before saving the changes).
    • You can also export each animation (3ds max) separately and then merge them into an existing one later using RexMeshTool (for that, they should have the same shape and transformations - scale, rotation, alignment, etc -- as above).

-- Main.WelterLuigi - 07 May 2008