• 押すたびにアクションが変わるR.I.N.G. #Minecraft #JointBlock

    2017-08-06 10:531
    同じ汎用キーで、押すたびに取るアクションを交互に変えるR.I.N.G.です。

    ・サンプルでは緑マウス左クリックに設定してますが、
     指示キーはなんでもいいです。
     0番ノードのキーorアイテム操作状態検知ノードを変更してください。



    ・動きは6番、10番の2か所にアクションノードを入れてますが、
     複数のアクションや指示系ノードでもOKです。




    ・2,3番ノードは、ボタン連打防止機構で、一度アクションさせた後は、
     3番のローテータが回ってる間(Trueの間)差し戻す様にしてます。



    3番のTickを調整すれば、再入力可能時間を変える事が出来ます。
    サンプルでは20Tick(2秒)止めてますが、普通は3ticでいいと思います。



    ・あとは、6番、10番のアクションをするたび、7番、11番の1オべで、
     12番の代入ノードの数値を1>0>1と交互に置き換え、
     5番のノードでどちらのアクションをするか判断させてます。



    これね。
    代入ノードの値と0が等しいか


    で、次の5番IFジャンプで、等しくなければ9番へ飛び10番のアクションをさせる。
    等しければ6番のアクションをさせる。


    6番実行後は8番のIFジャンプで強制的にすっとばしてます。




    例えば、1回押すとスケーラーを100%にして武装を出し、
    もう1回押したらスケーラーを0%にして武装を消す、
    と言った動きに使えます。


    Bx+LCAAAAAAAAADjYmBgZ+DISrIqysxLL2BgYLjAJcbICKQZ+EEEy38wuDdn9hs5Rl4jrWddex43znzcOP9x4+bHjasfNy163LT+cdP2x83LHzcDRXqeLul83NT/uKnbhsWDkYHFhoWDgUcESDLzMNiIKXEwpDBwMYgwoAAbUREuBw0ImxEu+h+oiYVTxIZdDSJuwyPEYP8BKskDlORgELEBCiPLwwGPDacAXDEApIP3YuMAAAA=



  • 広告
  • 今日やろうとしてたこと

    2017-07-30 19:21
    シート1
    汎用キーで基本操作をしつつ、
    汎用キー、7と8を押す際、動く砲塔を変更するR.I.N.G.

    射撃に関してはマウス操作を使用
    こちらもマウス操作をキーに、アクションチャネルを指定Tick動かす仕様で
    左クリックで単射、右クリックだとフルオートのonoff切替式

    汎用キーを押して動かす先は、シート2以降の汎用キーとアイテム操作を
    それぞれの砲塔に振り分けて置いて、R.I.N.G.でどれとどれを動かすかパターンか
    選ぶって仕様。

    仕組みは頭の中で出来上がって単だけど流石に分かんなくなってきたので、
    要るものリストを作ってみた。

    そんでR.I.N.G.をくみはじめて、二重押し回避を毎回組み込んだり、
    砲塔毎にページを組んだりする手間がかなりかかるのでちょっと挫折。






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

    2017-07-28 12:188

    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や陣形用の代入値を記憶させて、アトラクター解除後、指定陣形で隊長機を追跡、とかできるかもかも。