Difference between revisions of "LlGetRot/ja"

From Second Life Wiki
Jump to navigation Jump to search
m (Undo revision 849962 by Mako Nozaki (Talk))
Line 6: Line 6:
|func_footnote
|func_footnote
|return_type=rotation
|return_type=rotation
|return_text=[[Viewer coordinate frames#Region|リージョン]]面と相対的なプリムの回転
|return_text=[[Viewer coordinate frames/ja#Region|リージョン]] 軸を基準としたプリムの回転
|constants
|constants
|spec
|spec
|caveats
|caveats
|examples=
|examples=
<lsl> //-- rotates an object to face the nearest cardinal direction (N,E,S,W)
<lsl> //-- オブジェクトを回転させ、一番近い方位 (北、東、南、西) に合わせます
  //-- assumes build is aligned to root object facing
  //-- 建造物がルートオブジェクトに向かいあわせになっていることが前提です


default{
default{
   state_entry()
   state_entry()
   {
   {
     llSay( 0, "Rotate me in edit, then touch to make me face the nearest compass point" );
     llSay( 0, "編集画面で回転させ、タッチしてこれを一番近い方位に合わせてください" );
   }
   }


   touch_start( integer vIntTouches )
   touch_start( integer vIntTouches )
   {
   {
     //-- convert our rotation to x/y/z radians
     //-- 回転を x/y/z ラジアンに変換します
     vector vRadBase = llRot2Euler( llGetRot() );
     vector vRadBase = llRot2Euler( llGetRot() );
     //-- round the z-axis to the nearest 90deg (PI_BY_TWO = 90deg in radians)
     //-- Z 軸を一番近い 90° (PI_BY_TWO = 90° のラジアン表記) に丸めます
     llSetRot( llEuler2Rot( <0.0, 0.0, llRound( vRadBase.z / PI_BY_TWO ) * PI_BY_TWO > ) );
     llSetRot( llEuler2Rot( <0.0, 0.0, llRound( vRadBase.z / PI_BY_TWO ) * PI_BY_TWO > ) );
   }
   }
Line 42: Line 42:
|also_articles
|also_articles
|also_footer
|also_footer
|notes=アタッチメントによる[[Mouselook/ja|Mouselook]]でのllGetRot (see [[llForceMouselook/ja|llForceMouselook]]を参考)はアバタの視野角を返します。
|notes=[[Mouselook|マウスルック]] ([[llForceMouselook/ja|llForceMouselook]] 参照 ) でアタッチメントの llGetRot をとると、アバターが見ている方向を返します。
クライアント内エディタのツールチップが誤っていると、物理オブジェクト内のスクリプトが動くでしょう。
クライアント内エディタのツールチップが誤っていると、それは物理オブジェクトのスクリプトに影響します。
|mode
|mode
|deprecated
|deprecated
Line 49: Line 49:
|cat1=Movement
|cat1=Movement
|cat2=Rotation
|cat2=Rotation
|cat3
|cat3=Prim
|cat4
|cat4
|cat5
|cat5
|cat6
|cat6
}}
}}

Revision as of 03:39, 4 May 2010

要約

関数: rotation llGetRot( );

リージョン 軸を基準としたプリムの回転を rotation で返します。

サンプル

<lsl> //-- オブジェクトを回転させ、一番近い方位 (北、東、南、西) に合わせます

//-- 建造物がルートオブジェクトに向かいあわせになっていることが前提です

default{

 state_entry()
 {
   llSay( 0, "編集画面で回転させ、タッチしてこれを一番近い方位に合わせてください" );
 }
 touch_start( integer vIntTouches )
 {
    //-- 回転を x/y/z ラジアンに変換します
   vector vRadBase = llRot2Euler( llGetRot() );
    //-- Z 軸を一番近い 90° (PI_BY_TWO = 90° のラジアン表記) に丸めます
   llSetRot( llEuler2Rot( <0.0, 0.0, llRound( vRadBase.z / PI_BY_TWO ) * PI_BY_TWO > ) );
 }
}</lsl>

注意点

マウスルック (llForceMouselook 参照 ) でアタッチメントの llGetRot をとると、アバターが見ている方向を返します。 クライアント内エディタのツールチップが誤っていると、それは物理オブジェクトのスクリプトに影響します。

特記事項

Search JIRA for related Issues

Signature

function rotation llGetRot();
この翻訳は 原文 と比べて古いですか?間違いがありますか?読みにくいですか?みんなで 修正 していきましょう! (手順はこちら)
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。