KURUMA
Downloadダウンロード
KurumaMod / Car Pack Guideカーパック作成ガイド / Common共通

Common共通

Blender basics, packing a jar, checking in game, troubleshooting, checklists and glossary.Blender の基本、jar に固めて配る、確かめかた、症状別の直しかた、チェックリスト、用語。

1このページについて

1About this page

車やパーツを足すのに Java は要りません。JSON・モデル・テクスチャ・音だけの jar を作って mods/ に入れます。このページには、何を作る人にも共通の手順をまとめてあります。

You do not need Java to add cars or parts. You build a jar holding only JSON, models, textures and sounds, and drop it in mods/. This page holds the steps everyone needs, whatever they are making.

やりたいことから探す

Find what you want to do

やりたいことどこを読むか
まず見本を動かしてみたい共通の 4 章
Blender を触ったことがない共通の 3 章
自分の車を走らせたい車の 1 章から順に
ライト・透ける窓・映るミラーを付けたい車の 3 章
エンジン音を変えたい車の 7 章
走り(加速・曲がりかた)を決めたい車の 8 章
ホイールを作って換装画面で選べるようにしたいホイールの 1 章・2 章
性能の違うタイヤを作りたいホイールの 3 章
ターボ・ブローオフバルブを作りたいパーツの 1 章
ウイング・バンパーなどの外装パーツを作りたいパーツの 2 章
マフラーを作りたいパーツの 3 章
jar にして配りたい共通の 4 章
うまく動かない共通の 6 章
I want to…Read
See the example running firstCommon, chapter 4
Learn Blender from zeroCommon, chapter 3
Drive my own carCar guide, chapter 1 onwards
Add lights, see-through windows, working mirrorsCar guide, chapter 3
Change the engine soundCar guide, chapter 7
Set how it drives (acceleration, handling)Car guide, chapter 8
Make a wheel players can pick in the parts screenWheel guide, chapters 1 and 2
Make tyres with different gripWheel guide, chapter 3
Make a turbo or blow-off valveParts guide, chapter 1
Make body parts such as wings and bumpersParts guide, chapter 2
Make an exhaustParts guide, chapter 3
Pack it into a jar and share itCommon, chapter 4
Fix something that doesn't workCommon, chapter 6

要るもの

What you need

Blender5.2.0 以降を想定(それより前でも通るはずですが、書き出し画面の項目名が少し違うことがあります)。無料。blender.org。モデルの要らない部品(ターボなど)だけなら不要
テキストエディタJSON を書きます。メモ帳で構いません
MinecraftKurumaMod を入れたもの。確かめながら作ります
絵を描くものテクスチャを貼るときだけ。貼らなくても走ります
BlenderWritten against 5.2.0 (earlier versions should work; a few export labels differ). Free, from blender.org. Not needed for parts without a model (a turbo, say)
Text editorFor the JSON files. Notepad is fine
MinecraftWith KurumaMod installed. You check your work as you go
Paint programOnly for a texture. The car drives without one
最初に安心してよいこと

寸法をぴったり合わせる必要はありません。「このメッシュは何 m で作った」と JSON に書けば、ゲームがその比で大きさを合わせます。

直すたびに Minecraft を再起動する必要もありません。ゲームの中で F3+T を押せば、モデルもテクスチャも読み直されます。

TWO THINGS TO RELAX ABOUT

You do not have to hit exact dimensions. Write "this mesh was built at N metres" in the JSON and the game scales it to fit.

You do not have to restart Minecraft after each edit either. Press F3+T in game and the model and texture reload.

2全体像

2The whole picture

モデルのある車や部品は、5 つの手順で作ります。どの章も、このどれかを詳しくしたものです。

A car or part with a model takes five steps. Every chapter is one of them in detail.

やること

What you do

  1. Blender形を作る。(車の 1〜4 章、ホイールの 1 章、パーツの 2〜3 章)
  2. BlenderOBJ で書き出す。(車の 5 章)
  3. ファイル決まったフォルダへ置く。(車の 6 章)
  4. ファイルJSON に「何 m で作ったか」を書く。(車の 6 章)
  5. ゲームF3+T で読み直して見る。(共通の 5 章)

これで、直すたびに 5 へ戻って、再起動せずに確かめられます。はじめは粗い箱のような車で 1→5 を一周すると、あとは Blender の作業に集中できます。

  1. BlenderModel it. (Car guide, chapters 1–4; Wheel guide, chapter 1; Parts guide, chapters 2–3)
  2. BlenderExport it as OBJ. (Car guide, chapter 5)
  3. FilePut it in the right folder. (Car guide, chapter 6)
  4. FileWrite "how many metres I built it at" into the JSON. (Car guide, chapter 6)
  5. GamePress F3+T and look. (Common, chapter 5)

Each time you fix something, go back to step 5 — no restart. Push a crude box of a car through 1→5 first; after that, the rest is Blender work.

① Blender で 作る 1. Model it in Blender ② OBJ で 書き出す 2. Export as OBJ ③ 決まった場所へ 置く 3. Put it in the right folder ④ JSON に寸法を 書く 4. Write the size into JSON ⑤ ゲームで F3+T 5. Press F3+T in game 直すたびにここへ戻る(再起動は要らない) Come back here on every edit — no restart needed
図 1. 作業の流れ。④ で書くのは「何 m で作ったか」だけです
Fig. 1. The workflow. Step 4 is only ever "how many metres did I build it at".

必要なときだけ

Only when you need it

モデルの要らない部品を作りたい(ターボなど)

ターボ・ブローオフバルブ・タイヤの性能だけを変える部品は、1・2 が要りません。JSON を置いて(3)、ゲームで確かめる(5)だけです(パーツの 1 章)。

Make a part without a model (a turbo, say)

Turbos, blow-off valves and parts that only change performance skip steps 1 and 2. You place the JSON (3) and check it in game (5) (Parts guide, chapter 1).

仕組みを知りたい(assets/ と data/)

パックの中身は 2 つに分かれます。

  • assets/ … 見た目(モデル・テクスチャ・音・表示名)。各プレイヤーのゲームが読む。F3+T で読み直す
  • data/ … 走りと部品の中身(諸元・部品の性能・初期装備)。サーバーが読む。/reload で読み直す

jar 1 つにまとめれば、両方が一緒に読まれます。

How it works (assets/ and data/)

A pack has two halves.

  • assets/ — the looks (models, textures, sounds, display names). Read by each player's game. Reloads with F3+T
  • data/ — driving and part contents (spec, part performance, default parts). Read by the server. Reloads with /reload

Put both in one jar and both are read together.

3Blender はこれだけ覚える

3Just enough Blender

Blender を触ったことがない人向けに、このガイドで使う操作だけを並べます。使える人は 車の 1 章へ。

For readers who have never opened Blender: only the operations this guide uses. If you know Blender, skip to chapter 1 of the Car guide.

覚えること

What to learn

  1. Blender真ん中の広い所(3D ビューポート)で形を作る。車体・窓・ライトのように分けたかたまり 1 つ 1 つを「オブジェクト」と呼ぶ
  2. Blender右上の一覧(アウトライナー)で、オブジェクトの名前を変える。名前をダブルクリックする
  3. Blender単位はメートルのまま使う。床のマス目 1 つが 1m
  4. Blender車の前を −Y、上を +Z に向けて作る。テンキーの 1 で、車を正面から見た向きになる。車の左が +X
  5. Blender位置はワールド原点(赤い線と緑の線が交わる点)に合わせる。オブジェクトを選ぶと出るオレンジの点は気にしない

これで、車の 1 章から先の手順を進められます。

  1. BlenderBuild in the big area in the middle (the 3D viewport). Each separate lump — body, window, light — is an "object"
  2. BlenderRename objects in the list at the top right (the outliner). Double-click the name
  3. BlenderKeep the units in metres. One floor square is 1 m
  4. BlenderBuild with the front of the car towards −Y and up towards +Z. Numpad 1 shows the car from the front. The car's left is +X
  5. BlenderLine things up with the world origin (where the red and green lines cross). Ignore the orange dot that appears on a selected object

You can now follow the steps from chapter 1 of the Car guide.

+Z = 上 +Z = up −Y = 前 −Y = front +X = 車の左 +X = car's left ワールド原点 world origin (+Y = 後ろ、−X = 車の右、−Z = 地面より下) (+Y = rear, −X = car's right, −Z = below ground)
図 2. Blender 標準の向き。エクスポート設定も標準のままでよく、読み替えは MOD 側が行います
Fig. 2. Blender's default orientation. Leave the export settings alone too — the mod does the conversion.
名前で役目が決まる

この MOD では、オブジェクトやマテリアルの名前がゲームでの役目を決めます。light_head はヘッドライトとして点き、glass で始まる名前は透けます。名前は決まりどおりに付けてください(車の 3 章)。

NAMES DECIDE WHAT THINGS DO

In this mod, object and material names decide what something does in game. light_head lights up as a headlight; names starting with glass turn see-through. Name things exactly as the rules say (chapter 3 of the Car guide).

必要なときだけ

Only when you need it

半分だけ作って左右対称にしたい(ミラーモディファイア)

半分を作って、ミラーモディファイアで反対側を作ります。書き出すときに自動で適用されるので、「適用」を押す必要はありません。

ただし、後ろが映る左右のドアミラーだけは別々のオブジェクトにします。モディファイアで 1 つにすると、左右に同じ景色が映ります(車の 3 章のミラー)。

Build half and mirror it (mirror modifier)

Build one half and let a mirror modifier make the other. The exporter applies it for you, so there is no need to press "Apply".

The exception: the two reflecting door mirrors must be separate objects. Merged by the modifier, both show the same view (mirrors, chapter 3 of the Car guide).

スクリプトを実行したい(Scripting タブ)
  1. 上のタブから Scripting を開く
  2. 新規 を押す
  3. スクリプトを貼り付ける
  4. Alt+P(または ▶ 実行)を押す

車の 1 章で、ゲージを置くのに一度だけ使います。

Run a script (the Scripting tab)
  1. Open the Scripting tab at the top
  2. Press New
  3. Paste the script
  4. Press Alt+P (or the ▶ Run button)

You need it once, to place the gauge in chapter 1 of the Car guide.

仕組みを知りたい(なぜオレンジの点は関係ないのか)

書き出されるのは、各頂点のワールド座標です。オブジェクト原点(オレンジの点)は書き出されないので、どこにあっても構いません。ゲームはワールド原点を基準に車を置きます。

Blender の向き(前 −Y・上 +Z)とゲームの向きの読み替えは MOD がやります。書き出し画面の向きの設定は触りません(車の 5 章)。

How it works (why the orange dot does not matter)

The exporter writes each vertex in world coordinates. The object origin (the orange dot) is not written, so it can sit anywhere. The game places the car relative to the world origin.

The mod converts Blender's axes (front −Y, up +Z) to the game's. Leave the axis settings in the export dialog alone (chapter 5 of the Car guide).

4jar に固めて配る

4Pack 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. ファイル見本のフォルダ carpack/example/ をコピーする。例: mypack/
  2. ファイルコピーしたフォルダの中で、中身を 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
  3. ファイルできた mypack.jar を、Minecraft の mods/ フォルダに入れる。
  4. ゲーム起動して、クリエイティブの「KurumaMod」タブを開く。

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

  1. FileCopy the example folder carpack/example/. For example, to mypack/
  2. FileFrom inside the copied 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
  3. FilePut the resulting mypack.jar into Minecraft's mods/ folder.
  4. 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

自分のパックの名前にしたい

kurumamod_example_carpack を、自分のパックの名前(例 mypack)に全部置き換えます。

  1. META-INF/mods.toml と META-INF/neoforge.mods.toml の modId を変える。displayName・description・version も自分のものにする
  2. assets/kurumamod_example_carpack/ と data/kurumamod_example_carpack/ のフォルダ名を modId と同じにする
  3. JSON の中の kurumamod_example_carpack:(モデルのパス)と、lang のキー(car.kurumamod_example_carpack.sample など)も置き換える
  4. MOD 一覧の画像を変えるなら、png を差し替えて logoFile の名前を合わせる
  • modId に使えるのは a-z 0-9 _ だけ(先頭は英字)。- や . を入れると、ゲームが起動時に Invalid modId で落ちる
  • フォルダ名(名前空間)は modId と同じにする。違っても動くが、ほかのパックとぶつかったときにどちらが読まれるか分からない
  • 車種のファイル名と名前の決まりは車の 6 章
Give the pack your own name

Replace every kurumamod_example_carpack with your pack's name (e.g. mypack).

  1. Change modId in META-INF/mods.toml and META-INF/neoforge.mods.toml. Make displayName, description and version your own too
  2. Rename the folders assets/kurumamod_example_carpack/ and data/kurumamod_example_carpack/ to match modId
  3. Replace kurumamod_example_carpack: inside the JSON (model paths) and in the lang keys (car.kurumamod_example_carpack.sample and so on)
  4. For your own mod-list image, swap the png and update logoFile to its name
  • modId may only use a-z 0-9 _ (starting with a letter). A - or . crashes the game at start-up with Invalid modId
  • Make the folder name (the namespace) the same as modId. It works otherwise, but if two packs collide you cannot tell which one wins
  • Car file names and naming rules are in chapter 6 of the Car guide
ほかの人に配りたい・マルチプレイで使いたい
  • マルチプレイでは、サーバーと全員のゲームの両方に入れる。どの車があるかはサーバーが決め、姿は各プレイヤーのゲームが描く
  • 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
見本の中の要らないファイルを消したい

PACK_CREATE_GUIDE.html・CURSEFORGE.md・MODRINTH.md・modeling_tools/・sound_tools/ は、作るための説明書きと道具です。消しても、入れたままでも構いません。

見本は自由に使えます。コピーして自分のパックの土台にしてよく、表示も許諾も要りません。

Remove the files you don't need from the example

PACK_CREATE_GUIDE.html, CURSEFORGE.md, MODRINTH.md, modeling_tools/ and sound_tools/ are documentation and tools for making packs. Delete them or keep them.

The example is free to use. Copy it as the base of your own pack; no credit or permission needed.

うまくいかないとき
  • MOD 一覧に出ない … フォルダごと固めている。フォルダの中で固め直す
  • 起動時に Invalid modId で落ちる … modId に - や . や大文字がある
  • MOD 一覧には出るのに車が増えない … data/<パック>/cars/ に車種の JSON があるか見る。ほかの症状は6 章
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 6

5確認する

5Check it in game

ゲームを開いたまま、直しては読み直して見る、を繰り返します。再起動は要りません。

Keep the game running and repeat: fix, reload, look. No restart needed.

やること

What you do

  1. ゲームクリエイティブの「KurumaMod」タブから車を出して乗る。
  2. Blender直して、同じファイル名で書き出し直す。
  3. ゲーム見た目(assets/)を直したら F3+T を押す。モデル・テクスチャ・vehicles/*.json・部品の見た目・音が読み直される
  4. ゲーム走りや部品の中身(data/)を直したら /reload を打つ。諸元・部品の性能・初期装備が読み直される

これで、直したところがすぐゲームに出ます。下の表で見ていきます。

  1. GameTake a car from the "KurumaMod" creative tab and get in.
  2. BlenderFix it and export again under the same file name.
  3. GameAfter changing the looks (assets/), press F3+T. Models, textures, vehicles/*.json, part looks and sounds reload
  4. GameAfter changing driving or part contents (data/), type /reload. The spec, part performance and default parts reload

Your fix now shows up in game. Use the table below to check it.

見るところ

What to look at

何をどうやって
タイヤの位置と大きさ止まった状態で、フェンダーの中に収まっているか
車高地面に埋まっていないか、浮いていないか
大きさの追従G の調整画面でタイヤ半径を動かす。タイヤは追従し、車体は追従しない(それで正しい)
ライトL でヘッドライト。ブレーキでテール。R に入れてバックランプ
ガラス車内から外が見えるか。濃すぎないか
ミラーH のメニューで入れてから見る(既定は切)
サスブレーキで鼻先が沈むか。車体とタイヤの間隔が変わるか
パーツG →「パーツ」で付け替える。付けたものだけが出て、外すと消えるか
音アイドルからレブまで回して、音程が上がりきるか。うねらないか
WhatHow
Wheel position and sizeParked: do they sit inside the arches?
Ride heightNot sunk into the ground, not floating
ScalingChange the tyre radius in the G tuning screen. The wheels follow; the body does not (that is correct)
LightsL for headlights, brake for the tails, R for the reverse lights
GlassCan you see out from inside? Is it too dark?
MirrorsTurn them on in the H menu first (off by default)
SuspensionDoes the nose dip under braking? Does the body-to-wheel gap change?
PartsSwap them in G → "Parts". Does only the fitted one show, and vanish when removed?
SoundRev from idle to the limit. Does the pitch keep rising? Does it swell?

必要なときだけ

Only when you need it

読み込みのエラーを見たい(ログ)

ゲームのフォルダの logs/latest.log を開いて、車種を・部品・OBJ などで探します。読めなかったファイルと理由が 1 行ずつ残っています。

See loading errors (the log)

Open logs/latest.log in the game folder and search for 車種を, 部品, OBJ and so on. Each file that failed to load is listed with its reason, one line each (the messages are in Japanese).

/reload が打てない

/reload はチート(コマンド)を有効にしたワールドで使えます。使えないときは、ワールドに入り直すと data/ も読み直されます。

/reload does not work

/reload needs a world with cheats (commands) on. Otherwise, leave and re-enter the world; that reloads data/ too.

うまくいかないとき
  • 直したのに変わらない … assets/ と data/ のどちらを直したか確かめる。読み直し方が違う(上の手順 3・4)
  • jar の中を直したのに変わらない … mods/ の jar は起動時にしか読まれない。jar を作り直したら再起動する
  • そのほかの症状は6 章
When it doesn't work
  • You fixed it but nothing changed — check whether you edited assets/ or data/. They reload differently (steps 3 and 4)
  • You changed the jar but nothing changed — jars in mods/ are read only at start-up. Restart after rebuilding the jar
  • Other symptoms: chapter 6

6症状別の直しかた

6Troubleshooting

カーパックは、失敗してもエラー画面を出しません。壊れたファイルは捨てて先へ進むので、症状から探します。理由はたいてい 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。リソースパックで試しているなら、有効にしたか見る(5 章)
舵が切れすぎる/効かない諸元の角度を度で書いている。ラジアンで書く
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 (chapter 5)
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

7チェックリスト

7Checklists

場面ごとに、見落としやすいところを並べます。症状が出てから探すときは6 章へ。

What is easy to miss, by stage. If something is already wrong, go to chapter 6.

書き出す前(Blender)

Before exporting (in Blender)

  • ワールド原点が「地面の高さ・前後輪の中点・左右中央」にある
  • 車の前が −Y を向いている
  • フェンダーがゲージのタイヤに合っている
  • ライトの名前(オブジェクト名かマテリアル名)が light_head / light_tail / light_reverse のどれか。ほかの light_ は無い
  • レンズ面が車体から 1〜2mm 浮いている
  • 窓の名前(オブジェクト名かマテリアル名)が glass で始まる
  • 左右のドアミラーが別のオブジェクトになっている
  • マテリアルの Base Color が白
  • タイヤは別ファイル・左側用 1 つ・原点は車軸・表は +X
  • The world origin is at ground level, midway between the axles, on the centreline
  • The front of the car points along −Y
  • The arches line up with the gauge wheels
  • Light names (object or material) are light_head, light_tail or light_reverse. No other light_ exists
  • Lens faces float 1–2 mm proud of the body
  • Window names (object or material) start with glass
  • The two door mirrors are separate objects
  • Material Base Color is white
  • Wheel: separate file, left side only, origin at the axle, face towards +X

外装パーツ・マフラーを入れたとき(Blender)

If you added body parts or exhausts (in Blender)

  • 部品のオブジェクト名が part_<場所>-<部品名> で、部品名が car_parts/ のファイル名と同じ
  • 付け替える純正の部分も、body から分けて別のオブジェクトにした
  • 付け替え候補の部品を全部表示にしてから選んだ(非表示のものは書き出されない)
  • 部品の中のライトは、その面に light_ のマテリアルを割り当てた
  • Part objects are named part_<slot>-<part>, and the part name matches the file name in car_parts/
  • Stock pieces that can be swapped are split from body into their own objects
  • Every selectable part was unhidden before selecting (hidden objects are not exported)
  • Lights inside a part use a light_ material on those faces

書き出しの画面

In the export dialog

  • Selected Only を入れた(ゲージが混ざらない)
  • Triangulated Mesh を入れていない
  • Forward Axis / Up Axis を触っていない
  • 「マテリアル」の「書き出し」が入っている(既定で入っている)
  • 車体とタイヤを別のファイルに書き出した
  • .mtl も一緒に置いた
  • Selected Only ticked, so the gauge stays out
  • Triangulated Mesh left off
  • Forward Axis / Up Axis untouched
  • "Materials" → "Export" ticked (it is by default)
  • Body and wheel exported to separate files
  • The .mtl kept alongside

ゲームで見る前

Before loading it in game

  • JSON に書いたパスが、実際のファイル名と同じ
  • designWheelBase / designWheelRadius がメッシュの実寸
  • リソースパックで試すなら、ゲームで有効にした
  • 見た目を直したら F3+T、data/ を直したら /reload
  • The paths in the JSON match the actual file names
  • designWheelBase and designWheelRadius are your mesh's real sizes
  • If testing with a resource pack, it is enabled in game
  • F3+T after changing looks, /reload after changing data/

音を付けたとき

If you added sounds

  • ogg・モノラル・継ぎ目の無いループ
  • exhaust_high を sound_tools/make_octave_up.py で作って並べた
  • sounds.json の "name" に拡張子を付けていない
  • vehicles/<car>.json の sounds(マフラーなら部品の見た目の exhaust.sound)が sounds.json の名前を指している
  • Ogg, mono, seamless loops
  • exhaust_high made with sound_tools/make_octave_up.py and put alongside
  • No extension on "name" in sounds.json
  • sounds in vehicles/<car>.json (for an exhaust part, exhaust.sound in its looks JSON) points at names from sounds.json

配る前

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

付録 A. 座標系

Appendix A. Axes

Blender・OBJ ファイル・ゲームで軸の意味が変わりますが、読み替えは MOD 側が済ませています。Blender 標準の向きで作り、エクスポート設定も標準のままにしておけば、この表を意識する必要はありません。

The axes mean different things in Blender, in the OBJ file and in game, but the mod already does the conversion. Model in Blender's default orientation, leave the export settings alone, and you never need this table.

前上車体の左
Blender(作業中)−Y+Z+X
OBJ ファイルの中+Z+Y+X
ゲーム内(JSON の offset など)−Z+Y−X
FrontUpCar's left
Blender (while modelling)−Y+Z+X
Inside the OBJ file+Z+Y+X
In game (JSON offset etc.)−Z+Y−X

vehicles/*.json の offset と seat はゲーム内の向き(+X 右・+Y 上・−Z 前)で書きます。Blender の向きとは前後・左右が逆なので注意してください。

offset and seat in vehicles/*.json use the in-game axes (+X right, +Y up, −Z forward). Note that both the front–back and left–right senses are reversed from Blender's.

UV も上下が逆(OBJ は下が 0・Minecraft は上が 0)ですが、こちらも読み込み時に反転しているので Blender 側で気にする必要はありません。

UVs are flipped vertically too (0 is the bottom in OBJ, the top in Minecraft), but that is also handled on load, so there is nothing to do in Blender.

付録 B. 用語

Appendix B. Glossary

ホイールベース前輪と後輪の距離。既定は 3.12m
トレッド左右輪の距離。既定は 1.80m
シャシー基準面ゲーム内で車の「位置」として扱われる高さ。既定は地面から 0.602m。車体はここから designRideHeight だけ下げて描かれます
フェンダー/タイヤハウスタイヤの上を覆っている部分。ここをゲージのタイヤに合わせます
キャンバー角タイヤの傾き。負で「上が内側」。この MOD では見た目だけで、グリップには効きません
n-gon5 角形以上の面。凹んでいても MOD が読み込み時に正しく割るので、そのまま書き出してよい
UV 展開3D のメッシュに 2D の絵をどう貼るかの対応付け。しなくても走ります
マテリアルBlender 上の材質設定。この MOD が読むのは色(Base Color)と透明度(Alpha)だけです
MTLOBJ と一緒に出るマテリアルのファイル。色とガラスの濃さを運びます
名前空間mypack:models/entity/ae86.obj の mypack の部分。どのパックのファイルかを指します
WheelbaseDistance from the front axle to the rear. 3.12 m by default
TrackDistance between the left and right wheels. 1.80 m by default
Chassis planeThe height the game treats as the car's position — 0.602 m above the ground by default. The body is drawn designRideHeight below it
Wheel archThe bodywork over the tyre. Line it up with the gauge wheels
CamberHow far the wheel leans. Negative tips the top inward. Cosmetic only in this mod; it does not affect grip
n-gonA face with five or more vertices. The mod splits them correctly on load, concave or not, so export them as they are
UV unwrapThe mapping that decides how a 2D image sits on a 3D mesh. Optional — the car drives without it
MaterialBlender's surface settings. This mod reads only the Base Color and the Alpha
MTLThe material file written next to the OBJ. It carries the colours and the glass opacity
NamespaceThe mypack part of mypack:models/entity/ae86.obj — which pack the file comes from

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.