<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Ok, I  downloaded and checked the source.<br>
    After some digging around I was able to see what was happening.<br>
    Made some quick and dirty changes and was able to make the NPC play
    internal animations!! How about that !!<br>
    <br>
    Before I explain what I found let me first state that I was
    pleasantly surprised by how smooth the whole process of setting up
    and building the project was.<br>
    I was dreading a complicated setup and a large build time.<br>
    The setup was simple and the build pretty fast, usually less than a
    minute.<br>
    Thank you developers for making this so easy.<br>
    <br>
    Anyway here is what I found.<br>
    If the animation specified in an animation function does not exist
    in the prim then the server checks to see if there is an internal
    animation with that name.<br>
    If it finds one then it passes its UUID  to the client else it
    passes UUID.Zero.<br>
    <br>
    For normal avatar this is done, I think,  by class
    "OpenSim.Region.ClientStack.lindenUDP.LLClientView" method
    GetDefaultAnimation(string name)<br>
    This basically  checks against the animations listed in the
    "data/avataranimations.xml" file<br>
    <br>
    For NPC this is done by
    "OpenSim.region.OptionalModules.World.NPCAvatar" method
    GetDefaultAnimation(string name)<br>
    For some reason this does not perform any check and always returns
    UUID.Zero.<br>
    <br>
    I copied the method code from LLClientview to NPCAvatar and was able
    to make the NPC Avatar play internal animations.<br>
    <br>
    Now I am not sure if the code was intentionally written this way and
    if not then if the hack which I did was the proper  way to solve
    this.<br>
    Hope some developer helps out with this.<br>
    <br>
    Thanks<br>
    Sat<br>
    <br>
    <br>
    On 3/5/2012 9:41 PM, satguru p srivastava wrote:
    <blockquote cite="mid:4F558773.7090400@mchsi.com" type="cite">
      <meta content="text/html; charset=ISO-8859-1"
        http-equiv="Content-Type">
      I think I will download the source code and have a go at it.<br>
      Thanks<br>
      Sat<br>
      <br>
      <br>
      On 3/5/2012 9:08 PM, Gudule Lapointe wrote:
      <blockquote
        cite="mid:D5FA022B-90C9-4B38-9A23-BE470C6590AB@spekuloos.be"
        type="cite">
        <div>I am not quite sure about the detailed protocol between
          server and client for animation, so I would be happy if
          someone smarter on this field can confirm or correct...</div>
        <div><br>
        </div>
        <div>What I am sure is </div>
        <div><span class="Apple-tab-span" style="white-space: pre; "> </span>- client



          can play the animation if it's included in the client software
          or sent by the server</div>
        <div><span class="Apple-tab-span" style="white-space: pre; "> </span>-
          script can send the animation only if it's inside the prim
          where the script resides.</div>
        <div>That is: first steps needed to animate an avatar</div>
        <div><br>
        </div>
        <div>After the avatar has confirmed and accepted the animation,
          there is a protocol, which is certainly more complicate, to
          deploy this animation to other viewers, (exchange of UUID /
          animations, updates on moves, whatever…). But it would occur
          only once the avatar has confirmed it can handle the
          animation </div>
        <div><br>
        </div>
        <div>So, it sounds logical to me that the avatar can be animated
          only if it's own client owns the animation.</div>
        <div><br>
        </div>
        <div apple-content-edited="true"> <span
            class="Apple-style-span" style="border-collapse: separate;
            color: rgb(0, 0, 0); font-family: Helvetica; font-style:
            normal; font-variant: normal; font-weight: normal;
            letter-spacing: normal; line-height: normal; orphans: 2;
            text-align: -webkit-auto; text-indent: 0px; text-transform:
            none; white-space: normal; widows: 2; word-spacing: 0px;
            -webkit-border-horizontal-spacing: 0px;
            -webkit-border-vertical-spacing: 0px;
            -webkit-text-decorations-in-effect: none;
            -webkit-text-size-adjust: auto; -webkit-text-stroke-width:
            0px; font-size: medium; "><span class="Apple-style-span"
              style="border-collapse: separate; color: rgb(0, 0, 0);
              font-family: Helvetica; font-style: normal; font-variant:
              normal; font-weight: normal; letter-spacing: normal;
              line-height: normal; orphans: 2; text-align: -webkit-auto;
              text-indent: 0px; text-transform: none; white-space:
              normal; widows: 2; word-spacing: 0px;
              -webkit-border-horizontal-spacing: 0px;
              -webkit-border-vertical-spacing: 0px;
              -webkit-text-decorations-in-effect: none;
              -webkit-text-size-adjust: auto; -webkit-text-stroke-width:
              0px; font-size: medium; ">
              <div style="word-wrap: break-word; -webkit-nbsp-mode:
                space; -webkit-line-break: after-white-space; "><span
                  class="Apple-style-span" style="border-collapse:
                  separate; color: rgb(0, 0, 0); font-family: Helvetica;
                  font-style: normal; font-variant: normal; font-weight:
                  normal; letter-spacing: normal; line-height: normal;
                  orphans: 2; text-align: -webkit-auto; text-indent:
                  0px; text-transform: none; white-space: normal;
                  widows: 2; word-spacing: 0px;
                  -webkit-border-horizontal-spacing: 0px;
                  -webkit-border-vertical-spacing: 0px;
                  -webkit-text-decorations-in-effect: none;
                  -webkit-text-size-adjust: auto;
                  -webkit-text-stroke-width: 0px; font-size: medium; ">
                  <div style="word-wrap: break-word; -webkit-nbsp-mode:
                    space; -webkit-line-break: after-white-space; "><span
                      class="Apple-style-span" style="border-collapse:
                      separate; color: rgb(0, 0, 0); font-family:
                      Helvetica; font-style: normal; font-variant:
                      normal; font-weight: normal; letter-spacing:
                      normal; line-height: normal; orphans: 2;
                      text-align: -webkit-auto; text-indent: 0px;
                      text-transform: none; white-space: normal; widows:
                      2; word-spacing: 0px;
                      -webkit-border-horizontal-spacing: 0px;
                      -webkit-border-vertical-spacing: 0px;
                      -webkit-text-decorations-in-effect: none;
                      -webkit-text-size-adjust: auto;
                      -webkit-text-stroke-width: 0px; font-size: medium;
                      ">
                      <div style="word-wrap: break-word;
                        -webkit-nbsp-mode: space; -webkit-line-break:
                        after-white-space; "><span
                          class="Apple-style-span"
                          style="border-collapse: separate; color:
                          rgb(0, 0, 0); font-family: Helvetica;
                          font-style: normal; font-variant: normal;
                          font-weight: normal; letter-spacing: normal;
                          line-height: normal; orphans: 2; text-align:
                          -webkit-auto; text-indent: 0px;
                          text-transform: none; white-space: normal;
                          widows: 2; word-spacing: 0px;
                          -webkit-border-horizontal-spacing: 0px;
                          -webkit-border-vertical-spacing: 0px;
                          -webkit-text-decorations-in-effect: none;
                          -webkit-text-size-adjust: auto;
                          -webkit-text-stroke-width: 0px; font-size:
                          medium; ">
                          <div style="word-wrap: break-word;
                            -webkit-nbsp-mode: space;
                            -webkit-line-break: after-white-space; "><span
                              class="Apple-style-span"
                              style="border-collapse: separate; color:
                              rgb(0, 0, 0); font-family: Helvetica;
                              font-style: normal; font-variant: normal;
                              font-weight: normal; letter-spacing:
                              normal; line-height: normal; orphans: 2;
                              text-align: -webkit-auto; text-indent:
                              0px; text-transform: none; white-space:
                              normal; widows: 2; word-spacing: 0px;
                              -webkit-border-horizontal-spacing: 0px;
                              -webkit-border-vertical-spacing: 0px;
                              -webkit-text-decorations-in-effect: none;
                              -webkit-text-size-adjust: auto;
                              -webkit-text-stroke-width: 0px; font-size:
                              medium; ">
                              <div style="word-wrap: break-word;
                                -webkit-nbsp-mode: space;
                                -webkit-line-break: after-white-space; ">
                                <div>--</div>
                                <div><a moz-do-not-send="true"
                                    href="http://www.speculoos.net/">http://www.speculoos.net/</a></div>
                                <div><a moz-do-not-send="true"
                                    href="secondlife://speculoos.net:8002/">secondlife://speculoos.net:8002/</a></div>
                                <div>Speculoos, the belgian
                                  cookie-flavored metaverse</div>
                              </div>
                            </span></div>
                        </span></div>
                    </span></div>
                </span></div>
            </span></span> </div>
        <br>
        <div>
          <div>Le 6 mars 2012 à 03:46, satguru p srivastava a écrit :</div>
          <br class="Apple-interchange-newline">
          <blockquote type="cite">
            <meta content="text/html; charset=ISO-8859-1"
              http-equiv="Content-Type">
            <div bgcolor="#FFFFFF" text="#000000"> I guess I must be
              dense :(<br>
              I still do not get it.<br>
              <br>
              Below is how I think the animation system works.<br>
              Let me know where I am wrong.<br>
              I have  a Avatar or a NPC with an attachment.<br>
              The attachment has script which plays an animation using
              an animation function like llStartAnimation().<br>
              Now like any other  script, the script when triggered,
              will  run on the server side. (Right ?)<br>
              When the server encounters the animation function  the
              server will send a message to the client asking it to play
              an animation with that UUID<br>
              If the client has an animation with that UUID it will
              animate the Avatar or NPC with that animation else it will
              ask the server to send the animation and will animate when
              it receives it.<br>
              If the animation is internal animation and  if it is, as
              you say, part of the client  then the client already has
              it and  should be able to animate the Avatar/NPC<br>
              <br>
              Sorry to belabor this but it seems I am obviously missing
              a major concept and would like to figure out what :))<br>
              <br>
              Thanks<br>
              Sat<br>
              <br>
              <br>
              On 3/5/2012 7:55 PM, Gudule Lapointe wrote:
              <blockquote
                cite="mid:5C16ACB6-7AC9-4E8A-8D0C-FE76C458107C@spekuloos.be"
                type="cite">Obviously, everything runs on client side,
                that's the point of a client ;-)
                <div><br>
                </div>
                <div>I think what was meant is that internal animations
                  are part of the client, not loaded from server.</div>
                <div><br>
                </div>
                <div>As your NPC is not controlled by a client, it
                  doesn't have these animations at disposal, unless you
                  put them in your script's prim.</div>
                <div><br>
                  <div apple-content-edited="true"> <span
                      class="Apple-style-span" style="border-collapse:
                      separate; font-family: Helvetica; font-style:
                      normal; font-variant: normal; font-weight: normal;
                      letter-spacing: normal; line-height: normal;
                      orphans: 2; text-align: -webkit-auto; text-indent:
                      0px; text-transform: none; white-space: normal;
                      widows: 2; word-spacing: 0px;
                      -webkit-border-horizontal-spacing: 0px;
                      -webkit-border-vertical-spacing: 0px;
                      -webkit-text-decorations-in-effect: none;
                      -webkit-text-size-adjust: auto;
                      -webkit-text-stroke-width: 0px; font-size: medium;
                      "><span class="Apple-style-span"
                        style="border-collapse: separate; font-family:
                        Helvetica; font-style: normal; font-variant:
                        normal; font-weight: normal; letter-spacing:
                        normal; line-height: normal; orphans: 2;
                        text-align: -webkit-auto; text-indent: 0px;
                        text-transform: none; white-space: normal;
                        widows: 2; word-spacing: 0px;
                        -webkit-border-horizontal-spacing: 0px;
                        -webkit-border-vertical-spacing: 0px;
                        -webkit-text-decorations-in-effect: none;
                        -webkit-text-size-adjust: auto;
                        -webkit-text-stroke-width: 0px; font-size:
                        medium; ">
                        <div style="word-wrap: break-word;
                          -webkit-nbsp-mode: space; -webkit-line-break:
                          after-white-space; "><span
                            class="Apple-style-span"
                            style="border-collapse: separate;
                            font-family: Helvetica; font-style: normal;
                            font-variant: normal; font-weight: normal;
                            letter-spacing: normal; line-height: normal;
                            orphans: 2; text-align: -webkit-auto;
                            text-indent: 0px; text-transform: none;
                            white-space: normal; widows: 2;
                            word-spacing: 0px;
                            -webkit-border-horizontal-spacing: 0px;
                            -webkit-border-vertical-spacing: 0px;
                            -webkit-text-decorations-in-effect: none;
                            -webkit-text-size-adjust: auto;
                            -webkit-text-stroke-width: 0px; font-size:
                            medium; ">
                            <div style="word-wrap: break-word;
                              -webkit-nbsp-mode: space;
                              -webkit-line-break: after-white-space; "><span
                                class="Apple-style-span"
                                style="border-collapse: separate;
                                font-family: Helvetica; font-style:
                                normal; font-variant: normal;
                                font-weight: normal; letter-spacing:
                                normal; line-height: normal; orphans: 2;
                                text-align: -webkit-auto; text-indent:
                                0px; text-transform: none; white-space:
                                normal; widows: 2; word-spacing: 0px;
                                -webkit-border-horizontal-spacing: 0px;
                                -webkit-border-vertical-spacing: 0px;
                                -webkit-text-decorations-in-effect:
                                none; -webkit-text-size-adjust: auto;
                                -webkit-text-stroke-width: 0px;
                                font-size: medium; ">
                                <div style="word-wrap: break-word;
                                  -webkit-nbsp-mode: space;
                                  -webkit-line-break: after-white-space;
                                  "><span class="Apple-style-span"
                                    style="border-collapse: separate;
                                    font-family: Helvetica; font-style:
                                    normal; font-variant: normal;
                                    font-weight: normal; letter-spacing:
                                    normal; line-height: normal;
                                    orphans: 2; text-align:
                                    -webkit-auto; text-indent: 0px;
                                    text-transform: none; white-space:
                                    normal; widows: 2; word-spacing:
                                    0px;
                                    -webkit-border-horizontal-spacing:
                                    0px;
                                    -webkit-border-vertical-spacing:
                                    0px;
                                    -webkit-text-decorations-in-effect:
                                    none; -webkit-text-size-adjust:
                                    auto; -webkit-text-stroke-width:
                                    0px; font-size: medium; ">
                                    <div style="word-wrap: break-word;
                                      -webkit-nbsp-mode: space;
                                      -webkit-line-break:
                                      after-white-space; "><span
                                        class="Apple-style-span"
                                        style="border-collapse:
                                        separate; font-family:
                                        Helvetica; font-style: normal;
                                        font-variant: normal;
                                        font-weight: normal;
                                        letter-spacing: normal;
                                        line-height: normal; orphans: 2;
                                        text-align: -webkit-auto;
                                        text-indent: 0px;
                                        text-transform: none;
                                        white-space: normal; widows: 2;
                                        word-spacing: 0px;
                                        -webkit-border-horizontal-spacing:
                                        0px;
                                        -webkit-border-vertical-spacing:
                                        0px;
                                        -webkit-text-decorations-in-effect:
                                        none; -webkit-text-size-adjust:
                                        auto; -webkit-text-stroke-width:
                                        0px; font-size: medium; ">
                                        <div style="word-wrap:
                                          break-word; -webkit-nbsp-mode:
                                          space; -webkit-line-break:
                                          after-white-space; ">
                                          <div>--</div>
                                          <div><a moz-do-not-send="true"
href="http://www.speculoos.net/">http://www.speculoos.net/</a></div>
                                          <div><a moz-do-not-send="true"
href="secondlife://speculoos.net:8002/">secondlife://speculoos.net:8002/</a></div>
                                          <div>Speculoos, the belgian
                                            cookie-flavored metaverse</div>
                                        </div>
                                      </span></div>
                                  </span></div>
                              </span></div>
                          </span></div>
                      </span></span> </div>
                  <br>
                  <div>
                    <div>Le 6 mars 2012 à 02:48, satguru p srivastava a
                      écrit :</div>
                    <br class="Apple-interchange-newline">
                    <blockquote type="cite">
                      <meta content="text/html; charset=ISO-8859-1"
                        http-equiv="Content-Type">
                      <div bgcolor="#FFFFFF" text="#000000"> Garmin,<br>
                        <br>
                        Thanks for pointing out the BVH files.<br>
                        121 files!!<br>
                        A bit of a pain uploading  them :)<br>
                        You also loose the per bone priorites which you
                        get with internal/default animations.<br>
                        Also I am assuming that user loaded animations
                        are not as efficient as internal ones. Right?<br>
                        <br>
                        I am still curious why the internal animations
                        do not play.<br>
                        As far as I know all animations run on client
                        side.<br>
                        The triggers for animation can come from client
                        side (example when a users presses a key to make
                        the avatar walk)<br>
                        or from server side  (example when if it is
                        being called from script).<br>
                        NPCs animations are triggered from scripts.<br>
                        How is this different from Avatar animations
                        being triggered from scripts ?<br>
                        <br>
                        Thanks<br>
                        Sat<br>
                        <br>
                        <br>
                        <br>
                        On 3/5/2012 5:34 AM, Garmin Kawaguichi wrote:
                        <blockquote
                          cite="mid:61C258FF7E4B42D495606B98C3937474@Deimos"
                          type="cite">
                          <meta content="text/html; charset=ISO-8859-1"
                            http-equiv="Content-Type">
                          <meta name="GENERATOR" content="MSHTML
                            8.00.6001.19154">
                          <style></style>
                          <div><font face="Arial" size="2">True,
                              Trinity!  User Playable Internal
                              Animations are serverside; you cannot use
                              them with NPCs but...</font></div>
                          <div> </div>
                          <div><font face="Arial" size="2">... the BVH
                              files corresponding to the Internal
                              Animation are at : </font></div>
                          <div><font face="Arial" size="2"><a
                                moz-do-not-send="true"
href="http://static-secondlife-com.s3.amazonaws.com/downloads/avatar/bvh_files.zip">http://static-secondlife-com.s3.amazonaws.com/downloads/avatar/bvh_files.zip</a></font></div>
                          <div><font face="Arial" size="2">as it is
                              specified in the SL Wiki : <a
                                moz-do-not-send="true"
                                href="http://wiki.secondlife.com/wiki/Internal_Animations">http://wiki.secondlife.com/wiki/Internal_Animations</a></font></div>
                          <div> </div>
                          <div><font face="Arial" size="2">GCI</font></div>
                          <blockquote style="BORDER-LEFT: #000000 2px
                            solid; PADDING-LEFT: 5px; PADDING-RIGHT:
                            0px; MARGIN-LEFT: 5px; MARGIN-RIGHT: 0px">
                            <div style="FONT: 10pt arial">----- Original
                              Message ----- </div>
                            <div style="FONT: 10pt arial; BACKGROUND:
                              #e4e4e4; font-color: black"><b>From:</b> <a
                                moz-do-not-send="true"
                                title="trinity93@gmail.com"
                                href="mailto:trinity93@gmail.com">Trinity</a>
                            </div>
                            <div style="FONT: 10pt arial"><b>Sent:</b>
                              Monday, March 05, 2012 6:58 AM</div>
                            <div style="FONT: 10pt arial"><b>Subject:</b>
                              Re: [Opensim-users] NPC and internal
                              Animations</div>
                            Because some animations are built into the
                            viewer and npcs dont use a viewer and
                            perhaps for security reasons. Im not really
                            completely sure to be honest.<br>
                          </blockquote>
                          <br>
                          <fieldset class="mimeAttachmentHeader"></fieldset>
                          <br>
                          <pre wrap="">_______________________________________________
Opensim-users mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:Opensim-users@lists.berlios.de">Opensim-users@lists.berlios.de</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="https://lists.berlios.de/mailman/listinfo/opensim-users">https://lists.berlios.de/mailman/listinfo/opensim-users</a>
</pre>
                        </blockquote>
                      </div>
                      _______________________________________________<br>
                      Opensim-users mailing list<br>
                      <a moz-do-not-send="true"
                        href="mailto:Opensim-users@lists.berlios.de">Opensim-users@lists.berlios.de</a><br>
                      <a moz-do-not-send="true"
                        class="moz-txt-link-freetext"
                        href="https://lists.berlios.de/mailman/listinfo/opensim-users">https://lists.berlios.de/mailman/listinfo/opensim-users</a><br>
                    </blockquote>
                  </div>
                  <br>
                </div>
                <br>
                <fieldset class="mimeAttachmentHeader"></fieldset>
                <br>
                <pre wrap="">_______________________________________________
Opensim-users mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:Opensim-users@lists.berlios.de">Opensim-users@lists.berlios.de</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="https://lists.berlios.de/mailman/listinfo/opensim-users">https://lists.berlios.de/mailman/listinfo/opensim-users</a>
</pre>
              </blockquote>
            </div>
            _______________________________________________<br>
            Opensim-users mailing list<br>
            <a moz-do-not-send="true"
              href="mailto:Opensim-users@lists.berlios.de">Opensim-users@lists.berlios.de</a><br>
            <a moz-do-not-send="true" class="moz-txt-link-freetext"
              href="https://lists.berlios.de/mailman/listinfo/opensim-users">https://lists.berlios.de/mailman/listinfo/opensim-users</a><br>
          </blockquote>
        </div>
        <br>
        <br>
        <fieldset class="mimeAttachmentHeader"></fieldset>
        <br>
        <pre wrap="">_______________________________________________
Opensim-users mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:Opensim-users@lists.berlios.de">Opensim-users@lists.berlios.de</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="https://lists.berlios.de/mailman/listinfo/opensim-users">https://lists.berlios.de/mailman/listinfo/opensim-users</a>
</pre>
      </blockquote>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
Opensim-users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Opensim-users@lists.berlios.de">Opensim-users@lists.berlios.de</a>
<a class="moz-txt-link-freetext" href="https://lists.berlios.de/mailman/listinfo/opensim-users">https://lists.berlios.de/mailman/listinfo/opensim-users</a>
</pre>
    </blockquote>
  </body>
</html>