Difference between revisions of "LlSetPos/ja"
< LlSetPos
Jump to navigation
Jump to search
Mako Nozaki (talk | contribs) m (Undo revision 850072 by Mako Nozaki (Talk)) |
Mako Nozaki (talk | contribs) |
||
Line 1: | Line 1: | ||
{{LSL Function/ja | {{Issues/SVC-1945}}{{LSL Function/ja | ||
|func_id=58|func_sleep=0.2|func_energy=10.0 | |func_id=58|func_sleep=0.2|func_energy=10.0 | ||
|func=llSetPos | |func=llSetPos | ||
|p1_type=vector|p1_name=pos|p1_desc=[[Viewer coordinate frames#Region|リージョン]] | |p1_type=vector|p1_name=pos|p1_desc=状況によって、 [[Viewer coordinate frames/ja#Region|リージョン]] または [[Viewer coordinate frames/ja#local|ローカル座標]] (''[[#Specification|仕様]]'' 参照のこと) 。|p1_hover=状況によって、リージョンまたはローカル座標。 | ||
|func_desc= | |func_desc=オブジェクトまたはプリムを、物理特性を使わずに '''pos''' へ移動させます。 | ||
|func_footnote= | |func_footnote=移動はアタッチメントでないルートプリムでは 1 回の呼び出しで 10 m に制限されています。{{Footnote|明記されていない [[warpPos]] バグを利用しない限り}} | ||
|spec= | |spec= | ||
===== | =====座標フレーム===== | ||
*ルートプリム ( | *ルートプリム (もしくはシングルプリムのオブジェクト) | ||
** | **装着されている | ||
***'''pos''' | ***'''pos''' は装着ポイントに対する [[Viewer coordinate frames/ja#Local|ローカル座標]] です。 | ||
** | **装着されていない | ||
***'''pos'''は[[Viewer coordinate frames#Region| | ***'''pos''' は [[Viewer coordinate frames/ja#Region|リージョン座標]] です。 | ||
*子プリム( | *子プリム (ルートプリムでない) | ||
**'''pos''' | **'''pos''' はルートプリムに対する [[Viewer coordinate frames/ja#Local|ローカル座標]] です。 | ||
|caveats= | |caveats= | ||
* | *この関数は内部でローカル座標とリージョン座標が混在しているため、プリムの位置が知りたいときは {{LSLG/ja|llGetLocalPos}} を使用するのが最適です。 | ||
*この関数は物理オブジェクトでは動作しません。代わりに | *この関数は物理オブジェクトでは動作しません。代わりに {{LSLG/ja|llMoveToTarget}} を使用しましょう。 | ||
|constants | |constants | ||
|examples= | |examples= | ||
<lsl> | <lsl> | ||
// | //誰かがタッチしたら、オブジェクトを 1m 上へ移動させます。 | ||
default { | default { | ||
touch_start(integer i) { | touch_start(integer i) { | ||
llSetPos(llGetPos() + <0,0,1>); | llSetPos(llGetPos() + <0,0,1>); | ||
} | } | ||
} | |||
// 小さい移動のときのバグを回避するためにこれを使います | |||
// - created by Madpeter Zond | |||
// 注意: リンクされたプリムで、移動可能な範囲を超えたかどうかのチェックは行っていません | |||
llSetLocalPos(vector offset) | |||
{ | |||
vector save = offset; | |||
if(offset.x < 0.0) offset.x -= 1; | |||
else offset.x += 1; | |||
if(offset.y < 0.0) offset.y -= 1; | |||
else offset.y += 1; | |||
if(offset.z < 0.0) offset.z -= 1; | |||
else offset.z += 1; | |||
llSetPos(offset); | |||
llSetPos(save); | |||
} | } | ||
</lsl> | </lsl> | ||
|helpers | |helpers | ||
|also_functions={{LSL DefineRow|| | |also_functions={{LSL DefineRow||{{LSLG/ja|llGetLocalPos}}|装着されているかルートプリムではない場合、プリムのローカル位置を返します。 (そうでなければ、グローバル位置を返します)}} | ||
{{LSL DefineRow|| | {{LSL DefineRow||{{LSLG/ja|llGetRootPosition}}|ルートプリムの位置を返します。}} | ||
{{LSL DefineRow||{{LSLG/ja|llGetPos}}|装着されていてもルートプリムでなくても、プリムのグローバル位置を返します。}} | |||
|also_tests | |also_tests | ||
|also_events | |also_events | ||
|also_articles | |also_articles | ||
|notes | |notes=複数回の移動コマンドは {{LSLG/ja|llSetPrimitiveParams}} と {{LSLG/ja|PRIM_POSITION}} で連結させることができます。この長所は、1 回の動作ごとでなく、関数の呼び出しごとにだけスクリプトが休止することです。 | ||
|cat1=Movement | |cat1=Movement | ||
|cat2=Prim | |cat2=Prim |
Revision as of 13:09, 9 May 2010
LSL ポータル | 関数 | イベント | 型 | 演算子 | 定数 | 実行制御 | スクリプトライブラリ | カテゴリ別スクリプトライブラリ | チュートリアル |
仕様
警告
- この関数は 0.2 秒間、スクリプトを停止します。
- この関数は内部でローカル座標とリージョン座標が混在しているため、プリムの位置が知りたいときは llGetLocalPos を使用するのが最適です。
- この関数は物理オブジェクトでは動作しません。代わりに llMoveToTarget を使用しましょう。
サンプル
<lsl> //誰かがタッチしたら、オブジェクトを 1m 上へ移動させます。 default {
touch_start(integer i) { llSetPos(llGetPos() + <0,0,1>); }
} // 小さい移動のときのバグを回避するためにこれを使います // - created by Madpeter Zond // 注意: リンクされたプリムで、移動可能な範囲を超えたかどうかのチェックは行っていません llSetLocalPos(vector offset) {
vector save = offset; if(offset.x < 0.0) offset.x -= 1; else offset.x += 1; if(offset.y < 0.0) offset.y -= 1; else offset.y += 1; if(offset.z < 0.0) offset.z -= 1; else offset.z += 1; llSetPos(offset); llSetPos(save);
}
</lsl>注意点
複数回の移動コマンドは llSetPrimitiveParams と PRIM_POSITION で連結させることができます。この長所は、1 回の動作ごとでなく、関数の呼び出しごとにだけスクリプトが休止することです。
関連項目
関数
• | llGetLocalPos | – | 装着されているかルートプリムではない場合、プリムのローカル位置を返します。 (そうでなければ、グローバル位置を返します) | |
• | llGetRootPosition | – | ルートプリムの位置を返します。 | |
• | llGetPos | – | 装着されていてもルートプリムでなくても、プリムのグローバル位置を返します。 |
特記事項
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。