編隊を組むR.I.N.G. #JointBlock #Minecraft
閉じる
閉じる

新しい記事を投稿しました。シェアして読者に伝えましょう

×

編隊を組むR.I.N.G. #JointBlock #Minecraft

2017-07-28 12:18
  • 8

R.I.N.G.について分析 フォーラム内のR.I.N.G.に関する記事を開設
R.I.N.G.の取説 R.I.N.G.のノード一覧と、各ノードの意味を解説

──────────────────────────────────
■行進R.I.N.G.
ターゲット状態検知ノードで、リーダー機との距離を測り、
一定距離離れたら前進する。
リーダー機とYaw方向あわせられればよかったけど無理っぽいので前進のみ。
(方法を思いついたので下に追記)



0.Entity検索指示ノード
 センサー1 範囲32 近い すべての ユニット
 これで近くのユニットに追従する?
1.センサー状態検知ノード
 センサー1 検索結果0
2.IFジャンプノード
 入力1 ジャンプ先0 入力がエラー
 これで対象が見つからなかったら止まる。
3.ターゲット設定指示ノード
 ターゲット1 Entity 入力ノード1
 検索結果0をターゲットする
4.ターゲット状態検知ノード
 センサー1 ターゲット1 Yaw差
 ターゲット1とのYaw差を調べる
5.2値オペノード
 小なりA<B 入力A=4 固定値B=-90 
6.IFジャンプノード
 入力5 ジャンプ0 条件Yrue
 2値オペが-90未満、つまり左後ろにいる時は差し戻す
7.2値オペノード
 大なりA>B 入力A=4 固定値B=90
8.IFジャンプノード
 入力7 ジャンプ0 固定値B=90
 2値オペが90以上、つまり右後ろにいる場合差し戻す。
9.ターゲット状態検知ノード
 センサー1 ターゲット1 距離
10.2値オペノード
 小なりA<B 入力A=9 固定値B=5
11.IFジャンプ
 入力10 ジャンプ0 True
 2値オペの結果、ターゲット1が5より近い場合差し戻す。
12.移動指示ノード
 移動軸ch前後 方向=前 1tick
 前進!


BR+LCAAAAAAAAAB1Uj1PwzAUfG7SNnLph0rKWComxk4MVYaKoVI7dAEKG0oTN0Q4CYpdYEQKAxJCYoeFhd/AyC9hiRAL/6HYTtOy9A1Pp3t3Z8vPGKACGiMxADQXohBkVddEc2FDIcCi72qNA6XJTa6rHBpoThhIXiCyQozm01BxEs0CLoApULziuEIF6ci4MhQZ51Mq4L7MEqd2gsgdnY8iP+SHNHIue4yELIqDiPtR6HMSGKCHdkCg+XP/9v38lCbvafKYJkmaPGAoOrEfzjTYYtS+Jkc04uO5uiWCqs0YCaaUDKjtsYIBxlzkjTdEIahNIzt2Jz65UQZx/5I0DN0szqR27JETwZwS37vgA/+WuG4Z9Piq2xWSD7yD1OvVZdMXqr5eX37bqGpVegg6ksfYtPSJSLN0A0Hb2rayBaD84UVZpTMEUtIya/3Gck2fk7sMLYSzKEQts7Ea9v8Py4CXCVgl7OUiE9YiLI9RKwAdjIBNj21vuP4kcmMOXSKbx4r8A2gHCVFiAgAA


────────────────────────────────────

■Yaw更新指示ノードを移動の前に入れて、ズレた位置を追っかけて来るR.I.N.G.



前にいる事、前提のノードを削除
代わりにYaw更新指示ノードを加算で追加。
角度を5番で、-30度変えてやって、
正面ではなく右前30度、距離5に常にターゲットを置いて追っかけて来るようにした。


あとは角度と距離を調整したのを並べていけば、
隊列を組んで追っかけて来させられる。

BR+LCAAAAAAAAAB1UrFOwlAUvY8WaAoCwWqckNE4MTmQxhAHEhhYVHQzpX1g42tr+h7qXgcTY+Kui4uLP+GXuDTGxX/A+14LTpzh5uSce09f7q0JUAGN0xgAmgsEgQx1DYsHa0DAxLqrNQ5Uz3LI89SEBpobBlJHRleMs6UbKk2yaSCQWMjilSYUK8iJTCtDkQsxYUj3ZBZ+tR1E3vBiGPmhOGKRe9XlNORRHETCj0Jf0MAAPXQCCs2f+7fv56c0eU+TxzRJ0uTBhKIb++FUgypnzg09ZpEYzdUrCWw4nNNgwmifOTNeMMCYY95oTRSB2iRyYm/s01s1gO8vyYGBl8VZzIln9BSVM+rPLkXfv6OeVwY9vu50sOXD3CZqe3VZ9IXC1+vLb4tU7UqXQFvqpmnZ+hjTbN0g0LI37ewAZLl4hF06JyBbtizoNfIzfR7m7iK3TbRrvZ3c7lkrWzfKmKEbZgXs2r6FrUuT2CW1ddDBCPjkxJkN/v8LeSSX5cwRsRL/ALv1cnFVAgAA

────────────────────────────────────
■さらに進んで・・・ちょっと三角関数を勉強しなおしてきた。
距離a(x縦軸)と距離b(z横軸)から、斜辺cの角度θと距離をだすと。。。
http://www.calc-site.com/triangles/side_height
(JBでTan -1はatanで表記)
なので、


こう。

2つの代入ノードに横の距離と後ろの距離を入れて、
2値オペで2つを割ってやって、その値を1値オペでatan関数で計算させて、
出てきたラジアンを2値オペで 57.2958°(1ラジアンの角度)を
掛けてやると角度θ出てくる。


すごいね、R.I.N.G.


斜辺は底辺と高さを二乗し足して√なので、
2値オペでa同士、b同士を乗算して、2値オペで両方足して、
1値オペでsqrt関数で√計算させる。




おー、5.3333ブロックって出た。
大体22度傾けて距離5.3ブロック離れさせれば、横2、後ろ5辺りにくると。
この2つの1値を参照させて・・・

14番に4番から角度を、16番に8番から距離を持ってくる。


おー、行った。
これであとは、上の代入ノードの数値を入れ替えるだけで、
好きな指定した位置で追っかけて来るようにできる。

BR+LCAAAAAAAAAB1UrtKJEEUvWW3Y0/pjsNYIwaiE2ywyLIYGUiDjYGgiAg+djPpmS5nm63uXrrKR94Gggjmmhi4n7JfISaDmBj4B+Ot6oeTeIPLqXPvOfW6FGASLMlTAGgNMQjkMW1hCuCTIEAxL1rNFdNTioLAKCywenGkeUS8QlKU1dhwGh1HCgFDlFacMmhMK3JuAsalUl2B8Jv2wl07URJsHW0lYazWRdL7syp5LJM0SlSYxKHikQN27EccWi8X988314Ps3yC7GmTZILukMN5Lw/jYgikp/FO+JxK1c2JOSeCLLyWPuoJvCL8vxxxwTtBv5xMrAo1u4qfBYcjPjADPX9OCzSC3Y8JP+/wAmZ887P9WG+E5D4IJsNO/y8vYsUtniXm9aZ3soYmnu9vXBdJ2602veFgNWQHbrFZ9w9pbAYbuVOtr2Y2rNrM9p1h52w+P/9dYCwxdSUa0SH/87KgJlLsSb25kpzlvvlpNrhLoaEwpc+1DvLJrO7S+4M64+ZTQyhIPX/tFQLdo66XSulmZ5WWK5Yb3oyx3qrLtNOuAeYaB21hi2Op9L4puzYwG2OBEsrvv9zc/hldPUk8UyFepId8BQHNI5foCAAA=



さらに隊長機とスレーブ合体して、ミラーリンクで隊長機のEntityIDや陣形用の代入値を記憶させて、アトラクター解除後、指定陣形で隊長機を追跡、とかできるかもかも。

広告
×
ムリだった。
ターゲットした相手のyaw方向を調べる手段がない。
相手とのYaw差を調べたり、自分のyawを調べることはできるけど。
なので相手が向きを変えたら同じ方向を向く、って事が出来ない。

それから相手が移動したら移動したのと同じだけ動くのも無理。
移動する指令はだせるけど、何歩移動するって指令は作れない。
あえて言うと相手の座標を出せるので、その座標と自分の座標が違った場合、
特定方向に移動って事はできる。
だけど移動方向は前後左右なので、xz座標差があった時どっちに移動すればいいかわからない
yaw方向が同じならいけど、そうすると常に北の方向を向いているとかじゃないとダメ。

あとはターゲットに座標を入れて、移動タスクで移動だけど・・・・
これならいけるのか。
相手の座標とこちらの座標を比べて、一定の差が出来た場合、その分を加算した自分の座標へ向かって移動する。
24ヶ月前
×
これって手っ取り早く、一定距離離れたらターゲットを追従にすればいいんじゃね。
24ヶ月前
×
いかんか。並列移動せず、トレインしちゃう。
24ヶ月前
×
相手の向きは判らないけど、相手が自分のどちらにいるかはわかるね。
ターゲットのYaw差をターゲット状態検知ノードで拾えばいい。
それで、右に居たら(Yawが0~-90)右に、左に居たら(Yawが0~90)左に45度向かせて、
且つ、相手の90~-90の間で、相手との距離が一定以上離れていたら前に進む。
これである程度編隊を組ませる事が出来る・。。。。かな?
24ヶ月前
×
向きを変えるとトレインしそうなので、常に前に進む様にしてみた。
24ヶ月前
×
お、Yaw変更指示の角度を+-して、距離を延ばせば、いい感じに横並びしてくれる

Bx+LCAAAAAAAAADjYmBgZ+DISrIqysxLL2BgYFjNJcbICKQZ+EEEy38wuDdn9hs5Rh4bbitGBgWQOBeXiA1LGCMDkORgZJCzEbZhZOACikO0QoANWwQjA0iJqAiDgwBEjPGAHVT2P1SaCyjN5yABlXYQgUuzcLADzWDh4OJmsOHTEgEqhUky2rBpgCgGBgAyfdqdvgAAAA==
24ヶ月前
×
マスターとスレーブに分けて、マスターと合体してる時にミラーリンク経由で角度と距離を受け渡してやれば、陣形変更もできるかもね。
24ヶ月前
×
わーお、また一歩すすんだぽ
24ヶ月前
コメントを書く
コメントをするには、
ログインして下さい。