KURUMA
Downloadダウンロード
KurumaMod / Car Pack Guideカーパック作成ガイド / Shipping配布

Ship it配布する

Pack your car pack folder into a jar and share it, and fix what does not work.カーパックフォルダを jar に固めて配る。うまく動かないときの直しかた。

1jar に固めて配る

1Pack it into a jar and ship it

カーパックは、コードを持たない MOD の jar です。フォルダの中身を zip で固めて .jar にし、mods/ に入れます。

A car pack is a mod jar with no code in it. You zip the folder's contents, name it .jar and put it in mods/.

最小のパックを作る

Make a minimal pack

  1. ファイル自分のカーパックフォルダを用意する。 → 準備の 1 章
  2. ファイル配布しないファイルを消す。見本から残っているもの:
    • modeling_tools/ と sound_tools/(作るための道具)
    • 見本のホイール部品:assets/mypack/car_parts/ と data/mypack/car_parts/ の deep_dish.json・sample_wheel.json、models/entity/wheel-sample.obj・.mtl、textures/entity/wheel-sample.png、lang の part.mypack.deep_dish・part.mypack.sample_wheel の行
    • 見本の車を使わないなら:data/mypack/cars/sample.json、assets/mypack/vehicles/sample.json、models/entity/sample.obj・.mtl、textures/entity/sample.png、lang の car.mypack.sample の行
    • いちばん上に PACK_CREATE_GUIDE.html があれば、それも(古い見本に入っている説明書き)
  3. ファイルカーパックフォルダの中で、中身を jar に固める。どちらか 1 つ:
    cd mypack
    jar --create --file ../mypack.jar .     # JDK があるとき
    zip -r ../mypack.jar .                  # zip があるとき
    # Windows の PowerShell(JDK が無いとき)
    cd mypack
    Compress-Archive -Path * -DestinationPath ..\mypack.zip
    Rename-Item ..\mypack.zip mypack.jar
  4. ファイルできた mypack.jar を、Minecraft の mods/ フォルダに入れる。
  5. ゲーム起動して、クリエイティブの「KurumaMod」タブを開く。

これで、タブに「サンプルカー」が並びます。この jar を土台に、中身を自分の車やパーツに置き換えていきます。

  1. FileSet up your own car pack folder. → chapter 1 of Setup
  2. FileDelete the files you won't ship. Left over from the example:
    • modeling_tools/ and sound_tools/ (tools for making packs)
    • The example wheel parts: deep_dish.json and sample_wheel.json in assets/mypack/car_parts/ and data/mypack/car_parts/, models/entity/wheel-sample.obj and .mtl, textures/entity/wheel-sample.png, and the part.mypack.deep_dish and part.mypack.sample_wheel lines in lang
    • If you don't use the example car: data/mypack/cars/sample.json, assets/mypack/vehicles/sample.json, models/entity/sample.obj and .mtl, textures/entity/sample.png, and the car.mypack.sample line in lang
    • PACK_CREATE_GUIDE.html at the top, if there is one (the guide shipped in older examples)
  3. FileFrom inside your car pack folder, pack its contents into a jar. Use one of these:
    cd mypack
    jar --create --file ../mypack.jar .     # if you have a JDK
    zip -r ../mypack.jar .                  # if you have zip
    # Windows PowerShell (without a JDK)
    cd mypack
    Compress-Archive -Path * -DestinationPath ..\mypack.zip
    Rename-Item ..\mypack.zip mypack.jar
  4. FilePut the resulting mypack.jar into Minecraft's mods/ folder.
  5. GameStart the game and open the "KurumaMod" creative tab.

The "Sample Car" is now in the tab. Use this jar as your base and replace its contents with your own cars and parts.

META-INF/ と pack.mcmeta は jar のいちばん上に

フォルダごと固めると一段深くなり、mods/ に入れても何も起きません。必ずフォルダの中で固めます。

META-INF/ AND pack.mcmeta AT THE TOP OF THE JAR

Zipping the folder itself buries them one level down, and nothing happens. Always pack from inside the folder.

必要なときだけ

Only when you need it

ほかの人に配りたい・マルチプレイで使いたい
  • マルチプレイでは、サーバーと全員のゲームの両方に入れる。どの車があるかはサーバーが決め、姿は各プレイヤーのゲームが描く
  • jar 1 つのまま配る。リソースパックとデータパックに分けると、片方だけ入れた人には「見えるのに走らない」車になる
  • 見本の mods.toml と neoforge.mods.toml を両方残しておけば、同じ jar が Forge 1.20.1 と NeoForge 1.21.1 の両方で読まれる
  • CURSEFORGE.md と MODRINTH.md は、配布ページの説明文のひな形に使える
  • カーパックを外しても、ワールドは壊れない。知らない車は既定の車として走り、入れ直せば元に戻る
Share it, or use it in multiplayer
  • In multiplayer, install it on the server and on every player's game. The server decides which cars exist; each player's game draws them
  • Ship it as one jar. Split into a resource pack and a data pack, anyone who installs only one gets a car that shows up but will not drive
  • Keep both mods.toml and neoforge.mods.toml from the example, and the same jar loads on Forge 1.20.1 and NeoForge 1.21.1
  • CURSEFORGE.md and MODRINTH.md work as templates for your download page
  • Removing a car pack does not break a world. Unknown cars drive as the default car, and putting the pack back restores them
うまくいかないとき
  • MOD 一覧に出ない … フォルダごと固めている。フォルダの中で固め直す
  • 起動時に Invalid modId で落ちる … modId に - や . や大文字がある
  • MOD 一覧には出るのに車が増えない … data/<パック>/cars/ に車種の JSON があるか見る。ほかの症状は3 章
When it doesn't work
  • Not in the mod list — you zipped the folder itself. Pack again from inside it
  • The game crashes at start-up with Invalid modId — modId has a -, a . or an uppercase letter
  • In the mod list, but no cars added — check there is a car JSON in data/<pack>/cars/. Other symptoms: chapter 3

2チェックリスト

2Checklist

見落としやすいところを並べます。症状が出てから探すときは3 章へ。

What is easy to miss. If something is already wrong, go to chapter 3.

配る前

Before you ship

  • modId が a-z 0-9 _ だけで、名前空間(フォルダ名)と同じ
  • 諸元・見た目・lang のファイル名と翻訳キーが車種 id と揃っている
  • 部品の表示名を part.<パック>.<部品名> で lang に書いた
  • default_parts を values の中ではなく、いちばん外側に書いた
  • 諸元の角度をラジアンで書いた(ゲーム内で書き出したなら問題ない)
  • META-INF/ と pack.mcmeta が jar のいちばん上にある
  • マルチプレイなら、サーバーにも入れた
  • modId uses only a-z 0-9 _ and matches the namespace (folder name)
  • Spec, looks and lang file names and translation keys all match the car id
  • Part display names are in lang as part.<pack>.<part>
  • default_parts is at the top level, not inside values
  • Spec angles are in radians (fine if you exported from in game)
  • META-INF/ and pack.mcmeta sit at the top of the jar
  • For multiplayer, installed on the server too

3症状別の直しかた

3Troubleshooting

カーパックは、失敗してもエラー画面を出しません。壊れたファイルは捨てて先へ進むので、症状から探します。理由はたいてい logs/latest.log に 1 行残っています。

Car packs fail without an error screen. A broken file is dropped and loading carries on, so you work from the symptom. The reason is usually one line in logs/latest.log.

読み込み・名前

Loading and names

症状直しかた
MOD 一覧に出ないフォルダごと固めている。META-INF/mods.toml(NeoForge は neoforge.mods.toml)を jar のいちばん上に
起動時に Invalid modId で落ちるmodId を a-z 0-9 _ だけにする
車が 1 台も増えないdata/<パック>/cars/*.json を置く。ログの 車種を N 件読み込みました を見る
その 1 台だけ増えないその JSON が壊れている。理由はログに
表示名が ae86 のように出るlang のキーを car.<パック>.<車> にする
走るのに姿が既定の車のままvehicles/ の JSON のファイル名とパス、名前空間(mypack:)を車種 id に揃える
直したのに何も変わらない見た目は F3+T、data/ は /reload。リソースパックで試しているなら、有効にしたか見る
舵が切れすぎる/効かない諸元の角度を度で書いている。ラジアンで書く
SymptomFix
Not in the mod listYou zipped the folder itself. META-INF/mods.toml (NeoForge: neoforge.mods.toml) must be at the top of the jar
Crashes at start-up with Invalid modIdUse only a-z 0-9 _ in modId
No cars added at allAdd data/<pack>/cars/*.json. Check the 車種を N 件読み込みました line in the log
Only that one car is missingThat JSON is broken. The reason is in the log
The name shows as ae86Make the lang key car.<pack>.<car>
It drives, but looks like the built-in carMatch the file name and path in vehicles/ and the namespace (mypack:) to the car id
You fixed it but nothing changedLooks: F3+T. data/: /reload. Testing with a resource pack? Check it is enabled
Steering is wild, or does nothingA spec angle is in degrees. Write it in radians

形と大きさ

Shape and size

症状直しかた
車体だけ大きい/小さいdesignWheelBase をメッシュの実寸にする。微調整は body.scale
車体が地面に埋まる/浮くdesignRideHeight を見る。原点は車体の底ではなく地面の高さに
タイヤが前後にずれるdesignWheelBase を見る。ゲームで前後の荷重配分を動かしたなら、それで正しい(車体は追従しない)
タイヤが大きすぎ/小さすぎdesignWheelRadius をメッシュの実寸にする。部品のホイールなら部品の designRadius
タイヤが横倒し/転がりかたが変回転軸を X に。原点を車軸の中心に
右のタイヤだけ内側を向く左側用として作る。表を +X へ
前後が逆/左右が鏡像書き出しの Forward Axis を既定に戻す
面がねじれる/抜ける大きく曲がった面か、辺が交差した面がある。その面だけ Blender で割る
ゲージが車と一緒に書き出される描かれないので害はない。気になるなら書き出しで Selected Only を入れる
SymptomFix
Body too big / too smallSet designWheelBase to your mesh's real size. Fine-tune with body.scale
Body sunk into or floating above the groundCheck designRideHeight. The origin belongs at ground level, not the underside of the body
Wheels sit too far forward or backCheck designWheelBase. If you moved the weight distribution in game, this is correct (the body does not follow)
Wheels too big / too smallSet designWheelRadius to your mesh's real size. For a wheel part, its designRadius
Wheels lie on their side / roll oddlyMake X the spin axis. Put the origin at the axle centre
Only the right wheels face inwardBuild it as the left wheel, face towards +X
Front and back swapped / mirroredPut Forward Axis in the exporter back to the default
Faces look twisted or missingA face is badly bent or its edges cross. Split just that face in Blender
The gauge is exported with the carHarmless; it is never drawn. Tick Selected Only on export if it bothers you

色・ガラス・ライト・ミラー

Colour, glass, lights, mirrors

症状直しかた
テクスチャが暗いマテリアルの Base Color を白に(既定の 0.8 グレーのまま)
全体が真っ白.mtl が無いか、マテリアルが無い。形が正しければ問題ない
窓が透けないオブジェクト名かマテリアル名を glass で始める。.mtl を一緒に置く
マテリアルで割り当てたのに光らない/透けない書き出しの「マテリアル」→「書き出し」を入れる。名前を light_・glass・mirror_ で始める
ライトなのに透ける(役目が思ったのと違う)オブジェクト名よりマテリアル名が優先される。マテリアル名を直す。ログに …を優先します と出る
ライトを足したところが穴になるlight_ で始まる名前は light_head・light_tail・light_reverse の 3 つだけ。オブジェクト名もマテリアル名も
ミラーが映らないH で入れる。描画設定が「最高(Fabulous)」のときと、シェーダーパックを使っているときは映らない
部品の中のミラーが映らない部品の中の鏡は映らない(ふつうの面になる)。鏡は車体側に作る
左右のミラーに同じ景色が映るミラーモディファイアで 1 つにしている。左右を別のオブジェクトに
ミラーが地面ばかり映す板の角度は関係ない。鏡の位置を見る(車体の中心から 0.35m 以内はルームミラーになる)
車内が暗い車体の裏面が見えている。それで正しい
SymptomFix
Texture looks darkSet the material Base Color to white (it is still the default 0.8 grey)
Everything is whiteNo .mtl, or no material. Harmless if the shape is right
Windows are not see-throughStart the object or material name with glass. Keep the .mtl alongside
A material doesn't light up / go see-throughTick "Materials" → "Export" in the exporter. Start the name with light_, glass or mirror_
A light turns see-through (the wrong role)The material name wins over the object name. Fix the material name. The log notes it
A hole where you added a lightOnly three light_ names exist: light_head, light_tail, light_reverse — for objects and materials alike
Mirrors show nothingTurn them on with H. They do not work on the "Fabulous" graphics setting or with a shader pack
A mirror inside a part shows nothingMirrors inside parts do not reflect (they draw as plain faces). Put mirrors on the body
Both door mirrors show the same viewThey are one object via a mirror modifier. Make them separate objects
A mirror only shows the groundThe modelled angle does not matter. Check its position (within 0.35 m of the centreline it counts as the rear-view mirror)
The cabin is darkYou are seeing the back of the body faces. That is correct

パーツ

Parts

症状直しかた
換装画面に外装パーツ・マフラーのタブが出ないOBJ に part_ のオブジェクトが入っていない。非表示のまま書き出していないか、名前が part_<場所>-<部品名> か見る(パーツの 2 章)
タブはあるのに部品が並ばないdata/<パック>/car_parts/ に部品の JSON を置き、slot を書く。オブジェクト名の部品名をファイル名に揃える。cars にその車を入れる
付け替えても純正の部分が残る純正の部分が body と一体になっている。別のオブジェクトにして部品にする
初期装備を書いたら、その車ごと増えなくなったdefault_parts を values の中に書いている。values と同じ、いちばん外側に書く
初期装備が付かない場所の名前か部品の id が違う。場所の名前の間違いはログに出る
初期装備を外せない(「なし」が無い)"removable": false になっている
「ブローオフ」のタブが出ない先にターボを付ける
ホイールが換装画面に出ないdata/<パック>/car_parts/ に置き、slot を書く。cars にその車を入れる
ホイールを選んでも見た目が変わらないassets/<パック>/car_parts/ のファイル名を、data/ 側と同じにする
SymptomFix
No tab for body parts or exhausts in the parts screenThe OBJ has no part_ object. Check it was not hidden when you exported, and that it is named part_<slot>-<part> (Parts guide, chapter 2)
The tab is there but the part is not listedPut the part JSON in data/<pack>/car_parts/ with a slot. Match the part name in the object name to the file name. Include the car in cars
The stock piece stays whatever is fittedIt is merged into body. Make it a separate object and a part
After adding default parts, the whole car disappeareddefault_parts is inside values. Move it to the top level, next to values
A default part is not fittedThe slot name or the part id is wrong. A wrong slot name is logged
A default part can't be removed (no "None")It has "removable": false
No "Blow-off" tabFit a turbo first
A wheel is missing from the parts screenPut it in data/<pack>/car_parts/ with a slot. Include the car in cars
Picking a wheel changes nothingGive the file in assets/<pack>/car_parts/ the same name as the one in data/

音

Sound

症状直しかた
差し替えた音が鳴らず、いつもの音のままsounds の値を sounds.json の名前に揃える。ログに 指定されたサウンドイベントが sounds.json にありません と出る
音がまったく鳴らないogg にする(mp3・wav は鳴らない)。sounds.json の "name" に拡張子を付けない
どこにいても同じ大きさで聞こえるogg をモノラルにする
レブ付近で音程が上がりきらないexhaust_high を置く(車の 7 章)
エンジン音が周期的にうねる素材の音量を一定に均してから書き出す
SymptomFix
Your sound doesn't play; it is the usual oneMatch the value in sounds to a name in sounds.json. The log says 指定されたサウンドイベントが sounds.json にありません
No sound at allUse ogg (mp3 and wav do not play). No extension on "name" in sounds.json
Equally loud everywhereMake the ogg mono
The pitch stops rising near the redlineAdd exhaust_high (Car guide, chapter 7)
The engine swells periodicallyEven out the level in the file before exporting

KurumaMod — 諸元の全項目は車の付録 A。ゲージスクリプトは modeling_tools/blender_gauge.py と modeling_tools/blender_wheel_gauge.py。

KurumaMod — every spec key is in Appendix A of the Car guide. The gauge scripts are modeling_tools/blender_gauge.py and modeling_tools/blender_wheel_gauge.py.