Difference between revisions of "LlVolumeDetect/ja"

From Second Life Wiki
Jump to navigation Jump to search
 
(5 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Issues/SVC-2996/ja}}{{LSL_Function/boolean/ja|detect}}
{{LSL_Function/ja
{{LSL_Function/ja
|func_id=248|func_sleep=0.0|func_energy=10.0
|func_id=248|func_sleep=0.0|func_energy=10.0
|func=llVolumeDetect|p1_type=integer|p1_name=detect
|func=llVolumeDetect|p1_type=integer|p1_name=detect
|func_footnote
|func_footnote
|func_desc='''detect'''を{{LSLG/ja|TRUE}}に設定するとVolumeDetectが有効になり、物理オブジェクトとアバターは、このオブジェクトを通過できるようになります。これは、ファントムとほぼ同じですが、VolumeDetectオブジェクトは、物理オブジェクトまたはアバターとの衝突で{{LSLG/ja|collision_start}}と{{LSLG/ja|collision_end}}イベントを発生させるという点で、ファントムとは異なります。
|func_desc='''detect''' を {{LSLG/ja|TRUE}} に設定すると VolumeDetect が有効になり、物理オブジェクトとアバターは、このオブジェクトを通過できるようになります。これは、ファントムとほぼ同じですが、 VolumeDetect オブジェクトは、物理オブジェクトまたはアバターとの衝突で {{LSLG/ja|collision_start}} と {{LSLG/ja|collision_end}} イベントを発生させるという点で、ファントムとは異なります。
|return_text
|return_text
|spec
|spec=
{{{!}} {{Prettytable|style=float:left;}}
{{!}}+ タイプによってキューに入るイベント
{{!}}-
!
! {{Hl2}} {{!}} VolumeDetect
! {{Hl2}} {{!}} ファントム
{{!}}- align="center"
! {{Hl2}} {{!}} サポートされる<br/>イベント
{{!!}} {{LSLG/ja|collision_start}}<br/><br/>{{LSLG/ja|collision_end}}
{{!!}} {{LSLG/ja|land_collision_start}}<br/>{{LSLG/ja|land_collision}}<br/>{{LSLG/ja|land_collision_end}}
{{!}}- align="center"
{{!}}}
 
====違い====
ファントムと VolumeDetect の衝突の取り扱いに、違いが 2 つあります。具体的にはサポートされるイベントと地面の取り扱い方です。
<div style="clear:left;">
======VolumeDetect======
*物理オブジェクトの場合、地面を突き抜け、世界から飛び出す危険があります。
*{{LSLG/ja|collision}}  イベントは発生しません。
======ファントム======
*物理オブジェクトの場合、地面に衝突しますが突き抜けず (通常の物理オブジェクトの挙動) 、land collision イベントがキューに入ります。
</div>
|caveats=
|caveats=
*VolumeDetectオブジェクトはファントムと異なり、地面を突き抜けて落下します。
*アタッチメントでは有効にできません{{Footnote|アバターの Bounding Box にアタッチメントが含まれていないため、意味がありません}}。
*アタッチメント内では利用できません。
*ルートプリムにだけ適用できます (オブジェクト全体が VolumeDetect になります) 。
*物理オブジェクトとアバターのみ探知します。
*物理オブジェクトとアバターのみ検出します。
*ルートプリムでのみ適用できます。
*ループで回して {{LSLG/ja|llSetPos}}() を呼び出しながら移動させると、 {{LSLGC/ja|Collision|衝突系イベント}} が発生しなくなります。
*アバターが VolumeDetect オブジェクトと衝突した場合、アタッチメントは衝突系イベントを記録しません。
|constants
|constants
|examples=<lsl>
|examples=<source lang="lsl2">default
default
{
{
state_entry()
state_entry()
{
{
llVolumeDetect(TRUE); // llVolumeDetectを開始
llVolumeDetect(TRUE); // llVolumeDetect を開始
}
}
collision(integer total_number)
collision_start(integer total_number)
{
{
llSay(0, "Detected!"); // 何かがプリムを貫通したら通知
llSay(0, "Detected!"); // 何かがプリムを貫通したら通知
}
}
}</lsl>
}</source>
|helpers
|helpers
|also_functions=
|also_functions=
{{LSL DefineRow||[[llPassCollisions/ja|llPassCollisions]]|}}
{{LSL DefineRow||{{LSLG/ja|llPassCollisions}}|}}
|also_events=
|also_events=
{{LSL DefineRow||[[collision_start/ja|collision_start]]|}}
{{LSL DefineRow||{{LSLG/ja|collision_start}}|}}
{{LSL DefineRow||[[collision/ja|collision]]|}}
{{LSL DefineRow||{{LSLG/ja|collision}}|}}
{{LSL DefineRow||[[collision_end/ja|collision_end]]|}}
{{LSL DefineRow||{{LSLG/ja|collision_end}}|}}
|also_tests
|also_tests
|also_articles
|also_articles
|notes
|notes
|permission
|negative_index
|sort=VolumeDetect
|sort=VolumeDetect
|cat1=Collision
|cat1=Collision
|cat2=Physics
|cat2=Physics
|cat3=Object
|cat3=Object
|cat4
|cat4=Phantom
}}
}}

Latest revision as of 05:10, 25 February 2016

要約

関数: llVolumeDetect( integer detect );

detectTRUE に設定すると VolumeDetect が有効になり、物理オブジェクトとアバターは、このオブジェクトを通過できるようになります。これは、ファントムとほぼ同じですが、 VolumeDetect オブジェクトは、物理オブジェクトまたはアバターとの衝突で collision_startcollision_end イベントを発生させるという点で、ファントムとは異なります。

• integer detect TRUE ならば有効 、 FALSE ならば無効

仕様

タイプによってキューに入るイベント
VolumeDetect ファントム
サポートされる
イベント
collision_start

collision_end
land_collision_start
land_collision
land_collision_end

違い

ファントムと VolumeDetect の衝突の取り扱いに、違いが 2 つあります。具体的にはサポートされるイベントと地面の取り扱い方です。

VolumeDetect
  • 物理オブジェクトの場合、地面を突き抜け、世界から飛び出す危険があります。
  • collision イベントは発生しません。
ファントム
  • 物理オブジェクトの場合、地面に衝突しますが突き抜けず (通常の物理オブジェクトの挙動) 、land collision イベントがキューに入ります。

警告

  • VolumeDetect が設定されたオブジェクトの 衝突系 イベントでは llDetectedLinkNumber 関数が 0 を返します (SVC-2996)。
  • アタッチメントでは有効にできません[1]
  • ルートプリムにだけ適用できます (オブジェクト全体が VolumeDetect になります) 。
  • 物理オブジェクトとアバターのみ検出します。
  • ループで回して llSetPos() を呼び出しながら移動させると、 衝突系イベント が発生しなくなります。
  • アバターが VolumeDetect オブジェクトと衝突した場合、アタッチメントは衝突系イベントを記録しません。
All Issues ~ Search JIRA for related Bugs

サンプル

default
{
	state_entry()
	{
		llVolumeDetect(TRUE); // llVolumeDetect を開始
	}
	collision_start(integer total_number)
	{
		llSay(0, "Detected!"); // 何かがプリムを貫通したら通知
	}
}

関連項目

イベント

•  collision_start
•  collision
•  collision_end

関数

•  llPassCollisions

特記事項

All Issues

~ Search JIRA for related Issues
   llVolumeDetect(TRUE) を実行すると llDetectedLinkNumber 関数が 0 を返すようになります。

脚注

  1. ^ アバターの Bounding Box にアタッチメントが含まれていないため、意味がありません

Signature

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