しかし、それには条件がある。その際に前のイベントである「changed ()」イベント内の「PERMISSION_TRIGGER_ANIMATION」と「PERMISSION_TAKE_CONTROLS」が実行されることによって、下図のように「llStartAnimation()」と「llTakeControls()」が使用可能になる(「llRequestPermissions」「PERMISSION_TRIGGER_ANIMATION」「PERMISSION_TAKE_CONTROLS」については第36回を参照)。
「組み込み」(ビルトイン)アニメーション
さて、最初に「llStartAnimation()」という関数を見ようと思う。いつものように、LSL Portalを参照しよう。
上図の「(string anim)」部分に現在、「("motorcycle_sit")」が入っている。ここにはデータとしてストリング型、つまり、文字列が入るので、形式としては問題ない。しかし、実は、「anim」は「an item in inventory(インベントリー内アイテム)」と定義されている(上図赤枠内)。つまり、プリム内のインベントリーに入っているアイテムを参照するよう決められている。
しかし、実際には下図左のように、このプリム内のインベントリーである「コンテンツ」には現在、スクリプトファイルしか入っていない。本来であれば、下図右のようにアニメーションファイルを「プリム内コンテンツフォルダ」に入れる必要がある。
実は、このアニメーションは、「組み込み」(ビルトイン)されているために、わざわざ「プリム内コンテンツフォルダ」内に入れる必要がないのである(「組み込み」の意味については第23回を参照)。
このようにユーザーがわざわざ作って入れておかなくてもいいよう、Linden Lab側でアニメーションまで用意してくれているのだ。LSL Portalを参照すると、下図のように、多くのアニメーションが既に組み込まれているのがわかる。