MOD製作チュートリアル > カスタムモデルつきブロックの追加

特殊な形のブロックを追加する。
今回は、アルミ製の金床を追加する。
(……としたいのだが、金床のGUIに関しては、実装していない。悪しからず。)

この内容はとても難解なものを含んでいるうえ、汎用性に乏しい。
そのため、更に汎用性の高いものを作る場合は、net.minecraft.client.rendererのRenderBlocksを参照。

AluminiumMod

AluminiumMod.java

+ 長いので囲みます

AnvilAluminium.java

+ 長いので囲みます

RenderAnvilAluminium.java

+ 長いので囲みます

解説

RenderAnvilAluminium

この中では、インベントリ内でのレンダリングが一番難しいはずである。
もし大変ならば、shouldRender3DInInventoryをfalseにすればインベントリにはテクスチャのみが表示されるため、作業が楽になる。

コメント

この項目に関する質問などをどうぞ。
  • ページ左のサイト内リンクからのリンクが間違っていると思います - 名無しさん 2015-07-08 23:19:57
    • ご指摘ありがとうございます。修正しました。 - 赤砂蛇凪浜 2015-07-09 09:55:44
  • 赤砂蛇凪浜様(そうでしょうか)、おはようございます - Dao_Za 2016-04-01 10:07:32
  • 赤砂蛇凪浜様(そうでしょうか)、おはようございます!中国のファンです。昨日夜このサイトを拝見いたしまして、即刻ファンになります~一つご質問がございますが、どうやて、ブロックのbnound大きさを設置しますでしょうか。AnvilAluminium.javaにsetBoundなどを高さ3.0のブロックに設置しましたが、上から踏んた時、画面が痙攣のようになりましたwwww。ほかのmodを読んでいましたが、onEntityCollidedWithBlockという方法でしょうか。 - Dao_Za 2016-04-01 10:12:18
    • setBlockBoundsの引数で、ブロックの大きさを設定することができます。
      また、getCollisionBoundingBoxFromPoolをオーバーライドすると衝突判定だけを設定することができます。
      衝突判定は、Yに2.0Fより大きい値を設定するとうまく反映できず、画面が荒ぶるようです。
      onEntityCollidedWithBlockは、Entityがブロックに触れているときの処理です。 - 赤砂蛇凪浜 2016-04-01 14:57:54
  • ありがとうございます。あの、手持ち時の3D形をどうやって設置しますか。現在椅子の形を作りたく、RenderAluminumファイルでのrenderInventoryBlockで設置して、どうか真ん中から広げて、例えば0.2F,0.3F,0.4Fで、0.2X0.4の柱になってしまいます。(あるいは最後のrenderAlumiAnvilのところで設置?ほかのMOD内容を見て、renderAlumiAnvilのところはみんなほぼお同じcodeですが。) - Dao_Za 2016-04-02 00:32:33
  • こんにちは。もう一点ですが、放置するときに椅子の向き方向の調整案例がございますでしょうか。 - Dao_Za 2016-04-02 12:05:08
    • 上記二つの質問ですが、いまいち意図がつかめませんでした。
      (「0.2F,0.3F,0.4F」とはどこの数値でしょうか?中国の方ということで、致し方ない部分もあるかもしれませんが。)
      私もあまり得意な分野ではないので、的確な返答ができないかもしれません。申し訳ありません。 - 赤砂蛇凪浜 2016-04-04 07:52:30
  • 説明不足でした申し訳ございませんでした。0.2とかは仮説の数字で無視すればOKです~あの、上の計算式で三つ数字の意味を知りたいですが:「f = this.renderAlumiAnvil(block, renderer, metadata, f, 0.75F, 0.25F, 0.75F ,false);」の中の0.75、0.25、0.75の機能はそれぞれなんでしょうかね? - Dao_Za 2016-04-05 18:49:32
    • renderAlumiAnvilは、金床のレンダリングを行うメソッドです。sides1は始点の高さ、sides2,sides3,sides4はそれぞれ立方体のx,y,z方向の長さです。この三つで立方体の大きさを表せます。 - Tom Kate 2016-04-05 21:04:45
  • こんばんは。プレイヤーの向きによってカスタムモデルの向きを変えるようなブロック(例:フェンスゲート、階段等)はどのようにして追加するのでしょうか。 - modder 2016-05-11 00:07:21
    • 返信遅くなってしまいすみません。
      バニラのフェンスゲートと同様、onBlockPlacedByで設置時のプレイヤーの向きに応じてメタデータを設定し、レンダリング時にメタデータを取得して描画する向きを決めればよいかと思います。 - 赤砂蛇凪浜 2016-05-13 17:58:12
      • ありがとうございます - modder 2016-06-03 22:27:41
名前: