[1.7.10]StarMinerMOD、JointBlock

開発したMODの公開や、見つけたMODの紹介などはこちらでどうぞ!
  • (PostNo.299902)

Re: [1.7.10]StarMinerMOD、JointBlock

投稿記事by まから » 2017年4月06日(木) 12:45

まから さんが書きました:
turizukikyouhei さんが書きました:
まから さんが書きました:v0.7.2での事であれれば、燃料有り無しをコンフィグで選べますね。

えっと・・・どれでしょうか・・・?w


◆サーバー側設定「unitEnergyRecoveryMode」を追加
 0がデフォルトで、新仕様の燃料消費モードです
 1にするとレガシーモードでユニットは燃料を消費せずENを回復します

viewtopic.php?f=13&t=17975&start=720
(PostNo.282272)
37ページ目ですね。
クローズした.72のところです


# [range: 0 ~ 1, default: 0]
I:unitEnergyRecoveryMode=1

コンフィグの一番下から3番目かな
まから
ID:dc7221a0
石炭掘り
 
記事: 174
登録日時: 2016年3月26日(土) 13:46

  • (PostNo.299905)

Re: [1.7.10]StarMinerMOD、JointBlock

投稿記事by turizukikyouhei » 2017年4月06日(木) 13:00

まから さんが書きました:37ページ目ですね。
クローズした.72のところです

おお!これですか!2度もありがとうございます!!
turizukikyouhei
ID:1147336e
石炭掘り
 
記事: 192
登録日時: 2015年10月21日(水) 17:30

  • (PostNo.299951)

Re: [1.7.10]StarMinerMOD、JointBlock

投稿記事by まから » 2017年4月06日(木) 21:48

まから さんが書きました:
灯篭の斧 さんが書きました:胴体をマスター、脚部をスレイブで組み合わせて動かす、というのは現状不可能でしょうか?
自分なりに試しては見たのですがどうも脚部(移動部)がマスター出ないと移動ができないようなので一応確認もかねて

これが可能だとACなんかに代表される「パーツをくみ上げるロボット」が作りやすくなるんですが(現状だと胴体が飾り装甲になるので)

機体の底面位置がマスター依存になるので、マスター側で見えない「足」を作って高さを調整する必要がありますね。

足チップ自体は、動かす為のチェックボクスが追加されたので、
そこにチェックを入れればスレーブでもちゃんと足として動きます。
http://www.nicovideo.jp/watch/sm30085013


↑ OPとモーションはV0.7からでした(´・ω・`) V0.6.2だと出来ませぬ。
まから
ID:b7a4e980
石炭掘り
 
記事: 174
登録日時: 2016年3月26日(土) 13:46

  • (PostNo.300102)

Re: [1.7.10]StarMinerMOD、JointBlock

投稿記事by 武田50 » 2017年4月08日(土) 11:46

あるべさん更新お疲れ様です。
興味深い要素の多い大規模な更新ですね。
武田50
ID:402c8047
水から上がったとこ
 
記事: 9
登録日時: 2015年11月08日(日) 21:50

  • (PostNo.300106)

Re: [1.7.10]StarMinerMOD、JointBlock

投稿記事by turizukikyouhei » 2017年4月08日(土) 13:12

すいません!
スレーブのEN回復量いじってスラスターで無限飛行させるやつあるじゃないですか~
あれが何回やってもできないんですけど、

S:slaveModeEnergyHealMult=1000.0

これだけでいいんですよね?
turizukikyouhei
ID:1147336e
石炭掘り
 
記事: 192
登録日時: 2015年10月21日(水) 17:30

  • (PostNo.300107)

Re: [1.7.10]StarMinerMOD、JointBlock

投稿記事by まから » 2017年4月08日(土) 13:14

Σ(`・Д・ノ)ノ
更新されてるのを見落としてたw
0.7.2お疲れ様ですー

リミッター、イベントの時とか便利そうですね。
作成者ごとにバラつきがあるので、レギュレーションで設定してもらうよりパシっと調整できそう。

ターゲットシステムは上手く使えば撮影用のMOBとか作れますね。
PL追従させるのも楽しそう。

モデルがらみはいろいろ出来る事が増えましたね。
一気に作れる武器の種類が増えそう。
範囲や爆風がらみは楽しそう。
と、言っても3Dモデルでアクション作ってる人は少ないですが、まぁ対戦とかし出すと必須になりますね。
    パッケージ3Dモデルはちょっと問題があったりします。
    マイクラ起動時に読み込み時間が長くなる、
    複数のパッケージに分けるのと、1つの武器を1つのパッケージにするの、どっちが重くなるのかな?とかまだ試してないですが気になってます。
    各武器5,6個つくったパッケージだとてきめんに起動が遅くなりますね。
    なのでテスト用パッケージを別にしたり、ちょくちょくワールドを変える場合はパッケージを外したワールドを別に用意したりしてます。
    あ、対処して欲しい訳ではないですw
    一応報告を。

パタカの部分は・・・色々手の届かない所がありつつ、それはそれでやり方を考えるのが楽しいので、
更新のペースは遅くていいと思います。(試し機能として出して見れば皆さん色々やると思う。)
    と、思うのはロテタスライダを使い切ってるレベルだからかな?
    一般の方や新規の方はすぐ使えた方がいいのかな。
    Lionが言ってるように、小数点以下の数値が入れられれば、大抵の物は作れると思います。
      なので、作業量の軽減や、感覚的な作成のしやすさを優先した方がいいかも。
      例えばデフォルトのパタカブロックが作れるとか、頂点の設定方法をワンクリックで思った場所に変更できるとか、
      造形の敷居としてはそっちの方が問題かも。
      (僕らはその辺を逆に楽しんでますがw)

      例えば、円柱、三角錐、矩形など8パターンぐらいのデフォルトパテアイテムを作って、それで塗れば、いきなりその形に彫刻される。
      そうすればレゴ組むみたいに割と簡単に造形できるかも。
      バニラでブロックを積むのに近い感覚でできるし、そのあとカッターで調整すればいいしね。
      現状でも金型に記憶させておいて同じことができるけどね(笑)

    近い部分でアセンブルチューナーの使い方。ワイヤーフレームだけだと見にくいので、
    その前後の関係とかが見やすくなるといいな。
    位置合わせするのに相手が見えないと、解除して選択してと回数が増えます。
    (チューナーにGUIつけて隣のブロックの表示ONOFFとかConfigから選択とかでいいかも。)

    あとは、ブロックのつながり経路。これが分かりにくい。
    組んだ本人ですら、時間を置くと解らなくなるw
    まぁ解りやすいように工夫して組むのだけど。。。チューナーでクリックした時みたいなワイヤーのなかで、
    繋がりが線で見えたら便利だと思う。
    そうすればく見直しが大変楽になる。
    現状だとある程度セクション分けして組んで、1回組んだら、その部分はなるべく触らないようにしてる。
    こんな感じで気が付いたら脱落してたり(笑)
    特に彫刻したりモデルを入れちゃうと追えなくなりますね。
    画像

Ringの部分は・・・、一からお勉強ですね。
動きを遊ぶ、撮影をする、と言う意味では、割とウェイトのある部分なんだろうなぁ。
いままでロテタにやらせてたことのいくつかは置き換えれるだろうし、
JBもでるとゲーム内との関わりの部分だからガラッとヤレルことが変わるんだろうね。
試すのにちょっと時間がかかりそう。

あと、地味にアクション無効の追加が嬉しいですね。
これで変形の楽しみがさらに広がりますw
まから
ID:b7a4e980
石炭掘り
 
記事: 174
登録日時: 2016年3月26日(土) 13:46

  • (PostNo.300116)

Re: [1.7.10]StarMinerMOD、JointBlock

投稿記事by まから » 2017年4月08日(土) 15:08

と、言いながら造形に欲しい新しい機能も書いておきますね。

1つ目はパレットへのα値追加です。
彫刻したものに色を塗る際、透過処理した色がつかえたらなーと。
使い方はいろいろですが、ガラスやビームなど、いろいろ表現が増えると思います。

2つ目は光源です。
MSのモノアイや飛行機の点滅灯、使い方によってはいろいろなエフェクトを作れると思う。
重そうですけどね(笑)

影MODを使用した条件下だとたぶん難しいだろうとも思うので、
機能的な部分ではない追加要素のアイデアって所で。
まから
ID:b7a4e980
石炭掘り
 
記事: 174
登録日時: 2016年3月26日(土) 13:46

  • (PostNo.300167)

Re: [1.7.10]StarMinerMOD、JointBlock

投稿記事by turizukikyouhei » 2017年4月09日(日) 08:20

要望です!
ユニットのHP、ENを今はユニット型によって決まっていますが、やっぱり前のようにブロック数の多さで決まる方が自分はいいです。
だから、コンフィグで変えれるようにしてもらえないでしょうか?
turizukikyouhei
ID:1147336e
石炭掘り
 
記事: 192
登録日時: 2015年10月21日(水) 17:30

  • (PostNo.300209)

Re: [1.7.10]StarMinerMOD、JointBlock

投稿記事by Sub-sabu » 2017年4月09日(日) 18:27

タクティカルフレームと戦ってみて威力不足を感じたりしたのでモデル導入を試しています。
それで、追加モデルの見た目にデフォルトのものを流用できればと考えているのですが、どうなのでしょう?
Sub-sabu
ID:a03780d3
水から上がったとこ
 
記事: 5
登録日時: 2016年2月11日(木) 20:55

  • (PostNo.300232)

Re: [1.7.10]StarMinerMOD、JointBlock

投稿記事by まから » 2017年4月09日(日) 23:14

Sub-sabu さんが書きました:タクティカルフレームと戦ってみて威力不足を感じたりしたのでモデル導入を試しています。
それで、追加モデルの見た目にデフォルトのものを流用できればと考えているのですが、どうなのでしょう?

方法はありますね~。
アクション無効にした武器に、スライダーで導入モデルを位置合わせすればまぁ出来ますね。
まから
ID:b7a4e980
石炭掘り
 
記事: 174
登録日時: 2016年3月26日(土) 13:46

  • (PostNo.300251)

Re: [1.7.10]StarMinerMOD、JointBlock

投稿記事by moon111 » 2017年4月10日(月) 13:50

RINGの使い方が全くわかりません。特にセンサー系がさっぱりです。簡単なサンプルのようなものはないでしょうか?
moon111
ID:841add0a
 

  • (PostNo.300297)

Re: [1.7.10]StarMinerMOD、JointBlock

投稿記事by コリブリ » 2017年4月11日(火) 00:36

いつも楽しく使わせてもらっています。質問なのですが、燃料を補給する際アセンブルを解かずに補給する方法はないでしょうか?スケーラーで小さくした機体だと少々不便で…既出だったらすみません、まだ出ていないのであれば提案ということでお願いします。
コリブリ
ID:ed66a3d5
 

  • (PostNo.300299)

Re: [1.7.10]StarMinerMOD、JointBlock

投稿記事by 一般貧弱クラフター » 2017年4月11日(火) 00:55

あるべさん、更新お疲れ様です。そしてありがとうございます。これは、夢が広がります…

>>moon111 さん
ニコニコ静画の方で、R.I.N.G.による自動ターゲティングシステムのチュートリアルを上げてみました。画像一枚に文章で分かりづらいと思いますが…
URLは…載せようと思いましたが、何かまずいかもしれないと思い、ここでは割愛させていただきます。お手数ですが検索して見てみて下さい。
「jointblock」で検索すれば出ると思います。
一般貧弱クラフター
ID:ecd43101
 

  • (PostNo.300309)

Re: [1.7.10]StarMinerMOD、JointBlock

投稿記事by B-man » 2017年4月11日(火) 11:14

RINGに関する簡単なサンプル提供してもらえないでしょうか?

以前7.1.0のときにあったサンプルみたいな動作させようとRING組んで見たのですが、他のリング呼び出しがうまく行かないみたいで一つの機能しか載せられていないです。

以前との違いも多々あるとは思いますが、どこがどう違うか検証するためにもぜひとも簡単な物でいいのでRINGのサンプルをお願いします。
B-man
ID:b62cd603
水から上がったとこ
 
記事: 7
登録日時: 2016年11月01日(火) 05:20

  • (PostNo.300335)

Re: [1.7.10]StarMinerMOD、JointBlock

投稿記事by あるべ » 2017年4月11日(火) 20:07

[lionさんへ]

lion_neglect さんが書きました:要望

1、ローテータの角度を小数点1位まで入力可能になりませんでしょうか?
  パターンカービング同士や、分割数が違うブロックを合わせるのに欲しいなぁと・・・
  手入力時だけとかでもかまいませんので・・・

2、アトラクターのON、OFFの切り替えに、キー操作の複数のように
  別のキーを割り当てれるようにすることは、可能でしょうか?  

  現状では、スレイブ状態のユニットの付け外しと同時に、
  マスター側の形状をモーションチップを使って変えるといったことができませんので・・・


確認

1、人型(上半身)MCTRLチップひじですが・・・角度が、401度で、180度ぐらい曲がる感じで
  正確に90度曲げるには100.5度と曲げれないみたいなのですが・・・
  この辺に意味がるのかなーと・・・


2、マスター側からスレイブ側へ、アイテム操作でモーションさせた場合、
  反応しない時があります。(キー操作は問題なく反応してるんですが・・・)
  何度かゲームを出入りすると・・・反応するようになったり、しくなったりもします。
  1チャンク程度離れて周りにjbのブロックがないところでは、ちゃんと反応したりしました。
  PC的な問題でラグっぽいのでしょうか?
  (簡易的なユニットで試したところでは、問題なく反応していたので・・・
   正確な原因がわからなくて申し訳ないです。)

まずご要望について

1.えー、できませんぬぐぐぬ
  (だいぶ極端に実装を拡張しないといけないのでつらい、の意)
2.たぶん可能です
  実装予定へ→実装しました

次にご確認について

1.意味は…特に無いです
2.ご報告ありがとうございます
  マスターからの判定取得処理であたりでミスっている予感が…調査してみます
  こうこうこうしたら絶対起きるみたいなのが見つかったらまた書いておいていただけると調査の助けになります
  100%じゃなくても何となく起こる確率が高いケースとかでもいいですよ。具体的であればあるほど助かります

lion_neglect さんが書きました:普通に追加はできたのですが、ユニットの適当なブロックのモデルにそれをはめればいいんですよね?
はめて、検出しても一覧に出てこず・・・アセンブルしたら、モデルのないアイテムと一緒で
アセンブルを解いて、セットしたブロックのGUIを開いたらなくなっているんですが・・・
(とりあえず、ノーマルブロックを1つ追加して、そこにセットしてみたんですが)


あ、ああ、、、申し訳ありません、、
モデルに追加する場合の記法を書き忘れてました
前に書いたのは「アイテムアドオン」(つまりアドオンスロットにのみ有効な)の記法です
モデルとして機能させる場合はモデル定義jsonのほうにアドオンとの紐付け項目を記述します

"addonName":"アドオン名", ←これをモデルjsonファイルの方で指定してみてください

あちらにも追記しとかなきゃ


[武田50さんへ]

武田50 さんが書きました:あるべさん更新お疲れ様です。
興味深い要素の多い大規模な更新ですね。


ありがとうございます!
前に折れたときにも応援いただきどうにかRINGを頑張ってみました


[まからさんへ]

つながり経路の件はjbshowframeみたいなやつを実装しました
修正verをお待ちください

RINGは造形メインの方にはあまり食指が動かないだろうなあとは思います
将来的には設計図から敵をスポーンできたらいいなとかそういう妄想の過程みたいなものです
ざらっと解説をちょろっと書いたのがあるのでまた整理して上げときます

α値の件は正直パターンカービング、普通のカービングはつらいかな、というところです
というのも、アセンブルしてカービングの中をちょっと見ていただくと判ると思うのですが
上記カービング系は陰面消去が完全ではないので(展開時の処理軽減のため)透明描画すると重ね塗りみたいになって汚くなります
つまり透明描画を重ねると普段は見えてない裏の余計な描画分重なってしまう。。。という問題です
JBではZソートをコスト面はしょっているのでいろいろと解決が難しい部分です(やりようないではないですがコストが増えるので、、)

今のところすぐ実現可能そうなものでいうと出力したobjのmtlに透明度を付加する(obj出力の際は完璧ではないですがそれなりに陰面消去をしている)方法でしょうか
で、さっき試そうとしたら影MODでmtlと絡めたobjが上手く描画されないみたいだったので手直ししつつ仕様を考えてみます


[Sub-sabuさんへ(ついでにturizukikyouheiさんへの返答にも)]

HPが低すぎてすぐ死んでしまう、というような状況であればモデルアドオンを作るより設定を弄った方が早いかもです
今回用意したHPとENの基本値設定「baseUnitHealth」と「baseUnitEnergy」を上げてみるのはいかがでしょうか
前者がHPで後者がENの算出基本値です
デフォルト値が100なので1000にすればざっと10倍になります(そこから各ユニット固有の補正やアドオン補正がかかりますが)
(turizukikyouheiさんの場合は旧システムそのものが良いというリクエストかもしれませんが)

モデルパッケージは「固有のモデルを追加する」のが趣旨の機能であるため、できれば独自のモデルファイルをご用意ください
(そうしていただくと作者としても機能を作った甲斐があります)
けどblenderなんかの3d編集ソフトはちょっと敷居が、、、という方にはカービングで作った形状を/jbbuildobjで出力し、
それをモデルのobj(&mtl)として指定する方法についても修正verのupと一緒にまとめておきますので、
もし外部パッケージを作る動機がまだあればそちらもまだご参考ください
(ぶっちゃけるとデフォルトモデルはださいので流用しないほうがいいと思います!)


[コリブリさんへ]

コリブリ さんが書きました:いつも楽しく使わせてもらっています。質問なのですが、燃料を補給する際アセンブルを解かずに補給する方法はないでしょうか?スケーラーで小さくした機体だと少々不便で…既出だったらすみません、まだ出ていないのであれば提案ということでお願いします。

すみませんが、今のところできません(ユニット時に開けるGUIを用意していないので)
GUIさえ用意すれば交換や追加自体は問題ないと思うので実装を気長にお待ちください


[一般貧弱クラフターさんへ]

RINGまわりはまだまだ色々使い勝手がアレな感じではありますが、ご要望ご提案などあればお気軽に書いといてください


[moon111さん、B-manさん、RINGのサンプルについてのリクエストについて]

RINGの解説とサンプルは必要そうですね
ざっとした解説は書いていたのがあるので上げときます
サンプルも、と思って作ってたら不具合発見したので修正verと一緒に出しますね(あは
あるべ
ID:adc2047f
石掘り
 
記事: 97
登録日時: 2014年1月22日(水) 21:43

  • (PostNo.300336)

Re: [1.7.10]StarMinerMOD、JointBlock

投稿記事by turizukikyouhei » 2017年4月11日(火) 20:24

あるべ さんが書きました:(turizukikyouheiさんの場合は旧システムそのものが良いというリクエストかもしれませんが)

ですです!でも新システムと旧システムは相いれないのかなぁ
turizukikyouhei
ID:1147336e
石炭掘り
 
記事: 192
登録日時: 2015年10月21日(水) 17:30

  • (PostNo.300337)

Re: [1.7.10]StarMinerMOD、JointBlock

投稿記事by あるべ » 2017年4月11日(火) 20:26

[RINGざらっと解説]

◆[基本の動作概念]
・RINGは0ページ0番から開始し、ノードを順番に実行していきます(順次実行)
 ノードは時計回りに矢印で繋がっていると思ってください(ごちゃごちゃするのでRING画面では省略していますが)
 1TICK内で処理できるだけのノードを処理します
  ×間違った理解 → 1TICKで1ノードを処理
  ○正しい理解  → 1TICKで複数ノードを処理
・標準のモードである「サイクル」だとページの最後まで到達すると同ページゼロ番に戻ります
 (時計回りに処理が続けられるイメージです。11時の次は0時になるように、ひたすら針は回り続けます)
 ただそれだけだと時計の針が延々と回り続けて処理が終わらず、CPUのリソースを無限に消費し続けることになりますが、
 下記のルールにおいてTICK内で処理が一時中断される制限を設けています
  -TICK内で規定数以上のノードを通ると一時中断。
  -TICK内で同じノードを二度通ると一時中断。
 次のTICKでは中断したノードから再開されます
 
 ※要約※
 RINGは時計回りの順次実行!
 TICK内で制限に引っかかるまで順番にノードを処理!
 RINGはTICKをまたいで実行され続ける!
 

◆[もっと具体的な動作のイメージ]
 まずはものすごい単純な例を書きます
 たとえば1ページ、ノードが6つあるRING(例1)があるとします
 
[(例1)RING構成]

  →①→
 ⑥   ②
 ↑    ↓
 ⑤   ③
  ←④←

 〔ユニットを起動してから最初のTICK〕
 Ⅰ.ユニットの内部処理がRINGを起動します
 Ⅱ.そのTICK内でノード①、②、③、④、⑤、⑥と順番に処理をしていきます
 Ⅲ.そのまま①にさしかかると①はこのTICK内ですでに通っているためRINGは一時中断されます。
 〔次のTICK〕
 Ⅰ.ユニットの内部処理がRINGを再び起動します
 Ⅱ.前回TICKは①で中断されていたので①から再開し、また①、②、③、④、⑤、⑥と処理します
 Ⅲ.前回TICK同様に①にさしかかると①はこのTICK内ですでに通っているためRINGは一時中断されます。
 〔以下略〕
 
 上記は分岐のない場合の単純なケースですが、次は分岐のあるケースです
 たとえば⑤のノードがジャンプノードで、条件によって③にジャンプするRING(例2)があるとします

[(例2)RING構成](例1とは別のRINGの話ですよ)

  →①→
 ⑥   ②
 ↑    ↓
 ⑤→→→③
  ←④←

 〔ユニットを起動してから最初のTICK〕
 Ⅰ.ユニットの内部処理がRINGを起動します
 Ⅱ.そのTICK内でノード①、②、③、④、⑤と順番に処理をしていきます
 Ⅲ.⑤では分岐条件によってそのまま⑥に進むか③に飛ぶかの選択があります
   今回は③へジャンプしたとしましょう。このとき本来ならば順番に処理されるはずの⑥、①、②は
   スキップ(順番を飛ば)されたことになります
 Ⅳ.RINGは③を処理しようとしますが、このTICK内ではすでに処理されているノードなのでRINGは一時中断されます
 〔次のTICK〕
 Ⅰ.ユニットの内部処理がRINGを再起動します
 Ⅱ.前回TICKは③で中断されていたので③から再開し、また③、④、⑤と処理していきます
 Ⅲ.再び⑤の条件分岐です。今回も全TICKと同様にジャンプ条件が成立し、③へとジャンプしたとします
 Ⅳ.RINGは③を処理しようとしますが、このTICK内ではすでに処理されているノードなのでRINGは一時中断されます
 〔以下略〕


◆ノードの基本特性「すべてのノードは出力を持つ」
・「出力」って書いちゃうと何かを放出してるようなイメージですが「状態」のほうがイメージが易いでしょうか
 「いずれのノードも何らかの数値を抱えていて、他のノードに問い合わせを受けるとその値を返答する」
 それだけの話です


◆ノードの大まかな種類
・構文系ノード(ST:SyntaxNode)
・指示系ノード(DR:DirectionNode)
・検知系ノード(TG:TriggerNode)
※後ろの略称はあんまり気にしなくていいです。あるべが仕様を書き散らすときに使ってるだけなので
 (特にTriggerって呼び方は混乱のもとかも。ただステートノードだとSTで被るし。
  センサーだとセンサーノードと混同するし。。まあ呼び方はどうとでもです)

 ※要約※
 RINGは「構文」「指示」「検知」の三種類のノードで成り立っている!


◆[構文系ノード]
 ユニットやMCの動作とは関係なくRING自体の制御に関するノードです
 たとえば代表的なもので「IFジャンプノード」がありますが、RINGの流れを条件によって分岐させるノードです
 (たとえば本来であれば0,1,2,3..と順番に実行される流れを「2の次に3を飛ばして4や5へ」という風に
  文字通り先のノードへとジャンプさせるためのノードです。飛び越されたノードは実行されません)
 「もし(if)・・ならばスキップ(ジャンプ)する」ので「IFジャンプノード」です
 正直これさえ覚えておけば、他の構文系は必要になったらでいいと思います(変数系とか計算系とかは欲しくなったらで)
 
 ※要約※
 IFジャンプノードがあれば分岐が書ける!


◆[指示系ノード]

 ユニットや(R.I.N.G.MCTRLが積まれた)ブロックに対して何らかの指示をするノードです
 ノードリストでは上のほうに集まっているノード群です
 たとえばユニットを前後に移動させたり、ローテーターを回したりなどの指示が可能です
 逆に言うとRINGはこの指示系にある処理以外のことは何もできません
 (今のところアトラクターなどが対応ノード未実装なので動かせないかな。。)
 指示系ノードには「チャンネル」という概念が絡んでくるのですが、、、
 ひとまずは「特定のMCTRLとノードを結び付けるキーのようなもの」の理解で大丈夫だと思います
 具体的にチャンネルが何なのか理解を深めたい方は項[チャンネルについてもっと詳しく]を読んでみて下さい。

 ※要約※
 ユニットやブロックへの指示は指示系ノード!


◆[検知系ノード]
 ユニットやMCワールドの状態を認識して値を出力するノードです
 リストでは下に集まっているノード群で、クエスチョンマークの添えられたものは全て検知系のノードです
 基本的には通っても自分の値の更新意外は何の処理も実行されません。値の出力だけを担う専門家です
 一番わかりやすいものは「キー状態検知ノード」でしょうか
 指定したキーが押されてるかどうかで「出力」が変化するノードです
 特に構文系ノードの説明で取り上げた「IFジャンプノード」と組み合わせることで真価を発揮します
 キー状態検知ノードにIFジャンプノードをつないでやることで
 「キーを押されているとき以外は回転処理をスキップ(ジャンプ)」などの機能を実現することができます

 ※要約※
 状況判断は検知系ノード!


◆[各ノード種類が具体的にどんなケースで使われるか]

 たとえば「座席に人が座っているときだけローテーターを動かす」という処理をRINGに記述するとして
 「座席に人が座っているとき」というのを検知ノードが担い
 「だけ」を構文系ノード(具体的にはIFジャンプノード)が担い
 「ローテーターを動かす」を指示系ノードが担うことになります


◆[ノードの設定項目で「R」とか「F」とか切り替えられるのは何?]

・F:Fixed:つまり「固定値」です
 ユーザーの入力した値がその項目での設定値になります
 こちらは各MCTLの設定でもお馴染みですね
 (ローテーターでXの初期値に90を設定←こういうのと同じです)
・R:Reference:つまり「参照値」です
 参照とはつまり「見る」こと。→他のノードの出力を見に行ってその値を使うことです
 (あるべも「あちらを見てください」を「あちらを参照ください」みたいに言いまわすことがよくあるもよう)
 ユーザーの入力した値ではなく、他のノードが出力した値をもって処理を行うということです
 この方式の強みは「プログラム実行中に値をころころ変えられること」に尽きます(「値が動的である」とか言ったりします)
 主に検知ノードなどが出力した値を参照することになると思います

 ※要約※
 F:固定値とは「ユーザーが入力した値を使わせる」こと!
 R:参照値とは「(他のノードの出力値を)見に行く」こと!


◆[Rでいちいちノード番号入力するのめんどくさい!]
・右クリック→ドラッグで引き出せる線を参照先のノードに引っ張ることで参照先IDX番号を設定できます
 ノードにRef可能項目が複数ある場合は線を引き出した状態で左クリックで項目が切り替わります
 
 ※要約※
 右ドラッグで線を繋げる!項目の切り替えは線を出した状態で左クリック!


◆[その他ちょっとこまごました話]
◆[真偽値って??]
 よく「コンピューターは0と1で動いている」と言われたりしますが
 この0と1を「そうでない」「そうである」という概念にあてはめて「真偽値」などと呼んだりします
 一般的には
  0(:false)は「違う」こと。偽、否、違う、そうじゃないこと
  1(:true)は「合っている」こと。真、可、合致、そうであること
 という風に扱われます
 プログラムの世界ではこの通念が拡張され、たとえば整数世界では
  0:false
  0以外の数:true
 というように0のみを「false(偽)」として扱い、それ以外なら「falseではない=true(真)」と扱ったりします
 RINGもこの「0以外はtrueとして扱う」というルールを採用しています。この場合、当然「1」もtrueです

◆[ベクタ??って??]
・無視してOK!
 よほど変わったことをするのでなければV1とかV2とかベクタとかVectorとか書いてあるのはスルーで大丈夫です
 代入ではベクタが使えないなど実装も中途半端ですし、4値のベクタ計算実装してませんし、
 はっきり言ってあるべの自己満足領域です

◆[チャンネルについてもっと詳しく]
・ある特定の機構に処理を実行させるにあたり、どのノードに処理をさせるか判別するための仕組みです
 チャンネルを解することで機構は実行のタイミングでどのノードに従って更新処理などを行うかが解ります
 実行するときにひとつの要素に対して複数のノードが競合しないようにする仕組みでもあります
 ターゲット検索などの重たい処理もチャンネルを解することでtick内に一機体で複数回実行できないよう制限する役目も
 もっとイメージを掴みたい方はDROPBOXのDEVフォルダにある概念図をご参照ください



◆[RINGを作っていくときひかっかりそうなところ]

・Q「ショットモードが途中で止まるんだけど。。」
 ショットモードは「毎TICK必ず0ページ0番から始まる」わかりやすいモードですが
 基本ルール「定められた数以上のノードを通ると中断」から逃れるものではないため
 TICK内で非常に長い処理を行わせようとすると最後まで辿りつけない場合があります
 基本的には「毎TICK絶対に行わせたい処理がある」というケース以外では推奨しません
 また分岐処理などで同じノードを二度通ろうとしても終了するため、かなり処理内容は制限されます

・Q「指示系ノードが動かなくて、RingDebugで見てみると「err」を出してる。。。」
 指示ノードの入力として参照したノードが「err」を出していませんか?
 たとえば座席状態検知ノードで誰も席に座っていないのにその状態を問い合わせたりすると「err値」を返します
 err値を参照した指示系ノードはチャンネルへの登録自体に失敗するので動作しません
 参照先の検知ノードなどが「err」ではないちゃんとした値を出力しているかどうか確認しましょう
 RINGにはいわゆる「例外系」はないので、かっちりとした処理を組むには適切に「err」値をハンドリングすることが必要です

・Q「思ったとおりに動かなくて、RingDebugで見てみるといくつかのノードが空ノードに置き換わってる」
 RINGのページ設定画面で「権限」のチェックがいくつか外れていませんか?
 一括で特定グループの指示を無効化するための仕組みで、権限に適合しないノードは実行前に空ノードに変換されます

・Q「座標はわかるけどEntitIDって?」
 Entityの個体を識別するMCの内部IDです。たとえば豚が二匹いた場合、それぞれにユニーク(かぶらない)な値が振られます
 基本的にMCによって生成順に一匹にひとつIDが振られ、セーブ&ロードなどを挟むと同じ個体でもIDは変わります
 
 似たようなものにBlockIDがありますが、これはEntityIDとは別に「ブロック種別」に与えられた番号で、ワールドごとに固定です
 (セーブ・ロードを挟んでも変わらないが、ワールドが異なると同じ種類のブロックでも値が違う可能性がある)
 このあたりの一意性・一貫性・IDの有効サイクルなど理解していないと思った動作にならないことがあるのでご注意ください
 (たとえばRINGでゴールドブロックのIDを割り出して書き留め、それを地下から検索するようなRINGを組んだとしても、
  他のワールドにそのRINGを持ち込むとIDが変わっていて動作が異なる、というミスが予想されます)

・Q「いわゆる再帰処理を組んだんだけど、思ったとおりに動かない。。。」
 ごめんなさい、他リングの呼び出し過程は8呼び出し前までしか記憶できません
 (プログラムごとにセーブ時の実行状態を保存するのにある程度の枠を設けなければならなかったため)
 末尾再帰化できる再帰以外はたぶん書けないと思います

・Q「つまりRINGって、あるTICKでどこから始まるか、どこで終わるか不定ってこと?そんなの不安定すぎじゃ。。。」
 そうです
 なので処理が長くなればなるほど「必ずしもTICK内で実行されないノード」が増えることになります
 ある程度制御をはっきりさせるテクニックとしては、たとえば「1ウェイトノード」を任意の処理の前に置けば、
 必ずそこでTICKの処理が中断され、次のTICKはその次からのノードから開始されることが保証されます

・Q「ひょっとして検知系ノードって通らなくてもいいんじゃ。。。」
 よくそこに気付きましたね!
 他ノードからの問い合わせでも値を計算して返すので通らなくても機能します
 固定ジャンプですっとばしたら実行ノード数の節約になります
 ただRingDebugで見るとき問い合わせされない限り値が更新されないのでちょっと不便かもです
あるべ
ID:adc2047f
石掘り
 
記事: 97
登録日時: 2014年1月22日(水) 21:43

  • (PostNo.300343)

Re: [1.7.10]StarMinerMOD、JointBlock

投稿記事by あるべ » 2017年4月11日(火) 22:35

※070より「JointBlock1710.jar」と「JBRobotModel.jar」の二つのjarを「AllInOne.jar」として統合しています
 070より前のverよりアップデートの際は上記両方のファイルを削除の上導入をお願いします


以下Dropboxの「DEVELOP」フォルダよりダウンロードをお願いします
JointBlock0.7.3(DEV:開発版)
DROPBOXからダウンロード

0.7.1以前のワールドはユニットのアセンブルをできるだけ解いた状態でアップデートをお願いします
(一部属性の互換性がないのでそのままだと挙動が一部おかしくなります。落ちたりはしないと思うのですが念のため)
なお0.7.1のRINGは引き継げませんごめんなさい。


ちょこっと気になった点の修正とobjまわりのサポートの修正と、軽めの実装をいくつかです

以下0.7.2→0.7.3の変更点です
0.7になってからの変更点は以前の投稿をご確認ください

[0.7.3修正・追加要素一覧]
◆コマンド「/jbshowconnection」の追加(クライアント側コマンド)
 「/jbscon 数値」で指定数tickの間、ブロック接続方向を可視化します
 ただしこのコマンドは「アセンブリチューナー」を持っているときのみ接続が見える仕様です
 アセンブル後のユニットも接続方向が見えるようにしましたが、スケーラーなどの繋がりは結局まだわかりにくいかもです

◆アトラクターのキー・アイテムMCTLに「複合」バインド追加
 有効化・無効化を別キー(別アイテム)にそれぞれ設定可能

◆コマンド「/jbbuildobj」の引数に「c」を指定できるように
 「/jbbuildobj 出力ファイル名 c」のように「c」をつけるとコアを中心としてobjを出力するようになります
 (※外部パッケージ用のobjを出力する再、セットしたモデルがブロック位置を基準に描画されるよう調整される)

◆コマンド「/jbbuildobj」でobjファイル内のmtlファイル名が日付になっていたのを"同ファイル名.mtl"を記述するよう修正

◆mtlファイルのマテリアルでKd以外にも不透明度を記述可能な「d値」を読み込むよう修正
 これによりモデルレイヤ1でmtl付きobjを出力すると不透明度が反映されます(別に書き出されたりはしません、、、手動追加でおねがいします、、、)

◆RING移動タスク「自由に徘徊」などのランダム目的地到達判定が場合によって不正となる問題を修正


[おまけ①:「/jbbuildobj」を利用したパッケージモデル用objファイルの作成]

「/jbbuildobj」を使用するとカービングで作成した形状がobjファイルとして出力できますが、
それをzipパッケージ用のモデルとして用いることで3dソフトを使用しなくても簡易的に武器のモデルなどが作成できます
 [おおまかな手順]
 ①コアを中心としてカービングを使用した形状を作成します
 ②一旦ユニットをアセンブリし、「アセンブリチューナー」アイテムでユニットのどのブロックでもよいので選択します
 ③チャットウィンドウから「/jbbuildobj 出力ファイル名 c」コマンドを実行します
 ④minecraftの「config」フォルダに「JointBlock」というフォルダ、その下に「objout」というフォルダが作成され、
  さらにその下に出力時の日付でフォルダが作成されます。
  その中にコマンド引数の「出力ファイル名」で指定したファイル名で 拡張子が「obj」と「mtl」の二つのファイルが出力されていると思います
  objはポリゴンの頂点データ、mtlはコアのカラーパレットから読み出した色情報が、質感(マテリアル)データとして書き出されています
 ⑤本来であればテクスチャ画像と一緒に指定するobjファイルですが、ver0.7以降ではmtlファイルとセットでzip内に配置されたobjは
  テクスチャ画像ではなくmtlの色情報を見に行くようにしてあります
  (つまりテクスチャが不要。/jbbuildobjで出した二つのファイルのみでモデルとして認識)
  ただし以下のルールに従ってください
   ・obj内の「mtllib」行に続くmtlファイル名の指定はobjファイル名と揃える(obj名を変えた場合など)
   ・mtlそのもののファイル名もobjファイル名と揃える(obj名を変えた場合など)
   ・objとmtlはzipで同じ階層に置く
 ⑥zipの構成に従ってobjファイルを配置し、モデルjsonを記述することで出力したobjを外部パッケージの取り込みモデルとして
  使用することが可能になります
  (zipの詳しい作り方についてはこのトピック内か、トピック内外でもまとめておられる方がおられるのでご参照ください)

 以上、もし興味があれば試してみてください

 ※「ひとつのobjにつき複数のmtlを容易して色変えモデルを作れないものか?」というご要望は当然でてくるものとは思いますが、
   各頂点情報とmtlの読み込みはセットになっているため、分けたものを読み込むのと結局は同等になります。
   なので色変えverを作成する場合は手間ではありますが別セットのobjとmtlをそれぞれご用意ください)

[おまけ②:RINGサンプルいくつか]

※全てRINGを設置したユニットの設計図データなので設計図とコンストラクタに突っ込んでください

「ローテーター順次回転」

ローテーター(とエクステンダー)を計画にそって動かす、というサンプルです

コード: 全て選択
BR+LCAAAAAAAAAB1ks1OwkAQx6f0g3X5PBAuJmg8eeRMOBlDAgdC4tfRbNulNO62pruo76IP4WP4
FD6BPgNOF0pBdA6Tf2Z+O7OZGQpQA1vxDACOV2gWrK1lowvhH7OAoD+x2wPDuH8AUAG6y3ibTBia
qjbYQSJzEhXfKiWKbGJiuZpLjaKDKtty2ig7f7HmquAqrX2B8jxnsOupTMPJ/SSNE30h0uBhkMVJ
FCxkquM0iTWXBJyESQ7eJUsCnlFwA0TmNtSVYE/8SqR6ujQdLWgwpbj0BR8JFqkKAbLEGtOd5xY0
/ZRl4W3Mnw2Ef/dyaByuJ9IRLIv4DUbueBwt9Ch+4WFYBSd77PeR+KZdy4y/lTtnZezz7fWrZ7WH
3TOCY6ZmpsZmxg8dgpUPsqv3Ilux0XvQKZlfy0LG9WDY7lFcEcVrgI8iXiVl3CquAeNHdK/jbL9a
rV5mrYNejebmPw4QqfxrFo3LK8vXGYiNYjozwR9PL8cpowIAAA==




「視線でロックオン」

視線追従の先につけたセンサーの射線から3番ターゲットを更新していく、というサンプルです

コード: 全て選択
BR+LCAAAAAAAAACFksFu1DAQhsd2wqbptk3LwgWJLqqQqARVDz0tORVRqT30AKEcKydx02idpIpd
oLwFEjd4DJ6HJ+AZGsZOQlMoWh9W/8z++cb+bR9gGZgSNQB8aXARaNcaw58U7lwEGnCMZ6MtGTSN
rfdsTV3keCg2o+ARMnwg5AWQWwjqkM7z+r8eQqEhlrtla7ft3bE32209OJssmO3ibLJoNnJgAYcg
BxZwbFpOv2cTNtBhPQZgw3qFAmv3thU8QOYz8z0iswFwFT3UN56nwUubQzfTeZ72qYzdppsT2Tpw
r2l/HsPdNnMJ/Bhy1+k1JX6f9zDf9A93Az3Ug2Cn25/fn7FfDFhSFmBfBRNWUVRKpt2/pe2NUJ0V
GtUEVW17S6i0VaanWsoIXKV1LFF/NUfEpJ8UVXp0elTlpd6XVTKfFTw5z0tRVDqvylyLAmOZ/m1S
olRVPfDswGbr2X9TxZWeYSHkqeSfRZ1xLfMywxP+g5mLq1qoG4wHTskLAUsRL+fT6OpC+OAmdV6e
MRgryT+It7LSx5dFG9MKV0oUsRQHkmcKb8S7RMzxbQKB1bjidXqSi4+tj8E94zs0IVICE8nrTLzD
znuRZ+f6IP8k0nQETn2xu4uWV/5DYq9kzT6Lxq6f37/9ekxYuDwjMDX9iR+GzgnSwvshszdJBo/X
Aa9QccSzw5uXYK4lkZ3iurbN3x9oQnFDBAAA



「絶滅ヘリ」

座席にMOBを乗せた状態でエネルギーが充填されると軌道位置周辺を徘徊して
座席に乗ったMOBと同じ種類のMOBを攻撃しエネルギーが減ると起動位置に休みに行く、というサンプルです
※燃料が必要です

コード: 全て選択
BR+LCAAAAAAAAACFVMtO20AUvWOPY+MkJICpKlUKVH0sUeR2UUWWeAkkUIsQobRdIcceEgs/kD0U
1L/orq/P6E/0J7rptot+Ae6dsROStMBdWOeeOXNfM2MToApqxlIA+JijESisoeLHhxuMgPI/DVFG
EJdyKjS2dHGBFL42XFbGfYRqbiBY0poPMKYFhBCYNFTS3BQatdmRebVyxfeHVVSQvEujqaBeCU3j
+VT9YxoFS5SaJzdrtFyVuRrdmzWUlJqtGzVUy8tZdKVf064m/LpypYCczaOyJwWmbRY1hEJzZaRR
/9FQSsq4m9JvUmXCn1OUO/PMo+bWPDhbL44QEERMogqiLPTL1VhyM4hOIo7IQpRKTkXEJRJcVkTR
Qcs474WIz4QGb8fDKPF3j3eTIOYbYeKddiLXGwQxixIeJHHAWYSlLU+L0iDue4MxzQosFZqNg6SX
8A46LDwO3Q8s7bs8RLkBNHYjBubWJQ9iD3emJmgeRjpRoZaF7nvWDRO+dy4qxTdRd7OMRb2QbYdu
P1MMMM4x1d5UCAKzvcRN/aOAXUghTqUihDtynASs0E377DUyb1jQH/Dt4JL5vg40PWu38VA+mfc0
+TYa8lRzaT+/ff3dIk270R0kCe8ylzP/lRvEjk5Bih26S8B2qEEaLUEqBWmoDRCuWrpaHd12i4p+
nGoHbwkiYprHDq0Iih7h8TgLDpGvwxx7o7i51rBwQYSjkiHQIqY902V8PYv2k0xkN8CpzcPqn3JX
LiOaglsrKVJwNck1J7hZyd0fcQsOxV+FnBq+NfHRiWNeX9sWqdvVA5bxne2XycVWjAVUdHCUfdtZ
tOiwCLL2blRNs4VHjL1hLKWY26I1PxKu/vgs7Iso26BVa6oVvW0Wg5vY8+uZNFwXxS+XdAXrHG0V
U5soe8aubw6Yd3rY50duGPhO5a0I3MK0oBdfq+RMzNZcM4atvLgerEF1uDWLbpv7aeKtc+56p+Mp
NEv0QmQvc49BMQVC93sRR38q7guZDkjBiLLeodvfuf7RiZfshSVyeSrJvxNmbw52BgAA


改めて俯瞰すると移動タスクchのクリアとかターゲットのクリアとかアトラクター処理とか色々足りないですが、そのうち追加していきます、、、

正式への格上げはもうしばらく様子見
あるべ
ID:adc2047f
石掘り
 
記事: 97
登録日時: 2014年1月22日(水) 21:43

  • (PostNo.300344)

Re: [1.7.10]StarMinerMOD、JointBlock

投稿記事by lion_neglect » 2017年4月11日(火) 22:38

お疲れ様です。
RINGすごいですね!
今、作成中の機体のmblock・・・255使い切って、まだ100以上足らないーって困ってて
なんとか折り合いをつけたところだったんですが・・・
わずか6個ぐらいで済みそうです!
毎度、verupごとに世界が変わりますねw


・小数点以下は、あったいいけど、出来たら出来たで余計大変だなって思いつつ・・・
 RINGで小数点以下が入れれたので、聞いてみただけですw

・スレイブ側へ、アイテム操作でモーションさせた時の件ですが、
 いま作成している機体(マスタ側5000blcok、スレイブ側700~1000block×3)で、
 アイテム操作させると、ほぼ100%で、スレイブ側のユニットは1か2個しかモーションしてくれません。

 先に書いたとおり作業している場所が重い(近く(チャンク内?)に200block程度のユニットが20体位、700~1000block が4体位、4000blockが1体って程度ですかね・・・)かなと、
 1チャンク以上離れたり、別worldで周りにJBブロックがない場所だと、ちゃんと全部モーションしてくれます。

・アドオンの追加の件ですが、モデルのファイルへの指定する項目がなかったので、
 あんな書き方をしてみたのですがやはりそうですかw
 とはいえ、アドオンスロットに入れて検索しても出てこないんですよね・・・アイテムとしては追加されてるので、
 補正値の書き方がおかしい?ってところなんですかね・・・
 一度、見てもらったほうがいいのかなぁ・・・


で、新verをちょこっといじっていて追加して欲しいなってところを・・・

1.エクステンダーなんですがRINGだと1回で300%までを伸縮できるようになってますが、
  普通のモーションでも1回でMAX100%でなく300%まで設定できるようにはなりませんか?
  スケーラーも1回で300%までいけますし・・・こちらも解禁してしまってもと・・・

2.コアの特殊設定で、モーション独立にチェックを入れた場合にtickが動くようにはできますか?
 (移動とは別でチェック項目を作ったほうがいいのかも?)
 現状ですと、スレイブ側の移動のモーションは制御できるようになったのですが、tickはうごきっぱなので・・・

以上、よろしくお願い致します。
lion_neglect
ID:5273931f
 

  • (PostNo.300350)

Re: [1.7.10]StarMinerMOD、JointBlock

投稿記事by ななすぃ » 2017年4月11日(火) 23:56

更新お疲れさまですm(__)m

要望ですが、お時間に余裕がございましたら狙撃武器と照射ビーム、バリアーのような武器が欲しいです。
ななすぃ
ID:76e535a0
 

1つ前へ次へ

Return to MOD 公開/紹介

x