Difference between revisions of "LlGetRot/ja"

From Second Life Wiki
Jump to navigation Jump to search
m
 
(3 intermediate revisions by one other user not shown)
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)
<source lang="lsl2"> //-- オブジェクトを回転させ、一番近い方位 (北、東、南、西) に合わせます
  //-- 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 > ) );
   }
   }
}</lsl>
}</source>
|helpers
|helpers
|also_header
|also_header
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
}}
}}

Latest revision as of 12:52, 25 February 2016

要約

関数: rotation llGetRot( );

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

サンプル

 //-- オブジェクトを回転させ、一番近い方位 (北、東、南、西) に合わせます
 //-- 建造物がルートオブジェクトに向かいあわせになっていることが前提です

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 > ) );
  }
}

注意点

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

特記事項

Search JIRA for related Issues

Signature

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