投稿者:ヘイホーの叫び
投稿日:2024/7/22
ジャンル:
技術・機構
環境:通常
情報番号:7
構文
/execute
①as <subject> at @s anchored eyes facing entity <object> eyes
②positioned as @s
③positioned ^ ^ ^1
④rotated as @s
⑤positioned ^ ^ ^-1
⑥if entity @s[r=x]
⑦run <command>
コピペ用
/execute as <subject> at @s anchored eyes facing entity <object> eyes positioned as @s positioned ^ ^ ^1 rotated as @s positioned ^ ^ ^-1 if entity @s[r=x] run <command>
※xを変更すると、許容する視線の角度のずれを調節できます。
許容する角度のずれをθとすると、xは以下のようにして求められます。
x=2sin(θ/2)
説明
対象を見ていることを検知できます
原理
前提: なす角θの単位ベクトルv,uについて、|v-u|=2sin(θ/2)です
vを<subject>の目元から<object>の目元への方向(①)、uを<subject>の視線方向とし(④)、<subject>の足元を原点として(②)、v-uに移動します(③+⑤)
その後、原点(<subject>)がr=x以内に居ることを確認(⑥)、すなわち2sin(θ/2)<=xのとき、コマンドを実行します(⑦)
逆に、最大許容角度差をθmaxとし、x=2sin(θmax/2)と定めることで<subject>が<object>の目元を一定の視野θmaxに収めていることを条件にできます
最終更新:2024年12月22日 19:32