R.I.N.Gの取説 #Mincraft #JointBlock #Ver0.7 #R.I.N.G.
閉じる
閉じる

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

×

R.I.N.Gの取説 #Mincraft #JointBlock #Ver0.7 #R.I.N.G.

2017-04-28 12:48
  • 4
  • 3
JB解説まとめリンク→JointBlockの取説
────────────────────────────
前:R.I.N.G.ついて分析 フォーラムからアップデート記事を抜粋し、解説つけてます。

非公式フォーラムにR.I.N.G.専用の研究トピックを作ってみました。 2017/5/15

──────────────────────────────────────
もくじ
■ノードの種類と簡単な説明 
 3つの系統とノードのリスト、簡単な説明をしてます。
■R.I.N.G.エディットの操作
 操作方法の説明です。
■R.I.N.G.の基本 
 R.I.N.G.を組む時の基本的な部分を説明です。
ノードの項目説明と、基本的な用語説明 
 R.I.N.G.で使う用語や、ノード内で使われてる項目の説明です。
ノードの詳細
 各ノードの使い方や、設定項目を細かく説明してます。
 青文字部分は、まからの注釈です。
■跡地 ノード毎のサンプルとか関連動画とか載せるかも。

──────────────────────────────────────
■ノードの種類と簡単な説明

ノードの種類 ※詳細は下の方参照 (出力値だけでも書いとくと便利かも。)

●ノードのカテゴリー
●構文系ノード(ST:SyntaxNode) 「プログラムを書くノード」
  RING内でノードの行き先を指定したり、数値を用意したりする。
  ノード同士は構文を挟まなくても、入力で参照させる事が出来る。

 空ノード     「ジャンプ先とか見やすくする為とか」
 IFジャンプノード 「条件で別ノードに移動」
 
ウェイトノード  「まつ。1Tickは1/10秒」
 
他リング呼出ノード「べつのページに移動する。」
 リターンノード  「元のページにもどる」
 変数ノード    「数値を覚えとく」
 2値オペノード   「2つの値を見比べる」
 1値オペノード   「色々計算して値を変える」
 ミラーリンクノード「別ページのノードの値を変える」
 ベクタノード   「?」

●指示系ノード(DR:DirectionNode)  「動かすノード」

  実際に何かを動かす指示をするノード。何を動かすか、どう動かすかを書く。

 モーション変更指示ノード

 ・ローテータ     「ロテタを回す。」
 ・エクステンダー   「エクスを伸ばす。」
 ・スライダー     「スライダーを動かす。」
 ・スケーラー     「スケーラーを動かす。」
 アクション指示ノード 「チャネルへアクションを指示」
 ターゲット回転ノード 「ロテタの向きをターゲットに向ける」
 移動指示ノード    「指示した方向に移動する。」
 移動タスク指示ノード 「追いかけたり逃げたりさせる。」
 Yaw更新指示ノード  「ユニットの向きを変える」
 Yaw追従指示ノード  「シートの向きにユニットの向きを変える」
 キー使用指示ノード  「汎用キーを使用させる。」
 アイテム使用指示ノード「アイテムMCTRLを使用させる。」
 Entity検索指示ノード  「センサーに何を探すか指示する」
 ターゲット指示ノード 「距離とかターゲット情報を取り出す。」
 chクリアノード   「いろんなチャネルをクリアさせる」
 モード変更指示ノード 「モード変更させる。」


●検知系ノード(TG:TriggerNode) 「動きを受信するノード」
  状態を調べて数値にするノード。これを見て指示を出すことが多い。

 キー状態検知ノード   「汎用キーが押されてるか見る」
 アイテム状態検知ノード 「アイテムMCTRLを使ってか見る。」
 座席状態検知ノード   「座ってるかとか座席の状態をみる。」
 プレイヤー状態検知ノード「HPとかENとかプレイヤーの状態を見る。」
 ユニット移動検知ノード 「向きとか移動状態を見る。」
 ユニット状態検知ノード 「HPやスレーブ、HPなどの状態を見る。」
 ch状態検知ノード   「各チャネルの動いてる状態を見る。」
 センサー状態検知ノード 「各センサーの座標や状態を見る。」
 ターゲット状態検知ノード「各ターゲットの向きや状態を見る。」
 Entity状態検知ノード  「対象の向きや座標、状態を見る。」
 Block状態検知ノード   「指定座標ブロックの状態を見る。」

──────────────────────────────────────
R.I.N.G.エディットの操作
 GUIを開いた際の操作方法です。

・ノードリスト
 左側にあるのがノードリスト。
 上で書かれてるノードが並んでるので、ドラックドロップでR.I.N.G.ウィンドに配置する。

・R.I.N.G.ウィンド
 ノードを配置する場所。時計回りにノードが動いていき、24個まで配置できる。
 左下のIN/OUT/IDXは、ノード間での参照先ジャンプ先のラインとノード番号
 表示/非表示切替

・設定ウィンド
 右部はノードやページを選ぶと、設定できる項目が出てくる。


・ページ名
 R.I.N.G.ウィンドの中央にあるP:0をクリックして設定する。
 0ページ目の名前がR.I.N.G.の名前になる。
 全角半角含め16文字まで

 ページ名以外にもR.I.N.G.全体の設定が出来るが、基本的には初期のままでOK
 実行タイプ サイクル:通常 ショット:毎回0番ノードから動く
 権限 R.I.N.G.の指示で動かない様にさせるとこ。
    まとめて動かない様にするときには便利かも。
    Mot:モーション Mov:移動 Act:アクション Key:キー指示
 その他 既オペ遮断:たぶんR.I.N.G.以外の動きを止めるやつ。コアのと同じ。


・COPY
 左上、ページ+の下の部分。
 選択してCtrl+Cを押す事で、ここに記録される。
 あとは個々からドラック&ドロップでノードを追加できる。

 Shiftを押しながらクリックすれば、範囲でコピーも出来る。
 Ctrl+Shift+Aを押すと、全ノードが選択され、纏めてコピーできる。
 その場合、COPYのとこに入るアイコンはノードではなくR.I.N.G.になる。

 コピーは別R.I.N.G.にも持っていけるので、Ctrl+Cした後、別R.I.N.G.のGUIを
 開きCOPYからドロップ出来る。
 ※ただし、他リンク呼出ノードだけは、ページ番号・ノード番号共にリセットされる。

・DELETED
 COPYの下部分。
 R.I.N.G.ウィンド内のノードをサークル外にドラックドロップすると、サークルから
 外れ、DELETEDに一時保管してくれます。
 間違えて外した時や、同じのを何度も入れる時は便利かも。



・ページ+
 後ろにページを追加します。
 追加されると上の「前へ」「次へ」で移動できるようになり、
 移動するとサークル中央がP:xのページ番号が表示される。
 削除する時は右上の「ページ削除
 CTRLを押すと「最初へ」「最後へ」に切り替わる。
 ※0ページ目の前には差し込めないで、1ページ目から作ると楽かも?
  まぁ1ページ追加してごっそりCOPYすればいいけど、他リンクは再設定(´・ω・`)

──────────────────────────────────────
■R.I.N.G.のきほん
R.I.N.G.の動き方、設定の仕方の基本的です。

・時計回りにノードを動かしていく。

・ノードには入力値と出力値がある
 それぞれ「固定値(F)」と、他ノードの出力値を使う「参照値(R)」を選べる。
 チェックボクスにチェックを入れてノード番号を入れるか、ドラッグドロップして繋ぐ。

・IFジャンプノード
 条件式。 そこを通過するとき条件に合ってたら、指定先のノードに飛ぶ
 入力値が False(間違ってる)時飛ぶか、
 Ture(合ってる)時飛ぶか、あとerrで飛ぶかなど選べる。
 入力値は他のノードを参照させる事になる。
 ※自分を参照させると常にFalseなので自動分岐させる事もできる。
   あれ、参照せず固定値にできるんでない?

・ジャンプ用の参照先
 いろいろだけど基本的なものはこんな感じ。
 ー指示系:ローテータ指示などの出力値
      動いてる間はTrel、止まってるときはFalseになってる。
 ー2値オペ:二つの値を比べるノード。大小=など色々な比べ方を出来る。
       比べる値も参照させればいいので、距離がいくつ以上離れてるかとか、
       同じ値かとか、色々判定させれる。
 ーセンサー系:対象を見つけられない時errを吐くので、errだったら飛ばせる。
 ー検知系:「検知系ノード」は、座席に乗ってるかとか、生きてるかとか、
      色んな状況を検知させれるので、その値で飛ばす事ができる。

・指示系ノード
 上のように流れを組んで、実際に何かさせる時このノードを挟む。
 ロテタを回したり、チャネル経由でアクションさせたりいろいろ。
 チャネルに指示を出す場合は、動かしたいブロックに「モーションチャネルMCTRL」
 を入れて、チャネル番号をセットしておく。

・他リンク呼び出し
 別ページに飛ばすノード。
 ページを追加してやって、このノードにページ番号ノード番号を書いておくと、
 このノードにきた時、別ページに移って動く。
 そのページに「リターンノード」を置いてそこを通ったら
 飛んできた元の他リンク呼び出しノードから動く。
 ちなみに1つ、値を他リンク呼び出しノードに持ち帰れるらしい。
 入れ子は4段まで。ただし自分を呼び出す場合はふくまれないっぽい。

──────────────────────────────────────
■ノードの項目説明と、基本的な用語説明
 R.I.N.G.で使われる用語っす
 ・入力ノード 「参照先」
 ・チャネル  「指令先」動かしてる指示の格納場所
 ・ターゲット 「記録されている標的」1~5
 ・センサー  「観測元の座標」0~4 微妙に付いてる位置も重要。
                コアに合わせてつければ視点=観測点になる。
 
 ・Entity    「対象のID」Minecraftで動くものに割り振られるID情報

●入力ノード 「参照先」
 ノード内だけの処理ではなく、別ノードから数値を参照する場合、
 参照先(入力先)のノードを指定したりできる。
(Fとかチェックボックスが有る時はチェックを入れて、Rにすると出る
 Fが固定値、Rが参照値

 ノード番号は左下のIN,Outの下のIDXにチェックを入れると円の内側に出てくる。

 出力の方は出力先を指定することは無く数値を用意して見に来てくれるのを待つ
 まつ(´・ω・`)
 出力値はノードによってさまざまで、真偽値の0/1だったり、ERRだったり、
 実数だったり用途による。 この辺プログラム経験ないと解んないかもね。
 赤色のInって書かれた線が、入力ノードの参照先。


●チャネル 「指令先」
 指示先。 指示するブロックには「R.i.N.G.チャネルMCTRL」を入れて番号を割り振る
 モーションチャネルアクションチャネル以外に、移動指示チャネル(前後左右上下)
 キー指示チャネル(シート&キー)がある。kwsk
 モーション用とアクション用は番号共通なのかな?



●ターゲット 「記録されてる標的」
 1~5までセットできる。キャラクター以外にもアイテム、ブロック、
 座標など色々対象にできる。
 チャネルと違って消せないので、入ったら入りっぱなし。
 ノードで探させる以外にアイテムの「ターゲットサイト」で指示する事も出来る。





●センサー 「5つあるけどチャネルは1つ。。。??わかんね」
 センサーMCTRLをどこかのブロックに入れると数値を拾えるようになる。
 0~4まであるけど0の機体センサーはよくわからない。
 センサーを入れた位置は関係なくて、コアから座標を取ってるっぽい。ぽい。




●Entity 「動いてるキャラクター情報」
 マイクラ上で動いてるモノに与えられるIDの事。
 MOBやプレイヤー以外に、トロッコや矢、落下するTNTなんかもEntity情報を持つ。
 移動速度や落下速度、延焼判定などなど、それぞれにされるらしい。
 Wikiに数値とかも詳しく書いてあるので、興味のある方はどうぞ
 ※?マークの所の198とかがそう。チャンクに出現したとき自動で割り振られる


──────────────────────────────────────
■ノード詳細
ノード内の項目と各ノードの動きを分析、解説していきます。

※出力や解説は、同類のノードで共通のものが結構あります。
 その辺りは[共通]として、別記してます。見難い( ・´ω`・)

書式
・ノード名称
 -項目名
  選択可能項目名1>項目名2>以後順送り
[出力]
 #各ノードの出力する内容
 ※memoとか注意とか、ゲーム内に書かれてない事。
 ※出力される数値については、
  コマンド/jbdr 0でデバックしてみると判りやすいです。
  プルプル震えてるのが実行されてるノードで、
  (非常に早いですが順番に実行されてます。)
  内側に書かれた1,0や数値、ERRが出力された数値です。
[解説]
 #ゲーム内で書かれているノードの解説を要約したもの。
  理解できなかった部分は本文をそのまま載せてあります。
 ※memoとか注意とか、ゲーム内に書かれてない事。

 ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─
●指示系ノード(DR:DirectionNode)

共通項目
[出力(DR系基本)]

 #チャネル登録されたノードは残り時間を出力
 真偽判定は1(TRUE)
 #チャネル登録されていない、チャネル登録失敗、
 処理終了したノードは0(FALSSE)
 ※つまり動いてる間は数値が入ってて、動いてないと0が入る。

[解説(共通)]
 #終了時にチャネルより取り除かれる。
 (各チャネルはひとつのノードのみ登録可能(先勝ち))

モーション変更指示ノード

・ローテータ  「ロテタを回す。」
 -チャネル   ※チャネルMCTRLのモーションチャネル番号に対応。
          0にすると全部が回ってしまうので1以降で。 

 -実行タイプ
  セット>加算 ※セットが初期値変更、加算がモーションって所。
 -時間(Tick) ※設定Tickかけて下に設定した角度曲がる。
          10度に設定してもTickを長くとるとユックリ曲がる。

          最大値最小値の概念はない。バネとか振り子とかもない。
          なので、回したら別ノードで戻す必要がある。
          面倒な場合はチップ入れて汎用キーを実行させるといい。
         ※命令を与えたらこのTick時間を過ぎてなくても、次のノードに
          に移動してしまうので注意。

 -後ろに持ち上げる
 -時計回りに廻す
 -右へ開く

・エクステンダー  「エクスを伸ばす。」
 -チャネル   ↑うえさんしょう
 -実行タイプ
  セット>加算
 -時間(Tick)
 -伸縮度

・スライダー  「スライダーを動かす。」
 -チャネル   ↑うえさんしょう
 -実行タイプ
  セット>加算
 -時間(Tick)
 -左へスライド
 -上へスライド
 -前へスライド

・スケーラー  「スケーラーを動かす。」
 -チャネル   ↑うえさんしょう
 -実行タイプ
  セット>加算
 -時間(Tick)
 -縮尺


[出力]
 #DR系基本
[解説(モーション変更DR共通)]
 #チャネルへ自身を登録
  次TICK以降に指定TICKをかけてモーション値の更新
  終了時にチャネルより取り除かれる。
  (各チャネルはひとつのノードのみ登録可能(先勝ち))
 ※1Tickたたないと実行されないので、1Tickは上書きできない。
  連続で命令すると飛ばされるので、1Tickウェイトを入れるか、
  IFジャンプSDでノードが終わるまで待たせる事。


アクション指示ノード  「チャネルへアクションを指示」
 -チャネル
 -時間(Tick)
[出力]
 #DR系基本
[解説]
 #アクションチャネルへ自身を登録
 次TICK以降に指定TICKをかけてモーション値の更新
 ※指定チャネルにアクションさせる。
  チャネルMCTRLを武器モデルの入ったブロックに入れて、アクションを「する」
  にしておけば、これでアクションさせれる。
  アクション自体は、汎用キーをいつもの様に設置しといて、「キー使用指示ノード」で
  実行させてもいい。

ターゲット回転ノード  「ロテタの向きをターゲットに向ける」
 -チャネル
 -ターゲット番号
  (オーナー)0番< 1番>2番>3番>4番
  ※事前に「ターゲット設定指示ノード」で
   Entity情報を指定ターゲット番号に入れとく事。

 -実行タイプ
 -タイプ
  xy両方>yのみ>xのみ
 -回転制限
  ※コアからの向きになるので調整がいる。
[出力]

 #DR系基本
[解説]
 #モーションチャネルへ自身を登録
 次TICK以降にターゲットへ向けて回転

移動指示ノード  「指示した方向に移動する。」
 -移動ch 
  前後>左右>上下
 -方向
  前>後>後ろ(ダブル)・・・・・ダブルってなんだ! 左右上下とかもえらべる
 -時間(Tick) ※回転と違い、指定Tick時間のあいだ移動する。
 ※各ユニットタイプに合わせて移動する。
  ヘリやエアクラなら上にも移動する(際限なくどこまでも)
  飛べないユニットタイプの場合はジャンプする。
[出力]
 #DR系基本
[解説]
 #移動軸チャネルへ自身を登録
 次TICK以降に指定TICKの間だけユニットを移動

移動タスク指示ノード  「追いかけたり逃げたりさせる。」
 -タイプ
  追従する>遠ざかる>周囲を徘徊する>自由に徘徊する
  ※周囲の場合、ある程度離れると追従してくる
   自由の場合はランダム。
   (アルゴリズムが同じなのか、ユニットを並べると同じ動きをする)
  !歩行系とホバー・ヘリだけの対応です。エアクラフト・フロート・宇宙などは未実装
 -ターゲット番号
  0番(オーナー)< 1番>2番>3番>4番>5番
 -時間(Tick)※指定時間、命令を出してるので、その間出力が1
         これ変更しても10歩以上歩く。。。
[出力]
 #DR系基本
[解説]
 #移動タスクチャネルへ自身を登録
 次TICK以降に指定TICKの間だけタイプに合わせ移動処理

Yaw更新指示ノード 

 -実行タイプ
  セット>加算※セットは絶対値方向に向く。0で北向くわけ。
 -時間(Tick)
 -セット時:Yaw(ワールド絶対値)/加算時:右(左)へYaw回転
  ※小数点以下の数値も設定できる
   ターゲット状態検知ノードでYaw差を取ってこれば、相手に向ける事が出来る。
[出力]
 #DR系基本
[解説]
 #Yaw回転チャネルへ自身を登録
 次TICK以降に指定TICKをかけてユニットのYaw値の処理
 ※ブロックではなく、コア自体の向きかえる。
 ただし、シート1に乗ってるとプレイヤーの向きを優先する。
 また、シート2以降に乗ってる場合、ユニットの向きは変わるけど、
 プレイヤーの向きは変わらない。
 
Yaw追従指示ノード 

 -座席番号
 -時間(Tick)
 -タイプ
  等速>加速>減速
 -Yaw速度
[出力]
 #DR系基本
[解説]
 #Yaw回転チャネルへ自身を登録
 次TICK以降に指定TICKの間ユニットのYaw値の追従処理
 #等速 追従方向へ常に一定のYaw値を加算
 #加速 追従差が小さいほど指定した加算値に近づく
 #減速 追従差が大きいほど指定した加算値に近づく
 ※シート1に乗ってる時は効果がない?
 シート2以降に乗ってる場合、そちらの向いてる方にユニットが向く
 前進してる時にシート2にYaw追従させると、トレーラーの様な動きになる。

キー使用指示ノード 
 -座席番号
  1番>~4番
 -キー番号
  汎用キー1>~8
 -時間(Tick)
 -シングル/ダウブル
  通常>
[出力]
 #DR系基本
[解説]
 #モーションチャネルへ自身を登録
  次Tick以降に指定TICKの間指定座席の指定キーを使用状態にする。
  終了時取り除かれる
  ※座ってる座席に関係なく実行されるので、実質キーの拡張ですね。

アイテム使用指示ノード 

 -座席番号
  1番>~4番
 -アイテムACT
 青 左クリック>青右>赤左右>緑左右>黄左右
 -時間(Tick)
[出力]
 #DR系基本
[解説]
 #モーションチャネルへ自身を登録
  次Tick以降に指定TICKの間指定座席の指定アイテムを使用状態にする。
  終了時取り除かれる
  ※キー指示同様
   汎用キーからアイテムを動かせるので便利。ただし、起動間隔はアイテム
   と違い、汎用キーと同じになる。(右でも単発じゃなく連打)

Entity検索指示ノード 
 -センサー番号
  0(機体センサー)<1番>~10番
 -範囲
  0~32(ブロック数)
 -ソート順
  距離が違い順に>射線に近い順に
 -IFFタグ
  全て>味方>敵
 -検出タイプ
  生物全般>プレイヤー>ユニット>アイテム>クリーチャー>
  動物>村人>ボス>全て>ハッシュ指定
 -ハッシュ(ハッシュ指定時 ハッシュってなんだ)
  0>~9
[出力]
 #DR系基本
[解説]
 #検索チャネルへ自身を登録
 次TICKにEntityの検索処理
※センサーに指定した対象を探させるノード。
 探して?って指示したらあとは何もしてない。
 なので、見つけた後は「センサー状態検知ノード」で
 センサーから取り出してどっかに入れるの。
・範囲内に対象が居ないとErrが入る。
・連続して見に行くと重く成るっぽい
 ターゲットに入れちゃったら後はほっといてもいい。
 逆にターゲットに入ったらセンサーが見失ってもタゲられてる(´・ω・`)

ターゲット指示ノード 
 -ターゲット番号
  1>~5
 -タイプ
  Entity>ブロック座標
 -EntityID(Entity時)
 -座標x(Entity時)
 -座標y(Entity時)
 -座標z(Entity時)
[出力]
 #設定成功時または、すでに同じ値の時はTrue(1)
  設定失敗時はFalse(0)
[解説]
 #指定番号のターゲットを設定
※ノード自体には1か0しか入ってないけど、ターゲット番号内に
 座標やEntityが格納されるっぽい。
 ただ、格納はできるけど消せない(´・ω・`)

chクリアノード 

 -chタイプ
  モーションch>アクションch>移動軸ch>入力ch
 -チャネル(各chタイプに対応したチャネルを選択
 -座席番号(入力chの場合のみ)1番席>2>3>4番席
[出力]
 #常にFALES(0)
[解説]
 #各チャネルのクリアを行います
※強制的にチャネルをクリアするノード。
 移動指示ノードで動いている場合は、即座に止まるわけではなさそう。
 大抵のチャネルは、1tickたたないと動かず、動くまでchにとどまるので、
 場合によってはこれで消してやるのもいいかも。
 ただし、思ったような挙動にならないことが多い。

モード変更指示ノード 
 -タイプ
  初期値モード>スレーブスロット
 -モード
  初期値モードの場合:0>~127
 -メイン/サブタイプ
  初期値モードの場合:変更しない>メインタイプ>サブタイプ
 ※アドオンのサブタイプを入れて置けば、初期値変更に合わせて、
  タイプも変更できるらしい。
 -スロット
  スレーブスロットの場合:オフ>~10
 ※R.I.N.G.なら、一定秒後に切り換えとか組めるので面白いかも?
[出力]

 #ユニットがすでに指示モードの場合またはモード変更に成功した場合Ture(1)
[解説]
 #ユニットの各種モード変更を行う。

─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─


●構文系ノード(ST:SyntaxNode)


空ノード 
[出力]
 #常に0(FALSE)
[解説]
 #何も行わないノード
※なんもしない(´・ω・`) ジャンプ先を固定する時とかたまに使う。
 他のノードにすると変更多いしね。

IFジャンプノード 
 -入力ノード
  0>~23
 -ジャンプ先ノード
  0>~23
 -ジャンプ条件
  入力が真(TRUE)>入力が偽(FALSE)>入力がエラー>入力がエラーでない
[出力]
 #常に0(FALSE)
[解説]
 #入力ノードの出力と条件を照らし合わせ
  合致した場合、指定ノードへジャンプ
※よく使うのは、動いてる時TRUEで飛ばして、動いてない時FALSEで飛ばすやつ。

ウェイトノード 

 -時間(Tick)
  1~?
[出力]
 #常に0(FALSE)
[解説]
 #指定したTICKだけ留まる
※指示系ノードって1Tickたたないとチャネルが空かないので、
 これ置いとくと空になって便利。
 だけどウェイトで止まってる間、他のノードは動かないので、
 段々動きがズレてく。多用しない方がいいかも?

 おすすめはロテタ回して動いてる間はジャンプで飛ばすやつ。
 

他リング呼出ノード 

 -ページ番号
 -ノード番号
[出力]
 #代入ノードや遷移系ノードから内部値を上書き可
 #保持する実数値を返す。
 #整数を受取るノードには整数を返す。
 #真偽を問合せるノードには整数に直して0の時は0(FALSE)
  マイナスを含む0以外の場合は1(TRUE)を返す。
  ※次のリターンノードで戻る時、値を変えれる。
[解説]
 #指定ページの指定ノードにジャンプする。
 #戻る場合は呼び出しページにリターンノードを設定する

リターンノード 
 -固定値
[出力]
 #常に0(FALSE)
[解説]
 #呼び出されていた場合、元のノードに戻る
 #入力ノードの指定がある場合は指定ノードの出力を、
  固定値が設定されている場合は固定値を呼び出し元のコールノードへ代入
 ※固定値を入れておけば、戻る時、呼び出し元の他リンクSTの値を変えれる。
  まぁミラーリンクSTでやればいいんだけど、いちいち戻し先を
  指定しなくていいから楽かも。
  こんで2週目のとび先を変更して、処理済みなら次は別ページとか出来るね。

変数ノード 
 -初期値
[出力]
 #保持する実数を返す
 #整数には整数を返す
 #真偽を問合せるノードには整数に直して0の時は0(FALSE)
 マイナスを含む0以外の場合は1(TRUE)を返す。
[解説]
 #実数を保持するノード
 代入や遷移系ノードから内部値を上書きすることが出来る。
※よーするに数値の記憶場所
 他から参照したり、代入ノードで書き換えたりする。
 まぁ、代入ノードの内部値を使っても良いんだけどね。

2値オペノード 
 -オペエタイプ

  加算(+)>減算(-)>乗算(X)>除算(÷)剰余(Mod)>等しい(A=B)>
  等しい(整数)(A=B)>小なり(A<B)>大なり(A>B)>以下(A≦B)>
  以上(A≧B)>論理積(AND)>論理和(OR)>排他的論理和(XOR)>Pow(A,B)>
  Min(A,B)>Max(A,B)>Atan2(A,B)>Vec3 Dot(V1,V2)>Vec3 Dist(V1,V2)>
  Vec3 Add(V1,V2)>Vec3 Sub(V1,V2)>Vec3 Cross(V1,V2)>
 -入力ノードA>固定値A
 -入力ノードB>固定値B
 -代入先ノード ←代入先ノードの内部値をこれの内部値で上書きする
[出力]
 #代入ノードや遷移系ノードから内部値を上書き可
 #保持する実数値を返す。
 #整数を受取るノードには整数を返す。
 #真偽を問合せるノードには整数に直して0の時は0(FALSE)
 マイナスを含む0以外の場合は1(TRUE)を返す。
[解説]
 いわゆる代入ノード
 #2つのノードから数値を算出し保持する(初期は0)
 #指定ノードへ結果を代入する。
いわゆる代入ノード。
 二つの数値を比べ、その結果を出力するノード。
 数値を計算して変更したり、大小関係を比べたり、意外と使う機会が多いかも。

1値オペノード 
 -オペタイプ
  代入(無操作)>切捨て>四捨五入>切下げ>切上げ>否定(NOT)>
  Abs(x)>Sqrt(x)>Sin(x)>Cos(x)>Tan(x)>ASin(x)>
  ACos(x)>ATan(x)>toRad(x)>toDeg(x)>Exp(x)>
  ベクタX(:0)>ベクタY(:1)>ベクタZ(:2)>ベクタW(:3)>
  Vec3 Length(x)>Vec3 Normalize(x)>E(定数)>π(定数)>Err(定数)>乱数
  ※いっぱいあるね! 三角関数とか乱数とか面白そう。ベクタはわかんない
 -入力ノード>固定値 ←この値を上の式で計算して、内部値を上書きする
 -代入先ノード ←代入先ノードの内部値をこれの内部値で上書きする
[出力]
 #代入ノードや遷移系ノードから内部値を上書き可←計算結果を内部値に入れる
 #保持する実数値を返す。
 #整数を受取るノードには整数を返す。
 #真偽を問合せるノードには整数に直して0の時は0(FALSE)
  マイナスを含む0以外の場合は1(TRUE)を返す。
[解説]
 #1つのノードから数値を算出し保持する(初期は0)
 #指定ノードへ結果を代入する。
 (論理演算の結果は0または1で保持)
 (ノードを通らない限り出力は更新しない)←これ重要
※いわゆる代入ノード。
 乱数は0.001~1.000の間の数字を生成するみたい。
 小数点以下なので、2値オペノードで乗算して整数に直すといいです。



ミラーリンクノード 
 -ページ番号
 -ノード番号
 -外部リンク
  しない>自分>マスター
  -R.I.N.G.スロット番号
   0>1>2>3
[出力]
 #代入ノードや遷移系ノードから内部値を上書き可
 #リンク先に出力を返す
 #リンク先が自分の場合または、参照が不正の場合0(FALSE)
[解説]
 #他ページまたは自ページのノードへと出力・入力をバイパス
 ページをまたいで値を渡す場合に使う?
※いわゆる代入ノード。
 別ページから値を引っ張ってくるのに使う。

 R.I.N.G.外や、スレーブ時にはマスターの数値も持ってこれるので、
 使い方によっては面白いかも。
 マスターからスレーブのR.I.N.G.を直接動かす事はできないので、
 マスターのR.I.N.G.の数値を変えて、ミラーリンクでその数値を見て動かす
 なんてことも出来るんだろうね。

ベクタノード 

 -値0
 -値1
 -値2
 -値3
[出力]
 #保持する実数値を返す。
 #整数を受取るノードには整数を返す。
 #真偽を問合せるノードには整数に直して0の時は0(FALSE)
 マイナスを含む0以外の場合は1(TRUE)を返す。
[解説]
 #0~3の入力データを保持
 #ベクタ出力のあるノードを参照した場合、対応した判数の出力を取得


─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─
●検知系ノード(TG:TriggerNode)

[出力共通事項]
#最初に問い合わせされた時点で出力値を算出更新
以降同じTick内では出力が固定

キー状態検知ノード 
 -座席番号
  1番>~4番
 -キー番号
  汎用キー1~8>前後左右上下>マウスホイル上下
 -シングル/ダブル
  通常>ダブル ←ダブルでキーを叩いても、シングルはシングルで反応する。
[出力]
 #押されていれば1(TRUE) 押されてなければ0(FALSE)
[解説]
 #キー入力状態を出力

アイテム状態検知ノード
 -座席番号
  1番>~4番
 -アイテムACT
  青 左右>赤>緑 >黄
[出力]
 #押されていれば1(TRUE) 押されてなければ0(FALSE)
[解説]
 #アイテム入力状態を出力
※通常通り、右クリックは間隔をあけた連打、左クリックは単発になる。
 連射させたい場合は、アクションのTick時間を延ばせばそれっぽくはなる。

座席状態検知ノード 
 -座席番号
  1番>~4番
 -検出タイプ
  座席タイプ>プレイヤー騎乗>Entity騎乗>Entity大別>Entity名ハッシュ>EntityID>
[出力]
 #検出タイプによって実数、整数、または真偽値を出力
[解説]
 #座席状態に従って値を出力
※お、座ったやつのEntityID拾えるんだ。

プレイヤー状態検知ノード 
 -座席番号
  1番>~4番
 -検出タイプ
  ピッチ>Yaw(ユニット相対)>Yaw(ワールド絶対)>腕スウィング
[出力]
 #検出タイプによって実数、整数、または真偽値を出力
[解説]
 #プレイヤーの状態に従って値を出力
※腕スウィングなんてあるんだ?! 
 これで艤装の動きをプレイヤーの動きに合わせられる?
 ワールド絶対はそのまま向いてる向き、ユニット相対はそのユニットとの差
 ユニットに向かせるには相対を使う。

ユニット移動検知ノード 
 -検出タイプ
  Yaw(ワールド絶対値)>移動中>移動中(回転含)>上昇中>下降中>空中>
  ジャンプ中>飛行中>ヘリ滞空中>ダッシュ中>スピンレート>腕ふり率>
  地表距離(10迄)>ゼロ重力>
[出力]
 #検出タイプによって実数、整数、または真偽値を出力
[解説]
 #ユニットの移動状態に従って値を出力
※結構色々検出しますね~。プレイヤー状態で腕の振りはじめを拾って、
 腕ふり率分動かせば。。。って、振替しどうやるんだ、最大最小値がないんだけど

ユニット状態検知ノード 

 -検出タイプ
  初期値モード>スレーブ状態>スレーブスロット>マスターE接続>マスターT接続>
  体力>EN>ENプール>体力レート>ENレート>EntityID
[出力]
 #検出タイプによって実数、整数、または真偽値を出力
[解説]
 #ユニットの状態に従って値を出力
 ※幾つか判らない数値がある。マスターEとTの違い、ENプール、レートが判らん。

ch状態検知ノード 
 -chタイプ
  モーションch>アクションch>移動軸ch>入力ch
 -チャネル
  各対応チャネルを選択
[出力]
 #現在アクティブなノードの出力を返します。
[解説]
 #各チャンクの状態に従って値を出力
※移動指示で動いてる場合、移動chをクリアしても動くみたい。

センサー状態検知ノード 
 -センサー番号
  1~10番
 -検出タイプ
  センサー座標x>センサー座標Y>センサー座標Z>センサー座標ベクタ>
  前方方向ベクタ>検索結果0~3>検索結果ベクタ>センサーが有効か
[出力]
 #検出タイプによって実数、整数、または真偽値を出力
[解説]
 #センサーの状態に従って値を出力
※正直よくわからないw 検索結果0~3は順番に埋まってくらしい。
 検索結果0~3はEntityIDが入ってるっぽい
 1以降は複数ロックオンした時入れて使えば切り替えに使える。はず。

 検索結果に数値を入れる方法はこれしか無いっぽい。ぽい。
 検索結果は書けるけどchみたいには消せない(´・ω・`)
ターゲット状態検知ノード 

 -センサー番号
  1~10番
 -ターゲット番号
  1~5番
 -検出タイプ
  距離> 相手との距離(ブロック)少数点まで出てる。
  Yaw差>正面を0度とした、相手のいる角度。左がマイナス右がプラス
      これを使えば偏差撃ちなんかも出来るし、正面に居ない時は追いかけない
      などのコントロールが出来る。
  Pitch差>正面を0度とした、相手のいる角度。上がプラス、下がマイナス
  有効か>
  Tg-S差x>ターゲットとのx軸のみの距離差?
  Tg-S差y>ターゲットとのy軸のみの距離差?
  Tg-S差z>ターゲットとのz軸のみの距離差?
  Tg-S差ベクタ>?
  ターゲット座標x>ターゲットのx座標
  ターゲット座標y>ターゲットのy座標
  ターゲット座標z>ターゲットのz座標
  Tg座標ベクタ>?
  対象がEntityか>
  ターゲットEID ?
  ※固定入力値にセンサーとターゲット、両方あるのはなんでだろ。?
[出力]
 #検出タイプによって実数、整数、または真偽値を出力
[解説]
 #ターゲットとセンサーの状態に従って値を出力
※センサーも指定する必要あるんだ?

Entity状態検知ノード 
 -EntityID
 -検出タイプ
  生存しているか>座標x>y>z>座標ベクタ>Pitch>Yaw>目座標ベクタ>
  視線ベクタ>騎乗している>騎乗されている>移動中>上昇中>下降中>
  騎乗EID>非騎乗EID>攻撃EID>復習EID>Entity大別>Entity名ハッシュ>
[出力]
 #検出タイプによって実数、整数、または真偽値を出力
[解説]
 #対象Entityの状態に従って値を出力
※わからん単語ばっか(´・ω・`) EIDはEntityIDだろね。ハッシュってなんだ。

Block状態検知ノード 
 -座標x
 -座標y
 -座標z
 -検出タイプ
  空ブロックか>ブロックID>メタ値>ノーマルか>不透明か>移動を阻害するか>
  固体か>液体か>硬さ>不透明度>光出力>LS供給可能>LS入力値>LS関節入力値
[出力]
 #検出タイプによって実数、整数、または真偽値を出力
[解説]
 #対象座標ブロックの状態に従って値を出力
※Configの「enableOverpowerNode」をTRUEにしないと使えない。
 理由は鉱物の場所とか解ってネタバレしてしまうから。


──────────────────────────────────────
■関連ノード用のサンプルとか、ノードを使ってるR.I.N.G.動画へのリンクとか置くかも。

●指示系ノード(DR:DirectionNode)

・モーション更新指示ノード(ローテータ)
・モーション更新指示ノード(エクステンダー)
・モーション更新指示ノード(スライダー)
・モーション更新指示ノード(スケーラー)
アクション指示ノード
ターゲット回転ノード
移動指示ノード
移動タスク指示ノード
Yaw更新指示ノード
Yaw追従指示ノード
キー使用指示ノード
アイテム使用指示ノード
Entity検索指示ノード
ターゲット指示ノード
chクリアノード
モード変更指示ノード

──────────────────────────────────────
●構文系ノード(ST:SyntaxNode)

空ノード
IFジャンプノード
ウェイトノード
他リング呼出ノード

リターンノード

変数ノード
2値オペノード
1値オペノード
ミラーリンクノード
ベクタノード

──────────────────────────────────────
●検知系ノード(TG:TriggerNode)

キー状態検知ノード
アイテム状態検知ノード
座席状態検知ノード
プレイヤー状態検知ノード
ユニット移動検知ノード
ユニット状態検知ノード
ch状態検知ノード
センサー状態検知ノード

ターゲット状態検知ノード
Entity状態検知ノード
Block状態検知ノード


広告
×
下の画像のところを、関連動静画へのリンクにするといいかも。
サンプル集てきな。
6ヶ月前
×
R.I.N.G.って、汎用キーを動かすパターンと、チャネルで直接ブロック指示で動かすパターンがありますね。
前者の方が楽かな。
4ヶ月前
×
各ノード単独のサンプル集的な物があるといいかもね。
実際は組み合わせないと意味が無いのだけど・・・・。

指示系は特にセンサー系と組み合わせないと動かないしね。
4ヶ月前
×
各ノードを使用する際の問題点やわかりにくい点を摘出しておくといいかも。
青文字で加筆はしてるけど、結構読みにくい
4ヶ月前
コメントを書く
コメントをするには、
ログインして下さい。