MOD解説 > JointBlock


*注意:このMODはまだ試作段階なので既存ワールドなどにMODを適用するとワールドが壊れる場合があるので、新規ワールドでプレイ推奨します。
Ver0.7.3に合わせ編集を行っています。現Verに更新されていない説明もあります。
MOD名 JointBlock
製作者 あるべ
配布場所
http://forum.minecraftuser.jp/viewtopic.php?f=13&t=17975
https://www.dropbox.com/sh/lzqemmguxm1xf1h/AABToF7-YfSFhGdS9OxAMGzka?dl=0
前提MOD 【Minecraft Forge】
最新バージョン Ver0.7.3
使用BlockID なし
使用ItemID なし
SMP対応
使用Class なし(※前提MODの使用分は除く)
関連サイト 解説動画(大佐 Kakuran氏-youtube)
解説動画(ルナチタニウム氏-ニコニコ動画)
チュートリアル動画(ルナチタニウム氏-ニコニコ動画)
解説動画まとめ(まから氏-ニコブロ)
R.I.N.G.解説(まから氏-ニコブロ)
JointBlockの投稿作品(ニコニコ静画)
ロボットコンテスト(ニコニコ動画)
皆が作った機体を配布しよう!(naori3595氏-ニコブロ)
交流ディスコード(あしゅとん氏)


目次


このMODについて

追加されたブロックを組み合わせて 「ロボットなどの搭乗可能な乗り物を作成するMOD」 です。
ジョイントコアブロックを中心に他のジョイントブロックパーツを設置し、
「各パーツやブロックにパラメーターを設定」 することで、動く乗り物が完成します。
このMODでは動く乗り物のことを「ユニット」と呼んでいます。

他にもユニットを作成する上で便利なツール群や、
彫刻などの細かい装飾を施せるツール等も追加されています。

最初は癖のある仕様に慣れるのに時間がかかり、慣れると気軽にユニットが作れます。
作れるユニットの例を挙げると 「整地や掘削などに特化した実用的な機体」 から、
「エンダードラゴンやウィザー等のボスを余裕で倒せる戦闘用機体 」や、
実際に搭乗して使用できる 「アニメ等で出てくるロボットの再現機体」 など
工夫とアイディア、センス、根気次第で様々なユニットが作れます。

更にユニットの動きを制御できる簡易プログラミング機能「R.I.N.G」システムがあり、
ユニットに複雑な動きや状況判断による自立行動をさせることも出来ます。

また本MODはプラグインシステムを採用しており、 「ジョイントブロックパーツを自作」 することができます。
モデルパッケージ作成するには、obj形式の3Dモデルを使用します。
ゲーム中に作成したユニットをエクスポートするか、
モデリングソフト(Brender,Metasequoia等)、テクスチャ作成用の画像編集ソフトで作成する事になります。

JointBlockで出来る事
+目安としてJointBlockで出来る事を羅列してみました。
  • ブロック を並べて、初期値を設定して ポーズ を取らせることが出来ます。
  • 作成した ユニット搭乗 して操作する事ができます。
  • MCTRL を入れて人型や車、ヘリなどの 動きを取らせる ことが出来ます。
  • バニラブロックモデル を入れて 造形 する事ができます。
  • 武器モデルを入れて 撃ってみたり ドリルモデルで 掘ってみたり スラスターモデルで 加速 できます。
  • セラミックパテとノミ、ペイントガンで 彫刻、塗装 する事ができます。
  • パターンカッターを使い、 角度の付いた彫刻造形 をする事ができます。
  • 初期値を複数設定して、 複数のポーズ を取らせる事が出来ます。
  • シートをインターフェースに変更し、 搭乗せず操作 する事ができます。
  • アトラクターを使い、スレーブ状態の 他ユニットを合体 させる事ができます。
  • ユニットコアをスレーブ状態にして、 プレイヤーに装備 させる事ができます。
  • 複数のローテーターやスライダーに MCTRLを入れて複雑な動き を取らせる事が出来ます。
  • ローテーターやスライダーで彫刻したパーツを 重ねて複雑な造形 する事ができます。
  • oblファイルを取り込み、 オリジナルのモデルパッケージ を作成する事ができます。
  • R.I.N.G.を使い、 自律行動や条件に合わせた複雑な動き 、キー操作などを プログラム できます。

更新情報

+Ver0.7.3
Ver0.7.3での変更点 (2017年4月11日)
  • 追加:コマンド「/jbshowconnection」の追加(クライアント側コマンド)
 「/jbscon 数値」で指定数tickの間、ブロック接続方向を可視化する
 ただしこのコマンドは「アセンブリチューナー」を持っているときのみ接続が見える
 アセンブル後のユニットも接続方向が見えるようにしたが、スケーラーなどの繋がりは結局まだわかりにくい

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

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

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

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

  • BugFix: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の詳しい作り方についてはJointBlockトピック外でもまとめている方がおられるので参照)

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


過去の更新情報
+更新情報
+Ver0.7系列
Ver0.7.2での変更点 (2017年4月05日)
  • 変更点:ユニット化条件の撤廃
 現状ほぼ無意味な制約でしかなかったユニット化条件を完全に廃止
 上記に伴い構造・ブロック数より算出していたパラメータはユニットで固定化
 代わりにコアにアドオンを追加することにより各種パラメータが変動するようにした
 詳しくは下記アドオンシステムにて

  • 追加:アドオンシステム
 ユニットにアドオンを積むことで体力・ENや移動パラメータを増強できるシステム
 アドオンには二種類あり
  -アイテムとしてのアドオン
  -モデルとしてのアドオン
 がある
 アイテムアドオンはコアの専用タブからスロットに追加することでアセンブル後に効果を発揮し、
 モデルアドオンはモデルとして配置されていればアセンブル後に効果を発揮する
 各パラメータ補正はユニット固有パラメータを元に算出されるので、
 補正値はもともと対象パラメータの高いユニット型ほど高くなる
 (例えば横移動がもともと遅い四足歩行型などは横移動アドオンを載せてもあまり効果は高くなく、
  HPとENが高い車輪型はそれぞれアドオンでのHP・EN値の伸び率が良くなる)

 (※以下ちょっとややこしい話。パッケージを作って遊びたい方以外はあんまり関係ない)
 デフォルトアドオンではほぼ活用されていないが、「リミットキー」(ゲーム内では主に略称「LK」で表示)
 というシステムにより、パッケージなどで追加されたアドオンなどでバランスを調整することができるようになった
 リミット(制限)キーの名のとおり、ひとつのコアに乗せるアドオンを制限するための仕組み
 アドオンはリミットキーに属することができ、リミットキーの上限コストによって積載制約を課すことができる
 例)リミットキーA(上限コスト5)に属したアドオンX(LKコスト1)とアドオンZ(LKコスト3)があるとして
  アドオンXを2つとアドオンZを1つ積んだ場合、リミットキーAのコストチェックでは総コスト5以内なので積載OK。
  アドオンXを3つとアドオンZを1つ積もうとした場合、アドオンZの追加はコストチェックにかかって弾かれる
  (※ちょっと微妙な仕様だが、コストの積み上げは検索あるいは読み込み順になる)
 これはモデルアドオンにも適用可能なので、たとえばユニットにつきモデル武装やモデル部位の積載制限をすることが可能
 (アドオンが無効になるだけかモデルの乗ったブロックが除外されるかはLKに設定可能)

  • 追加:ターゲットシステム
 RINGにやらせたかったことを実現するキモの新システム
 ユニットあたり5つのターゲットを持つことが可能
 設定したターゲットはキーMCTLの新機能「ターゲットへ回転(ローテーター用)」と組み合わせることで
 パーツをターゲット方向へ向けることができたり、RINGの「移動タスクノード」と合わせて自律移動などを行う

 [ターゲット指定方法その①:ターゲットサイトアイテム]
 ユニットに搭乗して新アイテム「ターゲットサイト」を持つと一定範囲のEntity上にターゲット選択リングが現れるので
 右クリックでターゲットを選択することが可能
 複数選択する場合は右クリックを押しっぱなしでそれぞれをドラッグオーバーして選択
 ctrlキーを押すごとにターゲットの指定方法が「生物のみ」「Entity全て」「ブロック指定」に切り替わる
 ブロック指定の状態ではブロック座標をひとつのみターゲットとすることが可能
 [ターゲット指定方法その②:RINGのノード「ターゲット設定指示ノード」]
 後述のセンサーノードの機能などで取得したEntityIDをターゲット指定ノードに渡してやることで
 RING内でターゲットを指定することが可能

 なお0番ターゲットは固定でアセンブル主になる
 上手く組み合わせればRINGでターゲットを自動検索して射撃する機体なんかも作れるかも

 (※注意※ターゲット情報はEntityの保存情報に含まれていない
  セーブ・ロードを挟む、チャンクのアンロードを挟むなどで頭は空っぽになるので注意)

  • 追加:センサー機能(主にRINGで使用)
 新アイテム「センサーMCTRL」を配置することで対象ブロックを位置センサーとしてRINGに認識させることが可能
 「センサー状態検知ノード」よりセンサーの位置を取得することができるほか、
 「Entity検索指示ノード」により検索されたEntityIDを取り出すこともできる

  • 追加:移動タスク指示(RING機能)
 ターゲットに追従してユニットを移動させることが可能
 ただ経路検索のコストがユニットの高さに比例して跳ね上がるので、一般MOBなどに比べると若干頭が悪いところがある
 ジャンプを活用しないなどもろもろの制限はあり
 (歩行系とホバー・ヘリだけ対応。エアクラフト・フロート・宇宙などは未実装)

  • 追加:Entity状態検知ノードとBlock状態検知ノード
 それぞれEntityIDやブロック座標を渡してやるとそのEntity/Blockの一部情報を取得して出力する
 ※ただし「Block状態検知」のほうは現状唯一のオーバーパワーノードとして「enableOverpowerNode」設定の影響を受ける
  設定ファイルを変えるか(デフォルトでは否設定)、「jbcset enableOverpowerNode true」で一時的に有効化可能
  (使い方によっては鉱脈検索機なども作れてしまうため)

  • 追加:ベクタ入出力(RING機能)
 詳細な説明は割愛。4値までの疑似ベクタを扱える。現状ノードの代入機能でベクタは渡せない

  • 追加:パターンコーナーB
 パターンコーナーAの赤ちょぼからシームレスに切り替え可能
 (内部的には別パターンに切り替えていてインジケーターで[CornerB]と表示される)

  • 変更点:RING保存データ形式の変更
 0.7.1のRINGは使用不可能。
  • 変更点:スケーラーを100超えて設定できるように
 ブロック数とステータスの相関が壊れた今となっては100%までの縛りが意味を失ったので試しに解放
 想定外の不具合があるかもしれない
  • BugFix:アクションのスケールバグ(伸縮によって弾速や速度が変わるバグ)を修正
 アドオンのほうに調整項目を追加
  • 変更点:スラスターのspeedLimit計算方法を変更。デフォルト値を「1.0」に
 パッケージなどで独自スラスターを追加されていた方は要再調整。
  • 変更点:今まで足の長さで算出していたジャンプ力は初期値確定時のコアの高さから算出するよう変更(+アドオンで増強可)
 同じく足の長さで算出していたラージユニットウェイト(腕の振りを鈍くする割合)もコアの高さから算出
 もしマニュアルでラージユニットウェイト値を設定したい場合はコアの特殊設定から
 ステップ高はユニット別に基礎値固定(+アドオンで増強可)
  • 追加:パラメータコピーに特殊設定を追加
 それに伴いコピー先のブロック種別が違っていても特殊設定のコピー用にGUIが開けるよう変更
  • 追加:モーション無効の項目に「アクション無効」「両方無効」を追加(従来の「する」は「モーション無効」に)
  • 変更点:エアクラフト型の飛行時エネルギー消費を廃止
 ただし崖などから無理やり着陸した場合のペナルティ消費はそのまま
  • 変更点:パス検索コスト軽減のため衝突の判定箱のサイズを従来の2から1に変更
 これにより1x1のくぼみにも入るように
 経路検索時、任意の高さぶんの検索があるのでどうしても横幅の判定を減らさないと難しいので
  • 変更点:RINGノードの全体的な挙動変更
 -コントローラー越しにRingDebugもできるように
 -TG系ノードはTICKで最初に値を要求された時点での値で同TICK間は固定するように(循環参照対策)
 -TG系ノードは通過時にも値を更新するように
 -TG系の例外時にはERROR値を返すように変更
 -ERROR値を受け渡されたDRは仕事をしないように
 -ifにERROR値判断を追加
 -Linkノードで循環参照を防ぐためにリンク深度(リンクのリンク)を最大5に設定
  (TG系と同じくTICK内で最初に更新されたリンク先で同TICK間は固定)
 -座席番号項目を全てRef可能に
 -キー入力DR・検知ノードに項目「シングル/ダブル」を追加
  • 変更点:RINGの他ページ呼び出し時、呼び出し元情報を限定でstackする仕様に
 8呼び出しまでスタック。スタックオーバーフロー時は古い順から消去
  • 追加:ActionBulletの爆発に関するjson項目を追加
 「ignoreDamageCooldown」ヒット後の無敵時間を強制0にしてダメージを与える(デフォルトfalse)
 「cutExplosionNockBack」爆風作用をカットする(ダメージ自体のノックバックはする)(デフォルトfalse)(※ミサイルに適用した)
 「explodeAffectsBlocks」爆発がブロックに影響するかどうか(デフォルトtrue)
 「explodeAffectsEntity」爆発かEntityに影響するかどうか(デフォルトtrue)
 ※旧来の「dummyExplode」はtrueを設定すると上記両方がfalseになる項目に。
 「explosionSize」で爆発サイズを設定できるように(省略すると1.5)
  各デフォルト値は
   バズーカA型3.0
   バズーカB型4.0
   ミサイル1.5
  数値を大きくすると処理の負荷も相応に上がるので注意

  • 変更点:config設定
 「disableUnitRequirement」廃止
 「maxUnitHealth」廃止
 「maxUnitEnergy」廃止
 「fixHealthAndEnergyAtMax」廃止
 「largeUnitAbilityFixType」廃止
  • 追加:config設定
 「baseUnitHealth」追加
 「baseUnitEnergy」追加
 ※上記二つにユニット型それぞれの倍率がかかり基本の体力・エネルギー値となる

  • 変更点:コマンド
 「jbspeedworld」廃止
 「jbdis」の仕様を変更
 「/jbdis」だけでも実行可能に(範囲64)
 「/jbdis」のみの場合は他ユニットスレーブ状態のユニットを解体できないように
 スレーブも無理やり解体したい場合は「/jbdis 数値 force」で強制解体

  • BugFix:特殊設定の共通項目をチェックすると固有設定がクリアされていたバグを修正
  • BugFix:ローテーター系MCTL項目の「最小角度」「最大角度」がのきなみ%表記になっていたのを修正
  • 変更点:ノミとペイントガンのアイテムアイコン上の番号文字色を黄色に変更(白だとアイテム数とかぶるので)
 またペイントガンの7番は表記を「B」に統一
  • BugFix:Edit入力で項目がずれるスライダー由来バグを修正
  • BugFix:RINGのGUIでボタン右クリックでtick音が聞こえなかったのを修正
  • 変更点:パレット画面でctrlを押すとパレット番号ごとにコピー&ペーストが出来るように(アイテムデータではなくメモリ経由)
  • BugFix:コアGUIの一部チェックボックスでアセンブルフラグが初期化され「OP独立」などのフラグがクリアされてしまうバグを修正
  • BugFix:エアクラフト型のコア高さが0より大きいとコア位置が正常に計算できていなかったバグを修正
  • BugFix:エアクラフト型の通信不正により回転によってはクライアント側が落ちる致命的なバグを修正
  • BugFix:ディスアセンブル時にユニットの描画が暴れる現象・幽体離脱現象を修正

Ver0.7.1での変更点
  • BugFix:/jbbuildobjでゼロスケーラーをかませるとエラーとなるバグを修正
  ※ただしゼロスケール部位はにフェイスの統合がされない場合があり(扱う少数表現の誤差のため)
   なるべくゼロスケールの部位は除いて出力したほうが余分なデータを出さないため
  • BugFix:法線の計算が不正となり特定の平面が出力されない場合があるバグを修正
  • BugFix:R.I.N.G.のアクション指示でノーマルなど一部ジョイント種が反応しないバグを修正
  • 追加:コアの特殊設定に「スレーブ独立・モーション」「スレーブ独立・OP」の項目を追加
  • BugFix:項目の追加に伴い移動系およびキー系のMCTLの動作を以下のように修正
  ・移動系トリガーのMCTLはスレーブ接続時にデフォルトでは動かなくなるよう修正(マスター接続時は初期値に固定される)
  モーション独立にチェックを入れた場合のみ移動判定を拾ってモーションを実行する
  ・キー・アイテム系MCTLは「OP独立」を選択しない場合はこれまで同様にマスターよりキー入力等を受け取り処理を行う
  「OP独立」を選択した場合はスレーブ本体の入力にもとづいて処理を行う
  また、 「OP独立」にした場合、スタビライザー系(親の回転をリセット系)の基準回転はマスターではなくスレーブ本体のyaw値から再計算される
  • BugFix:スレーブのyawをマスターより取得していたのをアフィン変換から改めて算出するよう修正
  具体的には座席の向いている方向からyawを取り出す。なので極(直上、直下方面)付近では小さな差でもブレが大きくなるのでその点留意すること。
  • 変更点:上記スレーブyaw等、R.I.N.G.で取得できるものはスレーブユニット本体のものに固定(マスターのものを見に行かない)
  • BugFix:GUIにてText項目を出したままマウスホイールをスクロールすると入力先項目がずれるバグを修正(ホイール入力があるとテキスト項目を閉じるように)

Ver0.7.0での変更点 (2016年9月04日)
  • 変更点:jarの統合
 JointBlock.jarとJBRobotModel.jarを1つのファイルに統合
  • 追加:R.I.N.G.システムの追加
 R.I.N.G.システムとはJBのユニットをプログラムで制御できる仕組みである。
 ◆ユニットの燃料画面でセットすることでアセンブル後は毎tick動き、各ノードの処理を実行していく
 ◆ページ毎にMAX24ノード、32ページまでひとつのR.I.N.G.に登録可能
 ◆サイクルモードでは前回tickで止まった場所から再開する
  ショットモードでは毎tick0ページ0ノードから処理を開始する
 ◆サイクルモードでは1tick内に無限にノードを処理できるわけではなく、
 下記のルールに従ってtick内処理を中断して次のtickに処理を引き継ぐ
 (ルール①)
 同tick内で同じノードを二度実行しようとすると中断。次tickはそのノードから始まる
 (ルール②)
 24(1リングMAXノード数)*3=72の数のノードを処理すると中断
 上記いずれの場合でも次tickは前tickに中断したノードから始まる
 以上ルールによってひとつのユニットが無限にCPUリソースを消費することを防いぐ
 ただ、上記仕様のためノードの処理がどこで止まるか、また、どこから再開されるかの保障はなく、
   意図した動作にならない場合もある
   必ずtick内に動作させたいノードがある場合などはショットモードを選択してみる
 ◆全てのノードは出力を持ち、他のノードから参照されたときに必ず何かの値を出す
  基本的には
   ・真偽値(TRUE,FALSE)
   ・実数(浮動小数点)
   ・整数(浮動小数点を受け取り手に応じて整数に切り捨てたもの)が返される
 ◆ノードは大別して
   ST系ノード(シンタックス系ノード。つまり構文ノード)
   DR系ノード(命令形ノード。ユニットやパーツへチャンネルを解して命令を出すノード)
   TG系ノード(トリガー系ノード、あるいはセンサー系ノードと呼んだほうがいいかもしれない?)に分けられる
 ◆上記DR系ノードは実行される際、必ずその仕事内容と関わる「チャンネル」を介して実行を行う
  チャンネルには一つのノードのみ登録でき、あるノードが登録されている間は他のノードの登録を受け付けない
  (強制的にクリアするためのノードもありますが、基本的にはこのルール)
  全てのDR系ノードには「仕事期間(tick)」があり、仕事期間を経過するとチャンネルから退く
 ◆OPCutにチェックを入れたR.I.N.Gがセットされたユニットは席1の基本操作を受け付けなくなる
 ◆変数系ノードの内部値はjavaのdoubleすなわち倍精度(64bit)浮動小数点になっている
 ◆シングルでプレイしている場合のみ/jbringdebugコマンド(/jbrd・/jbdrでも可)
  「/jbringdebug on/off またはスロット番号」
  スロット番号は左上から右へ0, 1、左下から2, 3になっている
  (サーバーサイドから直接実行情報を見に行っているだけなので外部サーバーの場合は情報を取れない)
  サーバーから情報をネット越しに送信するようにすればマルチでもデバッグ可能だが、おそらく実装しない)
 <20160905 GUIの機能について追記>
 ◆左のノードリストからドラッグ&ドロップでノードをページに追加
 ◆ページのリング状でノードを選択し、右側に表示された入力項目から各ノードの値を設定
 ◆REFとFIXが切り替えられる項目について
  FIX(:FIXED=固定値)はユーザーが入力した値そのままを利用する
  REF(:REFERENCE=参照値)は指定したノードの出力値を利用する
  ※例えばモーションDRノードでローテーターの回転値をユーザーのYAWから取りたい場合などは
   ユーザー状態センサーノードのYAW(相対)からY軸の値をとることで追従っぽいことが可能
   (ただユーザー状態センサーノードの各検出値は乗っていない場合でも0を出力するのでその切り替え判断も必要)
 ◆REF項目があるノードは左クリックでドラッグすることで線を他のノードへ接続可能
  (※もちろんノードインデックスを直接指定するのでもOK)
 ◆Shiftを押しながらリング上のノードをクリックすることで複数選択が可能
 ◆ノードのTIPSに書いてあるInfやNaNって?
  Infは浮動小数点表現の無限
  NaNは不正な計算(ゼロ除算とか)などにより生じる非数のこと

  • 追加:/jbbuildobjコマンドを追加
 [/jbbuildobjコマンド仕様]
 ◆アセンブル状態のユニットからCarvingのレンダリング情報のみを抜き出してobjファイルとして出力する
 ◆ブロックやモデルなどは出力されない。Carving部分のみ
 ◆「/jbbuildobj 出力ファイル名 [オプション:t]」
  でConfigフォルダ下「JointBlock」フォルダの「objout」フォルダに現在時刻名のフォルダを作成し、
  その下に指定したファイル名でobjファイルを出力する
 ◆一緒に出力されるmtlファイルは色情報が入っている
  objファイル内で紐付けが指定されているのでobjのファイル名を変える場合はobj内の該当箇所とmtlのファイル名も変更する必要があり
 ◆tオプションをつけると全ての面が三角形で出力される
 ◆「/jbbo」「/jbobj」でも可
 ◆何か出なかったりエラーが出た場合は「こういうデータでエラーがでたよ」と報告があると直るかもしれない
 ◆クライアントの描画能力を借りてobjを構築する仕組みなので、処理能力はクライアント依存(サーバー側は一切関わなし)
  普段はちょっと気にしているメモリの消費量やGcへの配慮などは一切なし
  ->処理が重たいので注意
 ◆メッシュ面の統合などはモーション部位区切り毎に行っているのでそのあたりを意識して機体を作ると出力がきれいになるかもしれない
 ◆書き出す際に限界がなくともJBで読み込む際には頂点数の限界があるので注意
  JBで読み込ませる目的で出力する場合は腕や脚などのパーツ毎に小分けしてobj化するといいかもしれない
 ◆mltを読み込むようにするためにobjロード部分をフルスクラッチで書き直している
  今までに読み込めていたデータが読み込めなった、などの不具合も報告すると直るかもしれない

  • 追加:新アイテム「パラメータ転写メモリ」を追加(クリエイティブ専用)
 JBブロック内のパラメータをコピー、貼り付けできる。
 スニーク右クリックでコピー、他のブロックに右クリックでGUIを開き貼り付け。
  • 追加:初期値入力画面でCTRLキーを押すと「削除」「コピー」「ペースト」が表示されるように
  • 追加:座席の設定に「搭乗者のYaw強制同期」を追加
 OP(席1)のときはRINGでOPCutしているとき以外は使用しないのを推奨
  • 変更点:部位破壊を完全廃止
  • 変更点:キーMCTLの検知キーを増加
 各種移動キーとマウスホイールの上下を追加
  • 変更点:jar統合にともないJBRobotModelのConfigを廃止
 モデルのフォルダ名は「JointBlock」固定。
  • 変更点:カービング無分割を追加
 スニークキーを押しながらパテを適用すると無分割から始まる
  • 変更点:全アクションについて指示者なしでもアクションの実行を可能に
 問題がでるかも。変な挙動があったら報告を
  • 変更点:各パーツの値の更新・通信方法を若干修正
  • 変更点:GUIのスクロールバーをマウスホイールでも上下できるように
 またスクロールバーの表示方法を若干改善
  • 追加:クライアント側設定「cutoffMouseScrollWithCtrl」を追加
 デフォルトではoff(false)ですon(true)にするとCTRLを押しているときにMincraft側のホイールキーイベントを無効にする
  • 追加:サーバー側設定「unitEnergyRecoveryMode」を追加
 0がデフォルトで、新仕様の燃料消費モード
 1にするとレガシーモードでユニットは燃料を消費せずENを回復する
  • 追加:サーバー側設定「unitFuelEfficiencyMult」を追加
 燃料値の算出に使用する
  • 追加:サーバー側設定「worldMaxEntityRadiusModifier」を追加
 ※この項目を触るとMinecraftバニラ全体に影響するので、変更に際しては下記をよくご理解のうえ変更をすること
 -背の高いユニットを組み立てたときなど、攻撃などが上部のバウンダリに当たらない現象に遭遇したケースが多くある
 これは衝突判定時に他のEntityを検索する際にチャンクを縦に分割した領域ごとにEntiyを保持しているためで、
 衝突判定以前に領域が検索にかからなければEntityそのものが抽出されないということが起こる。
 上記worldMaxEntityRadiusModifierは数値を上げることで検索する上下領域を増やし、
 衝突判定時の検索でEntityが判定対象として抽出されるようにする。
 (これにより「ユニットの上のほうだけ攻撃が当たらない」ということが起こらなくなくなる)
 反面、全ての検索時に検索領域が増えることで処理のコストが増大する(バニラや他MODの処理にも関わってくる)
 以上トレードオフを理解のうえ変更をすること
  • 追加:サーバー側設定「entityJointedTrackingRange」を追加
 ユニットのトラッキングレンジを変更可能

  • BugFix:種消費バグ修正
  • BugFix:Te状態のコアインベントリがセーブ時に正常に保存されない場合があるバグを修正
  • BugFix:スライダーバネKeyMCTLの入力項目の刻みが10単位になっていたのを修正


+Ver0.6系列
Ver0.6.2での変更点
  • 追加:5分割以内のBOXカービングをカッター(無印モード)で切るとPatternカービングに自動で変換した上でパターンを切る機能を追加

Ver0.6.1での変更点
  • BugFix:ShaderMOD導入時のカメラ周りのクラッシュバグおよび色バグ修正
  • BugFix:GUIの文字入力フォーカスバグ修正
  • BugFix:セーブデータからの再開時に初期値モードがリセットされるバグを修正
  • 追加:カッターモードにパターン回転、パターン反転を追加
 ※モードの数値がずれたことによる既存アイテムのモードずれが起こるので注意。
 -回転モード(横回転レンチアイコン)
 右クリック:上から見て時計回りに回転
 左クリック:前方へ向かって回転
  -反転モード(反転金型アイコン)
 右クリック:左右反転
 左クリック:上下反転
 -コピーモード(複製金型アイコン)
 右クリック:パターンを記憶
 左クリック:パターンを反映
 -旧回転モード(接続変更レンチアイコン)
  0.6.0での横回転レンチアイコンでのモードに相当

Ver0.6.0での変更点
  • 追加:シートに種別「カメラ」を追加
 -騎乗状態にて「/jbcamera 1-4座席番号|off」で指定したカメラへ切り替え。座席番号「/jbcam」だけなら自動検出(短縮「/jbcam」
 -基本モデルのままの場合ユニット状態時はカメラモデルは描画されない。
 (カービングやモデルをおいた場合は表示されるので、それでも消したい場合は個別非表示設定で)
  • 追加:シートに個別の特殊設定項目を追加
 -「搭乗者を表示しない」
   座席に座った搭乗者を描画しない。
 -「カメラを自動検出」
   乗った瞬間に「/jbcam」を自動で行う設定。
  • 追加:新ユニット型「エアクラフト型」
 -条件は翼のみ。HP・ENともに最低。
 -地上からスペースキーを押して加速し、一定期間トップスピードで離陸。
 -空中操作はAロール左Dロール右Wピッチ下げSピッチ上げ(地上でもヨーは変更可能)
 -滑走しないで強制離陸(段差を降りる、スラスターで垂直離陸)も可能しかしエネルギー大量消費。
 -着陸時は水平に近い角度でないと機体にダメージ。
 -飛行時は徐々にエネルギー消費。地上でエネルギー回復。空中でエネルギーゼロで制御不能に(墜ちます)
 -速度や旋回性能はまたちょっと調整するかも(ユニット型全て調整するかも)
  • 追加:新アイテム「パターンカッター」を追加(下記ご参照)
  • 追加:カービングVer3こと「パターンカービング」追加(下記参照)
 -セラミックパテ(パターン)をブロックに使用することで適用可能
 -最大5分割まで
 -パターンカッターでパターンを切り替え
  現在は「なし(立方体)」「スロープ」「コーナー」の3パターンのみ
 -パターンカッターをスニーク+右クリックで機能切り替え
 -パターンカッター機能「形状操作」(アイコン右上に小さなチューナアイコン)
  「スロープ」や「コーナー」の特定場所に視線を向けるとさらに細かい判定が表示される。
  それらをクリックするとパターンの形状をさらに細かく変更可能。
 -パターンカッター機能「回転」(アイコン右上に小さなレンチアイコン)
  左クリックで底面、右クリックで向きを変更。
  視線を合わせたときの赤い四角が底面、青い四角が向きを表している。
  底面変更レンチと向き変更レンチのような動作イメージだが、
  普通のブロックと決定的に異なるのが、パターンは形状によっては底面が2面や3面だったりする。
  (具体的にはスロープは底面が3、コーナーは底面が2。各形状の表現に必要な最低限の面数のみ。)
 -パターンカッター機能「コピー」(アイコン右上に小さな金型アイコン)
  左クリックでコピー取得、右クリックでコピー反映
 -ひとつのブロックに無限にパターンが切れるわけではない
  各ブロックは内部にパターンテーブルを持っていて各カービング内座標がそのテーブルを参照して形を反映している。
  そのテーブルが現状16パターンまで登録可能となっているので、一つのブロックで表現できる形状は16パターン。
  パターンには底面、向き情報も含まれるので、同じ形状でも向きが違うと別パターンとみなされる。
  パターンを変更しようとして直方体に戻ってしまう場合はパターン数が上限に達している。
  • 追加:インジケーター小ウィンドウ追加
 -Carving時、チューナー操作時に追加情報を表示する小ウィンドウを追加。
 -「/jbtoggleindicator [on|don|off|数値0:左,1:中央,2:右]」で表示の切り替え可能(短縮「/jbti」)
 -設定「enableIndicatorWindowFromStart」を「false」で起動時から無効化
 -onとdonの違いは「debug-on」でさらに追加の情報を表示
 -donのおまけ機能としてジョイント設定画面の左下に「親移動(P)」「奥移動(F)」タブを表示
  • 追加:ジョイントの特殊設定画面にメモ欄(5文字まで)追加
  • 追加:アイテム「マウントボール」を追加
 ①MOBに投げる(当たるとちょっと跳ねる)
 ②有効状態の座席に投げる->一定距離内ならMOBが座席に搭乗
  • 追加:キー・アイテム操作モーションに新バインド「マウント」追加
 -座席専用
 -MOBが座席に座っているなら降ろし、空席なら指定範囲のMOBを検索して乗せる
  • BugFix:ロード時に前回搭乗状態を正しく復帰するよう修正
 (ちょっと復帰時がくがくするが強制同期パケットの影響)
  • 追加:JBRobotModelに新モデル「フレイマー」追加
 -火炎放射機
  • 追加:バズーカ頭モデルに[B型]追加(旧来のは[A型])
 -[B型]はアクションがロケットではなく臼砲になってる
 -ロケットと違って近接信管しないので当たったところで爆発する
  • 変更点:チューニング時にパーツに現モードのレイヤなければ勝手に追加(設定上限まで)
  • 変更点:プレーヤーへのスレーブ接続位置関係を変更
 -コア位置を足元に合わせるようにしていたのを足元と足元で合わせる様に変更
  • 追加:MSBにシフト+右クリックで切りかえれる追従モード追加
 -F:前寄りに追従 FF:さらに前寄りに追従
 -B:後寄りに追従 BB:さらに後寄りに追従
 -ユニットのバウンダリと弓矢などが干渉する現象への苦肉の策
  • 追加:押し移動不可を全ユニットへ解禁
  • BugFix:GUIにて非表示中のボタンにフォーカスが当たり、以降Eキーが飲まれてしまうウィジェットのバグを修正
  • 変更点:パレット画面とミラー画面もEキーでGUIを閉じれるように変更
スレイブモード時の接続処理を若干改善
  • 変更点:ブレードがMOBと干渉時にダメージを与えなくてもエネルギーを消費していたのをダメージを与えたときのみ消費するよう修正
  • 変更点:-加えてブレードhit時の消費量を少し多くした

  • 「mCube」パターンカービングについて
作者が裏機能として残した機能。形状問題を踏まえた上でも使いたいという奇特なユーザー向け。
[/give @p modJ_JointBlock:ceramicputty 1 4]で「セラミックパテ(mCube)」を入手可能。(1の部分は欲しい個数に応じて変更)
細かい仕様とうか制限は以下の通り
  ノミをシフト+右クリックで現れる数値により座標の重み「のみ」変更可能
  ブロック間で形状が繋がるのは以下の条件下のみ
   ・ノーマルとノーマルの間
   ・同じ色
   ・同じ分割数
  色はベース色のみ(各座標に色を塗り分けは不可)

非平面四角問題のせいで向きによりポリゴンの窪み方が変わるので注意。
おおざっぱな形状が欲しい+細かいポリゴンの表面には拘らないというユーザー向け
あくまで裏機能であるいは将来verでけされるかもしれないので注意。


+Ver5.0以前
Ver0.5.2での変更点
  • BugFix:エクスポート時に内部データのアトラクター数のカウントが不正となり、それによってインポートも失敗してしまうバグを修正
  • BugFix:巨大なデータ(31kB超)をエクスポートした場合のパケット作成エラーを修正
  • BugFix:マルチ環境で巨大なデータ(31kB超)をインポートしようとした場合に特定のバイト数では適切にエラー処理されずクラッシュするバグを再度修正
  • BugFix:シングルプレイではパケットの送受信を解さず、内部サーバー(Integratedサーバー)側でクリップボードに直接アクセスしインポートデータを取得するよう修正
    ->これにより31kBを超えるデータでもシングル時のみインポート可能。

Ver0.5.1での変更点
  • BugFix:スレイブモード接続時の「首」「視線追従」系モーション以降のパーツで発生するバグを修正。
  • BugFix:スレイブモードで機体をセーブの後、ロードするとコア部のスレイブ色が消えている不具合を修正。
  • 変更点:ジョイント系ブロックにMOBが湧かないよう修正。

Ver0.5.0での変更点
  • 変更点:追加村人の削除。代わりに通常の村人がJointBlockのアイテムとブロックを取引してくれる。
  • 変更点:様々なアイテムのレシピを追加。村人と取引しなくても、JointBlockのアイテムとブロックが入手可能。
  • 追加:JBRobotModelでobjファイル(wavefront形式)や設計図ファイルをパッケージ化して読み込めるように。マルチで遊ぶには、全クライアントに追加したパッケージを入れること。
  • 変更点:初期値のみしか入力のないモーション(モーションが「固定」の従来モーションブロック)をモーションとしてカウントしないように変更。
  • 変更点:モーションブロック最大255に増加。
  • 追加:ユニットに「スレーブモード」追加(※下記ジョイントアトラクターご参照)
  • 追加:ジョイントアトラクターブロックを追加。
 スレーブモードの他ユニットを一体引き寄せて固定することが可能。
 ただしスレーブモードで他のユニット(以下接続元を「マスター」と表現)は一般のユニットに比べていくつかの制限があり。
 [スレーブモード下での制限]
  ・スレーブ時はモード変更不可となる。
   ->モード変更を行いたい場合は一度連結を解き、スレーブモードを解除してからモード変更を行う。
  ・マスター連結されている場合(ブロック・プレーヤーへの連結を除く)、操作はマスターに委譲される。
  ・マスター連結されている場合(ブロック・プレーヤーへの連結を除く)、エネルギー回復量が1/4になる。
   ->こちらは設定「slaveModeEnergyHealMult」にて数値を変更することが可能。
  ・スラスターは接続先マスターに働き、かつエネルギー消費量3倍
   ->デフォルトのスラスターモデルは上記数値が固定ですが、追加もモデルなどはjsonで数値を弄ることが可能。
  ・マスター連結されている場合(ブロック・プレーヤーへの連結を除く)、事故起こりそうなのでディスアセンブル不可。
  設定「disableMasterConnectedDisassemble」をfalseにすれば連結状態でもディスアセンブル化になる。

  [マスター・スレーブのつながり方(連結法則)]
  ・スロット番号さえ合っていればユニットとブロック状態のアトラクターは繋がる。
  ・一度繋がったマスター・スレーブは連結条件を失うまで他のマスター・スレーブには接続しない。(1対1)
  ・新アイテム「MSBタグ」を用いてマスター・スレーブの紐付けを限定することができる。
  ・ユニットとプレーヤーはMSB共通、かつユニットのスロットが0番である必要あり。
  ・ユニットとユニットはMSB共通、かつスレイブのスロット番号に対応したマスター待受スロットが
   開放されている必要あり。MSBなしのユニット同士もMSBが共通とみなされ結合可能なので注意。
  ・スレイブはまずプレーヤー/ユニットをマスターとして検索し、なければブロックを検索するようになっている。

 アトラクターの入手方法は別記新レシピ集を参照。

  • 追加:キー・アイテム操作モーションにアトラクター用の「切替/パージ」バインド追加
   -「切替」はスロットの有効状態を切り替える。
   -「パージ」は接続されているスレーブに対して指定tick期間は他のマスターやブロックと接続しないように信号を送る。
   -「TE無効」は一定範囲内にあるブロック状態のアトラクターに対して指定tick期間無効化する信号を送る。

  • 追加:コア・ユニットに内部インベントリを追加
   -コア<->ユニットのアセンブル/ディスアセンブル時もインベントリ内容は共通。
   -ブロック状態の場合はコアからのみアクセス可能
   アクセスするにはコア設定画面の右側に新たに追加されたタブをクリックする。
   -ユニット状態時は下記「インターフェース」からのみアクセス可能。
   -「インタラクト」枠と「固定」枠に分かれている。
   -「インタラクト」枠は今回追加したユニット内部インベントリ干渉系のアクションの対象となり、「固定」はならない。

  • 追加:ジョイントシートブロック(座席ブロック)の新モードとして「インターフェース」追加。
   -初期値に追加された「種別」の項目から「シート」または「インターフェース」が選択できるようになる。
   -「インターフェース」であっても座席枠を一つ消費する。
   [「インターフェース」特有の機能]
   ・搭乗不可
   ・ユニット時にインターフェースを右クリックするとユニットのインベントリにアクセスできる。
   ・座席番号1番をインターフェースにした場合、ユニットに騎乗状態でなくともユニットに紐付いた「ユニットコントローラー」から汎用キーを送信することが可能。
    (※ユニットを作成(アセンブル)したプレーヤーのみ)
     条件を満たしたコントローラーはアイコンの色が変わるので目安とする。
   ・モデルをかぶせないでください。byインターフェース君

  • 追加:JointRobotModelに新モデル「ハーベスター」と「プランター」を追加
   [プランター]
   ・耕地&たねまき機能。
   ・植えるアイテムは内部インベントリのものを参照。
   ・耕地とたねまきでそれぞれエネルギーを消費する。
   ・バニラの一部農作物のみ対象。
   [ハーベスター]
   ・ブロックと干渉しているバニラの一部農作物を刈り入れる。
   ・刈り入れた農作物は内部インベントリに格納。
   ・内部インベントリに余裕がなければそのままアイテム化する。

  • 変更点:部位破壊の修正
    -コアを除く全てのパーツが破壊対象となるよう変更。
    -設定「doPartsDestruction」が無効となっていたのをちゃんと効くように修正。

  • 変更点:ブロック制限の変更
    -設定「maxAssembleCount」のデフォルトの数値を512に。
    -設定「maxImportablePartsCount」のデフォルトの数値を512に。
    ・設定「maxAssembleMotionCount」のデフォルトの数値を255(←256ではありません)に
    また、モーションが「固定」の旧来モーションブロックはモーション数に含めないように変更。
    クライアント・サーバー間の通信も行わない。
    上記設定は旧設定でデフォルト値のままのかたは強制的に引き上げられるが、
    念のために設定ファイルは一度削除してから新バージョンのMODを適用するように。

  • 追加:新アイテム「アセンブリチューナー」を追加
   -アセンブリ後に初期値のみ弄れるチューナーアイテム。
   -自分でアセンブルしたユニットのみ変更可能。
   -手に持ってユニットに向けるとブロックの選択枠が表示されるので、右クリックで選択状態。
   -変更可能なブロックの場合、数値変更用のバーが表示されるので、バーをクリックして値を変更する。
   -アイテム追加に伴いキー設定が追加されている。
   カーソルの上下左右で親ブロック・子ブロック・兄弟ブロックに選択を移すことが可能。

   一部コマンドについて、コントローラーを保持している場合のコマンド優先度を変更(jbcmなど)
   -今までは座っているユニット->コントローラーに紐付いているユニットの順に検索されていたが、
   コントローラーに紐付いているユニット->座っているユニットの順に変更。

  • 追加:キー・アイテム操作モーションに初期値モード・スレーブモードモード切替バインド追加
   -「/jbcm」「/jbslavemode」のようにモード/スロットを変更するモーション。
   -ノーマルブロックに配置することで設定可能。
   -モード/スロット値のFrom(~から)とTo(~へ)を指定することで機体のモード/スロット値がFromのときのみ動作する。
   -スレイブモードの場合Form(~から)とTo(~へ)に「off」も選択可能。

  • 追加:コマンド「/jbslavemode」を追加
   -コマンド「/jbslavemode [off|数値]」で騎乗ユニットまたは手持ちコントローラーに紐付くユニットのスレーブモードを変更することが可能。
   -「off」を指定した場合はスレーブモードが解除。
   -「数値」を指定した場合はスレーブモードがONになり、指定した数値のスロットに繋がるようになる。(ディスアセンブル後のコア設定も変化)
   -短縮コマンド「/jbslave」

  • 追加:コマンド「/jbchangesetting」を追加
    -一部の設定を対象にコマンド「/jbdisassemble 設定名 値」でゲーム起動中に設定値を変更することが可能。
    (※途中で変更しても問題ないもののみ)
    -op-permission-level権限3が必要。
    -このコマンドで設定した値は保存されない。
    ゲーム/サーバーを再起動すると設定は設定ファイルのものに戻る。
    -短縮コマンド「/jbcset」
    「/jbscet help」で変更可能な設定一覧を表示する。

  • 追加:コマンド「/jbdisassemble」を追加
   -コマンド「/jbdisassemble 数値」で範囲内のユニットをディスアセンブルすることが可能。
   -op-permission-level権限2が必要。
   -コマンド実行者がユニットの製作者である必要なし。
   -短縮コマンド「/jbdis」

  • 追加:ディスアセンブル禁止設定「disableDisassemble」を追加
   -デフォルトでは無効だが、設定値を「true」にすることでコマンド以外からのユニットのディスアセンブルを禁止。
   -コマンド「/jbchangesetting」を用いることでゲーム起動中でも変更可能。

  • 追加:ディスアセンブル後にブロックにペナルティtickを課す設定「disassemblePenaltyTick」を追加
   -デフォルトでは「0」(無効)となっているが、値を0より大きくすることで指定tickの間ブロックがアセンブル対象にならないペナルティが付与される。
   -コマンド「/jbchangesetting」を用いることでゲーム起動中でも変更可能。

  • 変更点:クライアント用設定の「搭乗時第三者視点切替設定・搭乗時遠近設定・搭乗時遠景倍率設定」を廃止。
    -ブロック(コア)設定の下記新タブから個別で指定するよう変更。

  • 追加:ジョイント設定画面にタブを追加
   [新設定タブ「特殊設定画面」について]
   ・項目「アセンブリ時に透明化」にチェックを入れることでユニット化したときに該当ブロックは見えなくなる。
   ・項目「搭乗時に主観視点のみ透明化」にチェックを入れることで騎乗時かつ主観視点のみ該当ブロックが見えなくなる。
   ・項目「搭乗時に主観視点のみワイヤフレーム化」にチェックを入れることで騎乗時かつ主観視点のみ該当ブロックがワイヤフレーム表示になる。
   ・コア専用設定として「搭乗時第三者視点切替設定・搭乗時遠近設定・搭乗時遠景倍率設定」があり。
    従来のクライアント側設定と内容はほぼ同じ。

  • 変更点:カービング状態のブロック選択枠の表示方法を修正
    -金型、反転金型でブロックを選択した際、素手と同じように、ブロック全体の範囲をワイヤーで表示するよう修正。
    -設計図、カラーパレットも同様。

  • 追加:人型下半身モーションのジャンプ時屈伸設定に「空中時判定」(旧来は跳躍判定)を追加
   -跳躍ではなく、地面についているかどうかで屈伸の判定を行うようになる。
   (※ただし段差などを降りる場合や、スラスターでちょっと浮いただけの場合なども空中時として判定されるのでご注)
   -項目のタイトル名が「跳躍時~」から「空中時~」に切り替わるまで「>>」ボタンを押す。
   -下記昆虫モーションでも同様の設定が可能。

  • 追加:昆虫モーションにジャンプ時の伸縮設定追加
   -「デフォルト設定」で従来と同じ動作となる。
   -文言が「固定」となっていますが、機能はほぼ人型下半身と同様。

  • 追加:視線追従設定に「入力時のみ追従」に「しない」「する」に加えて「離すと初期値」を追加
   -離すと初期値に戻る。

  • 追加:振り子系モーション(移動で振り子・キーで振り子(アイテム側はなし))に「未入力で初期値」を追加
   -ばね系とは異なり戻り方は選べない。ほぼ一息で戻る。
   -(免責)サーバーと通信状況が悪い場合など、キー入力がないとみなされ戻ることがあり。

  • 変更点:ユニットコントローラーの紐付け周りを少しだけ改善
    -ディスアセンブルボールなどでディスアセンブルした場合も紐付けを保つよう変更。
    -ディスアセンブル信号送信時ではなく、ディスアセンブル完成時に紐付けを変更するよう修正。

  • 追加:黄色設計図と赤設計図を追加
   -赤設計図は追加パッケージのカタログ販売専用の設計図。
   [黄色設計図(揮発性設計図)について]
   ・(重要)黄色設計図は機体データがメモリ上の専用テーブル登録され、データはゲーム・サーバー終了時に破棄される。(重要)
   ・作者が想定していたよりもかなり巨大なデータを作成される傾向にあるので、アイテム取り回しの処理負担が少ない黄色設計図を追加。
    青設計図とは違い、アイテムスタック自体に機体データが書き込まれないのでアイテムスロットの操作時など
    プログラムの処理負担やクライアント・サーバー通信にコストが掛からない。
    (逆に言うと青設計図に大きなデータを保存した場合はかなり負担がかかっていることになる)
   ・赤設計図も同様に内部に設計図データを持たず、メモリ上にあるテーブルからアイテム内に保存されたIDから
    データを引き当てる形式だが、黄色設計図とは異なり毎回起動時に追加パッケージより読み込むので
    データの存在は保証されている。(パッケージ内でのIDが変わらない限り。。。)
   ・データの失われた黄色設計図はコンストラクタでビルドしようとした時点でエラーメッセージが書き込まれる。
    (赤設計図もデータがパッケージから消された場合などは同様の動作となる)
   ・データをエクスポートするために設計図を取りたい、などの場合には黄色設計図の使用を推奨。
   ・青設計図はひょっとしたら将来的に消すかもしれない。

  • 追加:設計図のシール(封)機能を追加
   -/jbidコマンドの引数に「s」を指定することで設計図に封をすることが可能。
   -封をした設計図はインポートもエクスポートも出来なくなる。
   -赤設計図は販売時点で封がされている。

  • 追加:ミラーアイテムに「連鎖デリート機能」追加
   -ミラーの機能を拡張して作ったので現状ではコアに接続されていないと破壊対象にならない。

  • 変更点:ミラーアイテム、IFFをスロット内のみ有効とするよう変更
  • 変更点:一部コマンド結果チャットが全体へブロードキャストされていたのを対象プレーヤーにのみ送信するよう修正
  • 追加:追加モデルのアクション属性に爆発ダメージのない爆発を起こせる属性を作成
  • BugFix:スラスターのずれをちょっと修正。
  • BugFix:大きすぎる設計図データを送ろうとしたときにクライアントがクラッシュするバグを修正
  • BugFix:高さ引っかかりバグのFIX(トータルの高さを少し小さめに)
  • 変更点:水に触れてもジョイントブロックがアイテム化しないよう修正
  • BugFix:エクステンダーの輝度バグを修正

  • 変更点:ユニット条件で総パーツ数に比例するタイプの要求条件を引き下げ(最大要求数を10程度に)
    -ユニット選定の自由度を下げているという指摘があったので、かなり要求を下げた。
    -対象となるユニットは「車両」「ホバー」「ヘリ」
    -これは設定「maxRatioedUnitRequirement」より変更可能。

Ver0.3.1での変更点
  • BugFix:スケール縮小時の輝度バグ対応
  • BugFix:ユニット下限算出法の変更・修正
  • BugFix:新ジョイント種を含む設計図データのエクスポート・インポート時の不具合修正
  • 変更点:モーション等入力GUI画面の微変更
  • 追加:Editボタンを追加。数値入力項目に値を入力後、「Set」を押さないと反映されないので注意。
  • 変更点:右クリックでもボタンが反応し、それぞれ
 左のボタン:-100
 中央いずれかのボタン:0セット
 右のボタン:+100セット

v0.3.0での変更点
  • 追加:新たなジョイント種を二種類追加。「ジョイントスケーラー」「ジョイントスライダー」
  • 変更点:基本ブロックモデルの一部見直し接続パーティクル(電撃)廃止
  • 変更点:描画を重くしている部分を見直し
  • 変更点:基本ブロックの形状も微変更。
  • 変更点:Carvingブロックの描画処理を見直し。GLで逐一コンパイルするようにしたので環境によっては少し描画が軽くなる場合もあり。
     逆に環境によっては問題が起きるかもしれないが、その場合はconfigファイルの「disableCarvingGLCompile」をtrue(:無効化)に設定することでVer0.2.0までと同じ方法で描画する
  • 追加:ミラーツール追加。現状はクリエィテイブタブからのみ入手可能
  • 追加:「jbsf <数値>」コマンド追加。指定tickのあいだブロックのおおまかな種類を示す線パーティクルを表示
  • 追加:「jbsb <数値>」コマンド追加。指定tickのあいだユニットのおおまかなバウンダリ(当たり判定)を示す線パーティクルを表示
  • 追加:船ユニット「フロート型」追加
  • 追加:JBRobotModelに近接武器「ブレード」モデルを追加
  • 追加:一部モーションブロックに「振り子」「ばね式」追加
  • 変更点:スニークをしながらブロックを配置した際に、周囲の接続をブロックに向ける機能を廃止
  • 追加:「マグネットレンチ」アイテムを追加
  • BugFix:ログアウトを挟んだディスアセンブルボールを当てるとクラッシュして立ち上がらなくなるエラーを修正
  • BugFix:一部文言を修正


既知の不具合

JointBlockの導入方法

+導入方法
◆シングルプレイ
前提として「MOD解説/MinecraftForge」に従って【Minecraft Forge】を導入する。

Ver0.7.0以降のVer
  1. 任意のフォルダの中に、ダウンロードしたJointBlock本体を解凍し、ファイル「JointBlockAllInOne○○-○○.jar」を「mods」コピー&貼り付けする。

Ver0.6.0以下のVer
  1. 任意のフォルダの中に、ダウンロードしたJointBlock本体を解凍し、ファイル「JointBlock○○.jar」、「JBRobotModel○○.jar」を「mods」コピー&貼り付けする。
  2. マインクラフトを起動、ログインしてタイトル画面まで進めたなら導入成功。

追加モデルパックを導入したいなら、minecraftフォルダのConfigフォルダ直下に「JointBlock」フォルダを作成し、zip化したパッケージを配置する。

◆マルチプレイ(他人のサーバーにログインして遊ぶ場合)
編集中です。配布サイトを見て最新情報を確認してください。
+...
  1. 上記の手順に従って、シングルプレイ用にJointBlock を導入する。
  2. サーバー主側から指定がある場合は、指示通りにコンフィグファイルを修正し、JointBlock以外のMODと追加モデルパックも導入する。
  3. 対象のサーバーにログイン。

◆マルチプレイ(自分でサーバーを建てる場合)
+...
minecraft_server.jarのDL方法や、MOD導入以前の初期設定の仕方については「マルチプレイ」のページを参照。そもそもサーバー建てが初めての場合は、いきなりMODを導入せずに、バニラの状態で問題なく動作するかを確認する事。
前提として「MOD解説/MinecraftForge」に従って【Minecraft Forge】を導入する。

Ver0.7.0以降のVer
  1. 任意のフォルダの中に、ダウンロードしたJointBlock本体を解凍し、ファイル「JointBlockAllInOne○○-○○.jar」を「mods」コピー&貼り付けする。
Ver0.6.0以下のVer
  1. 任意のフォルダの中に、ダウンロードしたJointBlock本体を解凍し、ファイル「JointBlock○○.jar」、「JBRobotModel○○.jar」を「mods」コピー&貼り付けする。

追加モデルパックも導入したいなら、minecraftフォルダのConfigフォルダ直下に「JointBlock」フォルダを作成し、zip化したパッケージを配置する。
  1. サーバーを起動。正常に起動し、MOD内容が反映されていれば導入は終了。

対応環境

JointBlock Ver0.5.2
  • ◆Minecraft 1.7.10
  • Minecraft Forge 1.7.10-10.13.2.1240 ~

+過去の対応環境
(MOD名) ver
  • ◆Minecraft X.X.X
  • Minecraft Forge x.x.x.xxx ~

追加ブロック・アイテム・レシピ一覧

JointBlockで追加されるブロックやアイテムの、生成方法と使用方法の解説です。
パーツである「ブロック」「モデル」、設定や操作をする「ツール」「R.I.N.G.※」、
動きを設定する「MCTRL」、ユニット性能を補正する「アイテムアドオン」などが有ります。
R.I.N.G.に付いては非常に複雑な為、別ページを設けています。
追加ブロック&アイテム&レシピ&インターフェース一覧

チュートリアル

ユニットの基本的な作成方法や、操作方法を解説しています。
JointBlockで出来る事は多岐に渡り、応用できる事も多いので、
当ページ上部の関連サイトの動画や非公式フォーラム、交流ディスコードなども活用するとよいです。
チュートリアル一覧

R.I.N.Gシステム解説

JointBlockで作成したユニットは、「R.I.N.G.(リング?)」と言うシステムで
動きや自律行動を簡易プログラミングする事ができます。
R.I.N.G

追加コマンド一覧

JointBlockには、ユニットの操作や作成を補助するためのコマンドが用意されています。
※この項目は網羅されていない可能性があります。
+コマンド一覧
コマンド名 説明
/jbcamera x
(短縮/jbcam)
騎乗状態で指定したカメラへ切り替え。(x=1~4の座席番号、offで初期)「/jbcam」だけなら自動検出。
/jbchangesetting x y
(短縮/jbcset)
一部の設定を対象にコマンド(x=設定名 y=値)でゲーム起動中に設定値を変更することが可能。(※途中で変更しても問題ないもののみ)
このコマンドで設定した値は保存されない。ゲーム/サーバーを再起動すると設定は設定ファイルのものに戻る。
「/jbscet help」で変更可能な設定一覧を表示する。
op-permission-level権限3が必要。
/jbchangemode x
(短縮/jbcm)
ユニットに設定されている複数の初期値を切り替える。このコマンドを利用すれば機体の変形も可能になる。xは設定したモーション初期値のページ。xに番号指定。
/jbdisassemble x
(短縮/jbdis)
範囲内のユニットをディスアセンブルする。xは自分を中心とした円の半径の範囲で、この範囲内のユニットがディスアセンブル対象となる。
ユニットを逆アセンブルできない場合に有効。
コマンド実行者がユニットの製作者である必要がない。op-permission-level権限2が必要。
「/jbdis」だけでも実行可能に(範囲64)
「/jbdis」のみの場合は他ユニットスレーブ状態のユニットを解体できないように
スレーブも無理やり解体したい場合は「/jbdis x force」で強制解体
/jbexportdata
(短縮/jbed)
手に所持中の設計図(販売品除く)の中にあるユニットデータ,複製金型データおよびパレットデータをクリップボードへエクスポートする。
-「b」オプション付加時、データを改行付きでクリップボードに出力。
/jbimportdata
(短縮/jbid)
手に所持中の設計図複製金型データ,パレットデータをクリップボードからインポートする。
-「s」オプション付加時、設計図に封をすることが可能。封した設計図はインポートもエクスポートもできない。なお、マルチ時には31KBまでしかインポートできない。
ユニットをインポートする際には、セラミックパテの最大分割数と最大モーションブロック数、最大総ブロック数を超えないようにする。
超えてしまうようなユニットをインポートする場合、下記のConfigファイルの設定を変更する必要がある。
/jbsb x xの指定tickのあいだユニットのおおまかなバウンダリ(当たり判定)を示す線パーティクルを表示する。
/jbsf x xの指定tickのあいだブロックのおおまかな種類を示す線パーティクルを表示する。
赤・コアブロック本体
青・コア接続ブロック
黒・ユニット化条件ブロック
灰・コア未接続ブロック
/jbslavemode x
(短縮/jbslave)
搭乗ユニットまたは手持ちコントローラーに紐付くユニットのスレーブモードを変更するxにoffを指定することで、スレーブモードが解除。
xに数値を指定した場合はスレーブモードがONとなり、指定した数値のスロットにつながるようになる。(ディスアセンブル後のコア設定も変化)
/jbtoggleindicator x
(短縮/jbti)
追加情報を表示する小ウィンドウの表示を切り替える。
xに表示の仕方を指定。onで表示。offで非表示。donでデバック情報の表示。数値0:左,1:中央,2:右で表示位置切り替え。
/jbtoggleindicator x
(短縮/jbti)
追加情報を表示する小ウィンドウの表示を切り替える。
xに表示の仕方を指定。onで表示。offで非表示。donでデバック情報の表示。数値0:左,1:中央,2:右で表示位置切り替え。
/jbbuildobj x
(短縮/jbbo)
アセンブルチューナで選択中のユニットを、3Dデータとしてconfig/JointBlock/objoutフォルダにobj形式でエクスポートする。(同時に出来る.mtlはカラーマップ)
引数に「S」をつけると、ポリゴン面が三角のみに、引数に「C」をつけるとコアを中心にしたでーたになる。
出力したデータはモデルパックに使用することも出来る。
エクスポートは失敗しやすい為、複数回実行するとよい。成功時はゲームの動きが暫く止まる。
/jbshowconnection 数値
(短縮/jbscon)
シングルプレイのみ、アセンブルチューナを持っている時、ブロックの接続方向を可視化する。
/
(短縮/jbdr)
シングルのみ。コントローラーを持っている状態で、R.I.N.G.内の動きが見えるようになる。
/jbdr 数値で0~3番目のR.I.N.G.を表示。 /jbdr offで非表示

Configファイルでの設定変更

コンフィグファイルの中身を書き変えることで、設定を変更できます。
MOD導入後に「/config/JointBlock.cfg」が生成されます。
(Ver0.7より前の場合は、モデルに関するコンフィグ「JBRobotModel.cfg」も生成されます。)
ファイル内におけるItemIDは、実際のゲーム内におけるIDより-256した数値で記載されているので注意
行頭の大文字は、値のタイプを表す。
(B:Boolean 真偽値(true or false) I:Integer 整数 S:String 文字列 "(ダブルクォーテーション)は必要ない)

Ver0.7.3になり、一部項目が不要になりました。
また、追加項目は起動時に自動生成されます。
+config一覧
項目 デフォルト 説明
Client_Side_conf
cutoffMouseScrollWithCtrl FALSE
disableCarvingGLCompile false カービングGLコンパイルを無効にする
enableIndicatorWindowFromStart TRUE
enableJointBlockParticle true JointBlockのパーティクルエフェクトを有効にする。
enableSlaveProcessOrderFix true スレーブプロセス指図の修正を有効にする。
indicatorWindowPosition 2
priorReceiveJBPacket true 以前の受信JBパケット
unitStatusBarOffsetX 0 ステータスバーのX位置
unitStatusBarOffsetY 0 ステータスバーのY位置
common_config
configVersion 5 コンフィグのバージョン。古いバージョンなら正しく設定が反映されない場合あり。
server_side_config
allowAnyBlockForModel false たぶん、モデルの挿入の許可/非許可。
allowedModelBlocks モデルブロックの許可 ?表記が変
baseUnitEnergy 100 基本En この数値にユニットタイプ係数とアドオン修正が入る(50~32767)
baseUnitHealth 100 基本体力 この数値にユニットタイプ係数とアドオン修正が入る(50~32767)
bypathPlayerDamageToUnit false falseでPlayerの受けるダメージを機体が肩代わりする。
(クリエイティブの場合/Killコマンドを使うと機体だけ壊れるので便利。)
disableDisassemble true 逆アッセンブリを無効にする
disableMasterConnectedDisassemble TRUE
disassemblePenaltyTick 0 逆アッセンブルペナルティー時間。再アッセンブルまでのディレイの事。
doPartsDestruction true パーツの破壊
enableCarving true 彫刻を可能にする
enableDataExport true falseでサーバ側のクリップボードへのデータのエクスポートを拒否する。
enableDataImport true マルチ専用。falseでサーバ側のクリップボードからのデータのインポートを拒否する。
enableOverpowerNode FALSE R.I.N.G.の「Block状態検知ノード」使用許可
entityJointedTrackingRange 256
fluctuateUnitHeight false
fluctuateUnitHeightThreshold 1
maxAssembleCount 32767 ユニットに使用できる総ブロック数を設定する。
総ブロック数が上限数を超えた場合、遠いところから脱落する。
設定可能範囲(0~32767)
maxAssembleMotionCount 255 ユニットに使用できるモーションブロック数を設定する。
モーションを設定していないブロックは含まれなくなりました。
上限数を超えた場合、遠いところから脱落する。
設定可能範囲(0~255)
maxAssemble(X,Y,Z)Range 64 コアを中心にユニットのアセンブルする範囲を設定する。
X,Y,Zの3項目で範囲設定。
この数以上遠いとアセンブル時に脱落する。
64にすると全長129ブロックまで?
設定可能範囲(0~64)
maxCarvingDivide 4 セラミックパテ(Ceramic Putty)の最大分割数を設定する。7分割以上はPCに負荷がかかるので非推奨。パテで分割できないだけで、設計図や金型での生成は設定に関わらず16分割まで可能。
設定可能範囲(0~16)※パターンカービングは5分割で固定
maxImportablePartsCount 32767 設計図にインポート可能なパーツ数を制限する。
maxInitLayers 5 初期値レイヤーの設定上限。設定可能範囲(1~127)
maxRatioedUnitRequirement 10 タイプ条件の必要ブロック数上限(車輪型のタイヤやヘリブレードなど)設定可能範囲(10~32767)
slaveModeEnergyHeal 0.25 スレイブ状態のユニットのエネルギー回復速度。マスターと同じ場合は1。設定可能範囲(0.01~1000)
unitEnergyRecoveryMode 0 エネルギー回復に石炭が必要かどうか。1にすると不要。
unitFuelEfficiencyMult 0.01
worldMaxEntityRadiusModifier 2
削除されたconfig
disableUnitRequiremen false ユニット要求者を無効にする
largeUnitAbilityFixType 1 大型ユニット能力修正タイプ
fixHealthAndEnergyAtMax false
maxUnitEnergy 1000 ユニットのエネルギーの最大値。設定可能範囲(50~32767)
maxUnitHealth 1000 ユニットのHPの最大値。設定可能範囲(50~32767)

他のMODとの競合情報

同作者のMOD「Starminer」で追加される静止軌道ディメンションでは全ユニットが飛行動作可能。

前提に使用する【Minecraft Forge】も非常に競合の原因になりやすいMODである。
また、単純な競合の他に、【Minecraft Forge】本体との互換性問題もある。詳しくは「MOD解説/MinecraftForge」のページも参照の事。


用語集

+JointBlock独特な用語、よく使う用語の簡単な解説
  • アセンブル  ユニットをブロック状態から搭乗状態にすること。
  • アクションモデル  ブロックのGUIに入れるモデルの内、射撃などアクション機能が付いたモデル
  • カービング  彫刻機能、または彫刻作業のこと。ブロックにセラミックパテを塗るとノミで削れる様になる
  • コア  メインになる追加ブロック クリックするか関連付けしたコントローラからGUIを開く
  • 初期値  アセンブルした時取るポーズの設定値。各ブロックに0~127番まで設定する事が出来き、アセンブル後に切り換える事が出来る。
  • スケーラー  ブロックの大きさを変更するブロック。0~300%まで変更できる。
  • スライダー  上下左右前後に移動させるブロック。
  • スラスター  デフォルトのアクションモデルのひとつ。エネルギーを消費して機体を加速させる事が出来る。
  • 設計図  テキスト文でユニットの設計データを取るアイテム。コマンド/jbedでクリップボードに入り、メモ帳などにペーストできる。
  • ディスアセンブル  アセンブルの逆で、ユニットを搭乗状態からブロック状態にすること。

  • パタカ  パターンカービングの事。カービング状態のブロックをパターンカッターで削ることでブロクを斜めに彫刻する事が出来る。
  • モーション  ブロックに設定する様々な動きの事。設定されたブロックはモーションブロックとして認識し、256個まで設置できる。
  • モデル  ブロックのGUIに入れる事で、そのブロックの見た目を変更させるアイテム。
  • モデルパッケージ  モデルを追加で作成したもの。テキスト文で書かれた設定ファイルと、3Dモデルデータ、モデルのテクスチャから成る。
  • ユニット  JointBlockで作った機体の総称。
  • ロテ・ロテタ  ローテーターの事。回転させるブロック。これを使うことで斜めにブロックを配置したり、グルグル回したりできる。
  • ローテーター造形  ローテータやスライダーなどでブロックの位置を調整し造形する手法。カービングだけでは難しいなめらかな曲面や細かい造形が可能となる。
  • R.I.N.G.  簡易的なプログラムを入れるアイテム。アイテムGUIを開いて設定し、コアGUIに入れて使う。

※聞きなれない用語やよく使う用語などあれば追加してください。編集用コメントでもよいです。


編集用コメント

コメント欄の方針に関してはコメント欄方針を参照して下さい。
wikiの編集が苦手な方は、以下のコメントフォームへ書き込んで頂ければ有志でページに取り込みます。
MODの情報について間違った点や、動作確認済みのMODの不具合等があればご報告下さい。
※コメントを投稿する際は、以下の点を確認して下さい※
  • 編集に関わらない内容のコメント・質問・雑談 は一律して削除されます。
    MOD配布サイト、ReadMeを熟読しても分からなかった質問は、配布サイトや非公式フォーラムなどにて質問して下さい。
  • 投稿の前に一度コメントログに目を通し、 既に同じ内容が載っていないか確認して下さい。
  • 投稿の際は必ず 前提MOD及びそのMODのバージョンを明記し、様々なケースを試した上で 報告して下さい。
  • 投稿されているコメントへの返信の際は、 返信したいコメント横の○にチェックを入れて 返信して下さい。
    表示できる親コメントの数は限られます。新規投稿をむやみに行うことは、他のコメントが流れてしまう要因になります。
コメントログ:MOD解説/JointBlock
+上記の内容を守れる方のみご利用ください。
上記の内容を守れる方のみご利用ください。
  • 更新ありがとー(`・ω・´)ゞ - 名無しさん 2017-05-02 00:42:20
  • みんなメモ代わりに好きに更新してくれてもいいのよ。 - 名無しさん 2017-05-03 12:56:30
  • R.I.N.G.の検証始めました。http://ch.nicovideo.jp/makara/blomaga/ar1253164 - まから 2017-05-11 21:59:36
  • Wikiってなんかログインしにくくってめんどくさい(´・ω・`) - 名無しさん 2017-07-09 14:12:35
  • 1.7.10マウントボールが無いです!!! - アース 2017-07-17 22:46:50
  • 0.7.3からコマンド/jbshowconnection追加 - 名無しさん 2017-08-15 18:31:05
  • JointBlock用の交流ディスコード作ったのでお気軽に参加どうぞ。https://discord.gg/8c9sgsr - あしゅとん (2017-08-27 13:35:06)
  • comfigリストを整理したけど結構わかんないのある。コマンドもちょこっと追加したけどたぶん抜けてるのある。 - まから 2017-09-12 12:36:17
  • チュートリアルの方もモーションとか少し加筆した。画像の貼り方がわからぬ - 名無しさん 2017-09-12 12:37:06
  • 用語集をつくってみた。まだ本文は入れてない。 やってて解らなかった単語があればここに貝といてくれれば解説する - まから 2017-10-05 13:25:16
名前:



|新しいページ|検索|ページ一覧|RSS|@ウィキご利用ガイド | 管理者にお問合せ
|ログイン|
Wikiのガイドライン
必ずお読みください!

基本事項



プラットフォーム


アイテムデータ



生物



ゲームデータ



ワールド



Tips



ADVANCE



マルチプレイ



リンク




Wiki運営



その他



カウンタ


合計
-

トップページ
今日 : -
昨日 : -

更新履歴


取得中です。
※「ログ」「アーカイブ」「コメント」のページはここの履歴に表示されませんので、「更新履歴」および「コメント」から参照してください

人気ページ