ソラマメブログ
QRコード
QRCODE
Information
読者登録
メールアドレスを入力して登録する事で、このブログの新着エントリーをメールでお届けいたします。 解除は→こちら
現在の読者数 1人
オーナーへメッセージ

2008年05月08日

ネコのまばたき

デカブリのまばたきを作ってみました。

まず、半円から形と大きさとテクスチャーを適当に作成します。
これがまぶたとなります。



で、目をつぶった状態にして、以下のスクリプトを実行します。

touch_start(integer total_number)
{
  llOwnerSay((string)llGetLocalRot());
}


こうすると目をつぶった状態のリンクされたプリムの角度が表示されます。
この表示された角度を以下のスクリプトに組み込みます。

rotation _DEFAULT_ROT ;

default
{
  state_entry()
  {
    llSetTimerEvent(6.0+llFrand(6.0));
    DEFAULT_ROT = llGetLocalRot();
  }

  timer()
  {
    llMessageLinked(LINK_ALL_OTHERS, 0, "BLINK", NULL_KEY);
    llSetLocalRot(<0.00000, 0.29334, 0.00000, 0.95601>);
    llSleep(0.2);
    llSetLocalRot(_DEFAULT_ROT);
  }
}

ここで、llSleep(0.2)が入っているのは、目をつぶった状態を自然に見せるためです。
また、llMessageLinked()を使っているのは、もう片方のまぶたと連動させるためです。
このスクリプトを組み込んで、まぶたを開けた状態にします。そうすると開けた状態の角度が_DEFAULT_ROTに入力されます。

で、同様にもう片方のまぶたも同様に作成してリンクして、以下のスクリプトを組み込みます。

rotation _DEFAULT_ROT ;

default
{
  state_entry()
  {
    _DEFAULT_ROT = llGetLocalRot();
  }

  link_message(integer link_num, integer status, string command, key id)
  {
    if ( command == "BLINK" ) {
      llSetLocalRot(<-0.09117, 0.38302, -0.12739, 0.91036>);
      llSleep(0.2);
      llSetLocalRot(_DEFAULT_ROT);
    }
  }
}

これで、片方のまぶたから送られたメッセージを受けとって、両方同時にまばたきできるようになりました。




※このまばたきするデカブリはまだ配布していません。他のポーズなどを組み込んで新しいバージョンとして配布します。
 詳しくは、管理人のUsagi Pinkladyまでお問い合わせください。

この記事へのトラックバックURL

この記事へのコメント
先ほどはお世話になりました。
また遊びに行きますニャ^^
新しいニャンコが増えるのを、楽しみにしています。
ではまた~
Posted by neko at 2008年05月08日 19:05
先ほどは、楽しい時間をありがとうございました。私は、スクリプトとアニメーション担当で、モデリングはUsagiが担当です。
新しいネコも現在作成中ですので、また遊びに来て下さいね (^_^)/~~
Posted by クマノミクマノミ at 2008年05月08日 19:55