ブログタイトル_カスタムモデ

自作モデル(四角のブロックじゃないモデル)を作って 家具[かぐ]とかを追加[ついか]するチュートリアルです。
やってみたい人多いんではないでしょうか![わたし]はずっとやってみたかったんです。

IntelliJIDEAをつかって作っていきます。
Forgeのバージョンは1.8.9です。
3Dデータの作成[さくせい]は、BDcraftCubikLITEを使[つか]います。

先生じゃなくて画像[がぞう]作ってる人が書いてるので
プログラミングはあんまり…な[かん]じですが、がんばります!

環境構築がまだのかたはこちら
デザイナがマイクラのmodをつくる-環境構築編-

mod初心者のかたは、このへんから試してみて下さい
デザイナがマイクラのmodをつくる -たべもの追加編- 

IntelliJ IDEAでマイクラModding-自作モデル追加編-

3Dモデルを作るためのソフトをダウンロード

もし、すでに「MCreator」というソフトを[]っているなら
MCreatorをインストールしたフォルダの中の 「external」→「cubik-lite」のフォルダに入っている 「BDcraftCubikLITE.exe」を起動[きどう]します。

もしくは、「MCreator」を起動[きどう]して 画面上[がめんじょう]のメニューの「TOOLS」のなかから
「LUNCHBDCRAFTCUBIKLITE」という アイコンをクリックすることでも起動[きどう]できます。

WS0246

もっていないひとは、
まず、Cubik LITEのページにアクセスし、ページの中ほどにある
ダウンロードボタンをクリックします。
WS0243

ダウンロードボタンをクリックするとこんな画面がひらきます。
WS0244
ここではまだクリックせずに、0secondsになるまで5[びょう]くらい[]ちましょう。

WS0245
SKIPADのアイコンがでたら、クリックします。
するとBDcraftCubikLITEのダウンロードがはじまります。
BDcraftCubikLITE.zipをどこでもいいので解凍[かいとう]して下さい。
フォルダのなかには、インストーラ―は入っておらず
「BDcraftCubikLITE.exe」が入っていますので、これをクリックして起動[きどう]しましょう。


BDcraft Cubik LITEでイスをつくる

CubikLITEを起動[きどう]したらイスのモデルをつくってみましょう!
べつにイスじゃなくてもいいですが。

起動[きどう]するとこんな画面[がめん]です。
WS0247

あとでつかうので「F6」ボタンを[]して「Elementmanager」を
「F7」ボタンを[]して「MaterialManager」を[ひら]いておきましょう。
(上メニューのToolsから[ひら]くこともできます)
WS0248
このウィンドウはテクスチャの設定[せってい]などをするものと
[かく]エレメント(キューブのこと)選択[せんたく]設定[せってい]をするときにつかいます。

WS0249

それでは、さっそく作ってみましょう。
画面左上のキューブのマークをクリックします。
すると画面に色のついた■が登場します。
3つあるようにみえますが、それぞれ上からみた図・南から見た図・西から見た図です。
右下の3D視点[してん]のモデルは、ドラッグでグリグリ動かすことができます。

WS0250
キューブは、マウスでドラッグすることができますので
面を作りたい場所にキューブを移動[いどう]させます。

WS0253
さらに、キューブを[]いた場所から「右クリック」を[]しながら ドラッグすると、
キューブを[]ばすことができます。

WS0254
さらに、西側[にしがわ]視点[してん]からキューブを下向きに[]ばすと
このようにイスの[]もたれができました。

WS0257
同じ手順[てじゅん]で、座面[ざめん]や足なども作っていきます。
手前のキューブがジャマなときは、「Hide」ボタンで[かく]すことができます。
[かく]したキューブは「Show」ボタンで再表示[さいひょうじ]することができます。

WS0258
つぎに、テクスチャを設定[せってい]しましょう。
マテリアルマネージャの「body」という行をダブルクリックします。

WS0259
テクスチャをえらびます。
これはassets以下[いか]のフォルダ構造[こうぞう]でないと、うまくテクスチャが[][]めない
ようになっているので あらかじめ、
「resources\assets\logiclab\textures\blocks\」のなかに テクスチャを入れておきましょう。
(logiclabの部分はあなたのMODの名前ですね)

今回使ったテクスチャはこちらです。
wooden_chair


テクスチャを[][]んでも、真っ白なままのときは
WS0260
メニューの「Tools」のなかから「Prefernces(設定)」をひらいて

WS0261
Use advanced 3D Preview with textures にチェックを入れます。
すると、3D視点[してん]のモデルにテクスチャが[]られた状態[じょうたい]になります。

WS0262
テクスチャの設定[せってい]までおわったら メニューの「File」から「Export」をえらびます。
ファイルの保存[ほぞん]では、[]きな名前(今回はwooden_chair.jsonにしました)をつけます。
保存[ほぞん]の場所は「resources\assets\logiclab\models\block\」の中です。

これで3Dモデルは完成[かんせい]です。 (テクスチャのマッピングとかも色々いじれるんですが省略[しょうりゃく]します)
このソフトは無料版[むりょうばん]だとキューブ6[]まで・テクスチャ1[まい]までの制限[せいげん]がありますが
有料版[ゆうりょうばん]だと、たくさんキューブをつかえて、1人称[にんしょう]視点[してん]とか頭にかぶったときとか
カベにかかっている時とか 色々設定[せってい]できるみたいです。


マイクラのワールドにイスを追加する

では「BlockWoodenChair.java」から追加[ついか]していきましょう。
(javaファイルの追加[ついか]方法[ほうほう]がわからない人は 以前[いぜん]の記事参照[さんしょう]してください)


とりあえず、何も考えずにブロックと同じ要領[ようりょう]でこんな感じにしてみました。
メインのjavaにもwoodenchairを追加[ついか]します。


こんな感じです。ブロックとまったくおなじですね。

つづいてリソースも追加[ついか]していきます。
リソースの[]場所[ばしょ]はこんなかんじです。
WS0264

blockstateのjsonはこんなかんじ

modelsのblockのjsonには
先ほど作った3Dモデルが入っていると思います。WS0265
★テクスチャの場所が「bloks/wooden_chair」になっているので これをちゃんと「logiclab:blocks.wooden_chair」に直しておきましょう。
テクスチャは、3Dモデルを作るときにフォルダに入れているのでそのままでOKです。

いちど「Run」して確認[かくにん]してみましょう。
WS0266
はい! でましたけど、地面がなんか[]けてますね・・・・


地面が透明になるのをなおすには?

というわけで、親クラスのblock.classをみてみましょう。
public boolean isFullCube() {
return true;
}
これが[あや]しいです。 フルキューブ(四角のブロック)かどうかを返すようです。

というわけでBlockWoodenChairクラスのなかに これを追加[ついか]してみましょう。
public boolean isFullCube() {
return false;
}

public boolean isOpaqueCube() {
return false;
}
isOpaqueCube(透明[とうめい]なキューブかどうか?)もついでにfalseにしておきます。

これでもう一度「Run」して確認[かくにん]してみましょう。
WS0268

こんどは地面が透明[とうめい]にならずに、きちんと表示[ひょうじ]されました。
でもどの方角に向けて[]いても、北向きに配置[はいち]されてしまいます。
[]いたときに向いている方角によって、イスの向きも[]えたいですね。


自分の向きにあわせて配置方向をかえるには

向きがあるブロックといえば、かまどとかパンプキンとかですね。
かまどは[まわ]りにあるブロックにあわせて向きを[]えたりしているので
パンプキンのほうがシンプルっぽいです。

パンプキンに「onBlockPlaced」の記述[きじゅつ]があったのでこれを見てみましょう。
public IBlockState onBlockPlaced(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer) {
return this.getDefaultState().withProperty(FACING, placer.getHorizontalFacing().getOpposite());
}
onBlockPlacedは名前からして、ブロックが[]かれたときの処理[しょり]ですね。
getOppositeでプレイヤーの反対方向を取得[しゅとく]しているようです。


で、Facingみたいなプロパティを
「setDefaultState~~withProperty」みたいに追加[ついか]したときは
「getStateFromMeta」とか「getMetaFromState」とか「createBlockState」とかの
記述[きじゅつ]もあわせて必要[ひつよう]になります。
このあたりの説明[せつめい]MinecraftのmoddingWikiに書いてあります。



blockstatesの中にあるjsonも変更[へんこう]します。
かまどの「furnace.json」をそのまま使いました。


東西南北それぞれの向きを設定[せってい]してあげます。

これでRunしてみましょう。
WS0270

じゃん! ちゃんと[]いた方向にあわせて、向きが[]わるようになりましたね!
これで今回の自作モデル追加[ついか][へん]はおしまいです。
つぎになにをするかはまだ考え中ですが また色々[ため]してみたいと思います。