動画を再生する(llParcelMediaCommandList,llGetTexture関数)
下記のスクリプトでは、右クリックして表示されるパイメニューの「Touch」を選ぶと動画が再生されます。
タイマーイベントを設定しているので、動画再生から20.0秒間経過すると動画は停止します。
上の木目調のテクスチャに動画を写すことをllGetTexture関数で指定しているので、
もし同じテクスチャを使っているオブジェクトが
他にあればそこにも動画が表示されてしまいますので、ご注意ください。
default
{ state_entry() { llParcelMediaCommandList( [ PARCEL_MEDIA_COMMAND_URL, "http://XXXXXXXX/XXXX.mov", PARCEL_MEDIA_COMMAND_TEXTURE, (key) llGetTexture(0) , PARCEL_MEDIA_COMMAND_AUTO_ALIGN,TRUE ] ); } touch_start(integer total_number) { llParcelMediaCommandList( [ PARCEL_MEDIA_COMMAND_AGENT, llDetectedKey(0), PARCEL_MEDIA_COMMAND_TIME, 0.0, PARCEL_MEDIA_COMMAND_PLAY ] ); llSetTimerEvent(20.0); } timer() { llParcelMediaCommandList( [ PARCEL_MEDIA_COMMAND_STOP ] ); llSetTimerEvent(0.0); } } |
llParcelMediaCommandList関数:llParcelMediaCommandList(list command_list)
一番目のパラメータ : PARCEL_MEDIA_COMMAND_XXXXフラグ PARCEL_MEDIA_COMMAND_STOP 終了。最初のフレームに戻る PARCEL_MEDIA_COMMAND_PAUSE 一時停止 PARCEL_MEDIA_COMMAND_PLAY 再生 PARCEL_MEDIA_COMMAND_LOOP 終わりに達するとはじめに戻って繰り返す PARCEL_MEDIA_COMMAND_TEXTURE 映像を写すテクスチャ PARCEL_MEDIA_COMMAND_URL 動画のURL PARCEL_MEDIA_COMMAND_TIME 再生開始の時間 PARCEL_MEDIA_COMMAND_AGENT UUIDで指定された人にだけに適用する PARCEL_MEDIA_COMMAND_UNLOAD 動画を終了しテクスチャを表示する (バグなのか、終了した後テクスチャは戻りません。) PARCEL_MEDIA_COMMAND_AUTO_ALIGN TRUE=コンテンツのスケールをテクスチャの大きさに自動設定 (描画速度と画質が低下します。) 二番目のパラメータ : 上記フラグの値 |
llGetTexture関数:llGetTexture(integer side)
テクスチャの名前を取得します。持ち物(在庫目録)の中にない場合は、KEYを返します。 一番目のパラメータ : テクスチャ名を取得するプリムの面番号 |
<補足>
PARCEL_MEDIA_COMMAND_URLの値には、クイックタイムQuickTime動画 (.mov) や
MPEG4(.mp4, .mpeg4)、フラッシュ動画(.swf) ファイルのURLを指定します。
Real time QuickTime streams (rtsp://)でもOKです。
AVIでもできました。何も動画を持ってないという方は、http://www.aipiro.com/movie/SLmovie.avi
を使って試してみてください。ちなみにこの動画は、セカンドライフで動画を録るで録画したものです。
また、このスクリプト(state_entry部分)は、土地に設定する情報を変更しますので、
その土地を所有しているオーナーか、またはスクリプトが土地を所有しているグループに譲渡されている場合に動作します。
土地の権限がない場所でこのサンプルを試してもエラーが出てしまうのでご注意ください。