User:Caron/CTTutorial Japanese

From Custom Mario Kart
Jump to navigation Jump to search

英語読める人はこのサイトのチュートリアルを見て作成してください。そっちの方が作成方法が事細かく書かれています。このページは英語読むのめんどくさくて日本語で見たい方用と自分が知識を忘れないため用です。 あくまで、2020年現在での自分なりの作成方法です。だいたい独学で身に着けたものなので、一部時代遅れな事やっていたり、間違ってることも書いていたりします。また文章書くのも苦手なんで、時々日本語がおかしい所もあります。

0~6は基本的な内容、7以降は発展です。

0.必要なもの

ソフトウェア名 役割 説明
モデリングソフト コースの3Dモデル作成 基本的にOBJかFBX、DAEが出力できるのであれば何でも大丈夫です。ほとんどのクリエイターが使っているのはSketchUp3ds MaxBlenderですが、初心者向けとしては一番最初のSketchUpがおすすめです。

SketchUp 非常に扱いやすいので初心者向けです。Green ParkSky BeachSubspace Factoryなどもこのソフトウェアを使用(一部3dsMax利用)して作成しました。モデリングが非常に簡単ですが、インストール直後のSketchUpはObj出力/インポートに非対応なのでプラグインの導入が必要です。また頂点カラーや複数マップチャネルなどにも非対応なので、クオリティの高いCTを作る場合は以下の2つのソフトウェアを使用することをお勧めします。
3dsMax 自分がメインで使用しているソフトウェアです。普通に買うと高価なので、学生版(基本3年無料、商用利用禁止)を利用することをお勧めします。
Blender フリーな上に3dsMaxに劣らない機能を持っているので、SketchUpに慣れたらこちらを使うことをおすすめします。
このほかにも、MayaやCinema4D、ZBrushなどもおすすめです

BrawlCrate BRRESMDL0TEX0SRT0CHR0などの作成・編集 ObjからMDL0はBRRES Editorで作成可能ですが、古いソフトウェアな上に時々バグを引き起こすのでDAEから作成した方がよいです。objからDAEを作る場合は[Autodesk FBX Converter]を使って変換してください。

主にマテリアル、シェーダ、アニメーション等の編集を行います。操作方法は後述します。

CTools SZS内のKMP,KCL,(UIなどで用いられる)BMGTPLなどの編集 こちらも今では使う必要のないソフトウェアですが、マップを作るときにBRRES Editorは現役です。それ以外のszs、bmg、tpl、kclはWiimms SZS Toolsが、kmpは上に上げたソフトウェアの方が上位互換です。SZS Explorerは日本語OSでは動きません。
KMP CloudLorenzi's KMP Editorなど KMPの編集 コースのラップ判定、CPU/キラーの動作、カメラ、オブジェクトの配置などはこのソフトで行います。KMP CloudはExcel風に編集できますが、z軸(プログラム上ではy軸)に関しては自分で図っておく必要があります(ただし、Magic Yを用いて)。Lorenzi's KMP Modifierは3DでKMPの編集が可能で、CPUやアイテムなどのルート設定が容易なので、基本的にこのソフトウェアでだいたいのことは可能です。ただし、カメラ設置やパス優先度、AREAを用いるKMPのオブジェクトやKCLの一部などの詳細設定などにおいては、KMPCloudで行う必要があるため、その場その場で使い分けできると理想的です。

Extended presence flagsは上記ソフトウェアでは編集できません(詳細は12を参照)。
SZS Modifier SZS,KMP,KCL,obj、テクスチャ等の編集 今現在ではほとんど使われないソフトウェアです。Wiimms SZS ToolsやKMP Cloudなどができる前までは必須なソフトウェアでしたが、現在ではこの両者がSZS Modifierよりも幅広い編集が可能ですので、インストールする必要はあまりありません(尚、Windows10のOSではNetFrameworkのバージョンの関係上、管理者内の設定を一部変更しないとインストールができません)。
Wiimms SZS Tools SZSの展開・作成
KCLKMPの基本操作
LE-CODEに関連したファイルの編集
など
SZSファイルの基本的操作、およびLE-CODE関連(LEXExtended presence flagsなど)の編集には欠かせないソフトウェアです。インストールはこのサイトに行ってダウンロードしてください。

コマンドオプションが非常に多いので、初めて使うときは以下のコマンドを覚えておけば十分です。
  • 「wszst x 名前.szs」…szsファイルを展開します。展開後のフォルダは「名前.d」です
  • 「wszst c フォルダ名」…フォルダからszsファイルを作成します。ちなみにコマンドの最後に+oを加えることでで上書き無視になります。
    これ以外はサイトのコマンド一覧を見てください。
バイナリエディタ 上記ソフトウェアで対応していないファイルの編集など 普通にCT作る上では必要ありません。上級者向けとして、Breffのアニメーションファイルや、後述するIndirectTextureのバグ修正などで使います。

1.モデリング

最近はBlenderがCT作成として主流です。初めはSketchupから、慣れてきたらBlenderで作るといいでしょう。3dsMaxは難しすぎる(らしい…?)のでお勧めはしません。

SketchUp

ヴァレミさんが日本語のチュートリアルを作成されていますので、是非参考にしてください。

CTのつくりかた

SketchUpではポリゴンを作成したときに面の色が白と灰色とで分かれていると思いますが、必ずコースの表面は白色に統一しておいてください。表面を灰色の方にするとコースが見えなくなります(コースだけならmdl0/MaterialのCullingを「Cull None」にすることで両面表示にできますが、KCLは対応していません)。テクスチャが同じポリゴンに関しては対象のポリゴンを複数選択して右クリックでグループ化しておくことをおすすめします。

3ds Max

あまりにも面倒くさいので割愛します。ただし、タイムラプスとして3dsMaxを用いてCTを制作されている動画はあるので、スロー再生にして参考にするのもいいかもしれません。

Custom Track Creation Time Lapse: Halogen Highway (BigOto)
Custom Track Creation Time-lapse: Molten Mountainway (KHacker35000vr)

そのほか、詳細については公式サイトのチュートリアルを参考にしてください。

Blender

日本語はありませんが、最近はBlenderで作られているコースが多いのでその分チュートリアルは豊富です。こちらのページか、Youtube上で海外のクリエイターが作成したチュートリアルを参考にしてください。

Let's Make A Custom Track! Unnamed Town (Bladestorm227)
Let's Make A Mario Kart Wii Custom Track (KevinVG207)


私からは最低限の事だけ述べるとします。次の2つはどのソフトウェアで作るにしても同じです。
・道が細すぎて走れなくなることを避けるために、道幅は最低でも2064インチ以上かつZ軸は0より十分大きく、またVS等のスタートにおいてプレイヤーがいきなり落下しないためにもスタートラインから最後尾までの長さは5504インチ以上にしてください。
ポリゴンは三角形の数がなるべく3万~4万以下に収めるようにしてください。テクスチャが低解像度なものを使用、またはほとんど使用しない場合は10万くらいまで可能(Neon Dimensionは7.7万+1.9万=8.7万ポリゴンですが、テクスチャはほとんど使用していない)だとは思いますが、それでもスローモーションバグが起こる可能性は高いです。尚、どのくら三角形の数があるかを確認する場合はBrawlBoxでMDL0をクリックしたときに表示されるNumFaceの値を見てください[1]

2.Brresの作成

作成したモデルはSketchUpではobjで、3ds MaxはDAE、BlenderはFBXでエクスポートします。BrawlCrateはDAEかPMD(MikuMikuDanceのモデルファイル)のみしかMDL0の作成には対応していないので、objとFBXについては必要なソフトウェアの所のBrawlCrateで述べたFBX Converterを使ってDAEに変換してください。基本的にbrres作成までの流れは次の通りです。

2.1 モデルをエクスポート
2.2 BrawlCrateでFile/New/Archive/BRRES Resource Packより空のBrresを作成
2.3 NewTreeを右クリック->Import/ModelよりDAEを選択
2.4 Import Settings/Modelにおいて、Model Type->Stage、Model Version->11に変更(頂点カラーを付けている場合、Color NodesのAdd ColorsはTrue、Default Colorは(128,128,128,255)にする)してインポート
2.5 モデルに貼っていたテクスチャをNewTreeを右クリック->Import/Textureより取り込んでいく(注意:テクスチャサイズは必ず2n(n≤10)ピクセルであること[2])(※)。
2.6 ctrl+shift+sでkmp,kclがあるフォルダに「course_model.brres」としてセーブする(背景モデルならvrcorn_model.brres)

(※)テクスチャフォーマットに関しては次の通りです(詳細が知りたい方はこちら)。

フォーマット 説明
I4, I8 カラーチャネルが1つのグレースケールです。アルファには対応していません。バンプマップ画像などの一部において使われています。
IA4, IA8 I4(またはI8)にアルファが有効になったフォーマットです。チャネル数もメイン部分と同じです。こちらもバンプマップ画像などの一部で使われています
RGB565 カラー対応のフォーマットです。アルファには対応していません。
CMPR (=DXT1) 最も使われているフォーマットです。カラー対応ですが、アルファは有るか無いかの2値のみなので、半透明などが含まれる画像は下2つのどれかを使用してください。
RGBA5A3 カラー対応かつ半透明に対応しています。半透明を用いる場合はなるべくこのフォーマットを使用してください
RGBA8 カラー対応かつ半透明に対応しています。階調表現も上記よりも滑らかで鮮やかになりますが、ファイルサイズが非常に大きくなる(RGBA5A3の2倍)ことによりスローモーションバグの原因の一つ(このページのGPU Bottleneckを参照)になるので、利用する場合は多用せずに、なるべく小さい画像のみにしてください

3.マップの作成

※ちょっと古いやり方ですが、一番楽なのでこの方法で説明します。
画面上にマップを表示させるためのマップモデルを作成します。

3.1 マップ専用のオブジェクトをコースモデルから作り、objでエクスポートする
3.2 CToolsのBRRES EditorでFile/Import/Wavefront Objでobj model importerを開く
3.3 Path項目の「...」をクリックし、3.1で作成したobjを選択
3.4 「Load Materials」のチェックを外し、「Map Model」をチェックしてインポートする
3.5 適当な場所(できれば作成したcourse_model.brresやkmp、kclの場所)に「map_model.brres」で保存し、コマンドプロンプトを起動して保存したフォルダまでcdコマンドで移動する
3.6 次のコマンドを打つ
wszst minimap --auto map_model.brres

ちなみに、マップに頂点カラーをつけたり、マップそのものをテクスチャにできたりも可能です。そちらに関しては、このページを参考にしてください。

4.KCLの作成

Brres作成しただけではコースは走れません。モデルの面に判定を付与するために、KCLの作成は必要です。

4.1 判定を付与させたいオブジェクトの名前(SketchUpではマテリアルの名前)を「_XX_YYY」に変更する(XX:フラグ値、YYY:エフェクト)
XXおよびYYYはKCL Flagを見て設定してください[3]。(XXはBasic Effectsの各タイトルの数値、YYYはそのタイトルの「Basic effect (Z, octal)」の値)
4.2 すべてのオブジェクトの名前が変更できたら、obj形式でモデルをエクスポート
4.3 コマンドプロンプトを起動し、エクスポートしたobjがあるフォルダまでcdコマンドで移動し、そのフォルダにて次のコマンドを順番に打ちます。
wkclt encode (objの名前、拡張子付き) -o
wkclt copy (objの名前).kcl (作成後のファイル名).kcl --kcl=RM-FACEDOWN,DROP-FIXED,DROP-INVALID -o

※モデルの判定に壁エフェクトを追加した場合、走行の際道と壁の部分でぶつかりやすくなってしまう、Bean Cornerと呼ばれている衝突効果が発生します(有名な例として、Six King Labyrinth)。これが残っているCTはぶつかったときに道に戻れなくなってしまいますので、3.1においてYYYの先頭1桁に+4した値(例えばWall(0x0C)の000ならば、_0C_000を0C_400に変更)に変更してください。(ちなみにlower-wallsを使う方法もありますが、モデルとKCLとでずれてしまうのであまりお勧めはしません。)

5.KMPの編集

作成したコースに周回判定や復帰位置を配置、キラーを走らせたりするためにさせます。
KMPはKMP Cloudなどで新規作成などできますが、その場合カメラの設定などやや高度かつめんどくさいことをする必要があるので、既存のSZSから引っ張ってそれを利用する方がよいです。
以下、Lorenzi's KMP Modifierを用いたkmp設定方法について述べていきます。先にKCLは作成しておき、名前はcourse.kclとして編集するkmpがあるフォルダ内に配置してください。

基本的にCPU、アイテム、チェックポイントの設置方法は次の通りです。

5.1.1置きたい物(CPUはEnemy Paths,アイテム、キラーはItem Paths、チェックポイントはCheckpoints)を選択、一から作る場合、始めはAltキーを押したままCPUのパスを配置し、そのあとは置いたパスからAlt押しながらポイントをドラックしてパスを配置していく
※途中パスを分岐させたい場合、分岐させる点からAlt+ドラッグで押しながら分岐させる(最大分岐数6)。ただし、分岐したパスは必ず最後にすべてまとめてください。また分岐パス先でさらに分岐はさせないようにしてください、順位バグが発生します[4]
5.1.2すべてのパスを配置し終えたら、一番最初に置いたポイントと最後に置いた所同士をつなげる(Alt+マウスドラッグでつなげる)
チェックポイント同士は、必ず凸四角形(convex quadrilateral)になるようにしてくださいそうでないと順位バグが発生します
※チェックポイントには必ずキー(Lorenzi's KMP ModifierではType)をスタート地点を0として、一定区間ごとに1ずつ増やして設定してください。そうでないとウルトラショートカット(バグSC)が発生してしまいます。

オブジェクトを配置したい場合、次の通りです。

5.2.1 置きたいオブジェクトファイルを編集中のkmpがあるフォルダ内に配置(brresは同じフォルダ上、breffとbreftはeffect/オブジェクトの名前のフォルダ、brsadはbrsad/オブジェクトの名前のフォルダ)
5.2.2 Alt押しながらクリックしてオブジェクトを配置、置きたいオブジェクトのID、設定すべき場所をObjectsより確認して設定する
例:アイテムボックスを配置する場合、itembox.brresを用意し、IDは101、ルートは65535(=無し)として設定する。設定に関しては基本すべて0でokだが、特定のアイテムしか出さないなどのアイテムボックスにさせる場合はItem Settingsを見て設定する。
※Lorenzi's KMP Modifier内ではすべて10進数の値で扱うため、座標以外の値はすべて電卓等で16進数の値を10進数に直して入力してください
※オブジェクトがルートを用いる場合、Routeの項目で新たにルートを作成する必要があるので注意(同じルートを複数のオブジェクトで共有することはできない)してください

復帰点を配置する場合、次の通りです。

5.3.1 Altを押しながらクリックで復帰点を配置していく
5.3.2 特定のチェックポイント間において一つの復帰点にプレイヤーを復活させるようにするために、その復帰点を選択したままCheckpointsに移り、リンクさせたいチェックポイントを選択(ctrl押したままで複数選択)し、「Assign Selected Respawn Point to Selected Checkpoints」をクリックさせてリンクする
5.3.3 全ての復帰点とチェックポイントのリンク設定ができるまで4.3.2を繰り返す

6.テスト

1~5ができたら基本的にCTは完成したといっていいと思います。フリーズしないかチェックしたい場合、先に

wszst check 作成したコースファイル.szs

でログを見て、警告がなければほとんどの確率でフリーズせずに動きます。あった場合は警告文の指示に従って修正してください。
尚、SZSに最低限必要なファイルは次の5つです。

  • course.kcl
  • course.kmp
  • course_model.brres
  • map_model.brres
  • vrcorn_model.brres

7.発展:srt0について

準備中

このページでは幾何学的な内容を踏まえて変わったアニメーションの作り方の解説をしています。

8.発展:シェーダ

ファイル内部や設定についてはこちらを参照してください。Indirect Textureに関するバグは10を参照してください。

9.発展:Harry Potter Effectの修正

どういうバグかはこのページを見てください。簡単に言えば、透明なテクスチャを使っているマテリアルが透明でないものと認識されてしまい、付近のモデルやプレイヤーが見えなくなったりするバグです。 修正方法は2通りあります。9.1は画像フォーマットがCMPRの場合、9.2はRGBA5A3、RGBA8の場合です。

9.1 CMPRを用いたテクスチャの場合

半透明テクスチャを使ってない限りはこの方法で十分です。

9.1.1 MDL0/Materialを開き、修正したいマテリアルを選択
9.1.2 右画面のAlpha Functionにおいて次のように設定を変更する
Ref0:0->128
Comp0:Always->GreaterOrEqual
Red1:0->255
Comp1:Always->LessOrEqual

9.2 半透明テクスチャの場合

9.2.1 MDL0/Materialを開き、修正したいマテリアルを選択
9.2.2 右画面の指定箇所を次のように変更する
・BlendMode
EnableBlend:False->True

・Light Channels
LightChannel0/Alpha/Enabled:True->False
※使用シェーダにてLightChannelsが使われていない場合は変更する必要なし

・Material
XLUMaterial:False->True

・Z Mode
CompareBeforeTexture:True->False
EnableDepthTest:False->True
EnableDepthUpdate:False->True
9.2.3 MDL0/Objectを開き、設定を変更したMaterialを用いているObjを選択し、Draw PassをXLU(Transparent)に変更

10.発展:Indirect Textureのバグの修正

このバグは間接テクスチャ(Indirect Texture、バンプマップやディスプレイスメントマップで使用)を用いた場合によく見かけられるバグです。下図左のように、間接テクスチャが適用されずに表示がおかしくなります。右は修正後です。

左:修正前 右:修正後

例としては、DS ワルイージピンボール(Yoshidude4 & Turbo Yoshi)のブーストではこのバグが起きています。
このバグの原因はBrawlCrateはシェーダのIndexID(0x0B)を自動的に修正しないことによってID発生します。以下、修正方法です。

10.1 修正したいシェーダを抽出し、バイナリエディタで開く
10.2 オフセット0x0Bを選択し、BrawlCrateで表示されるシェーダ番号(ShaderXのX)と同じ値(16進数)にする
10.3 保存して、もとのシェーダにインポートして置き換える

なお、BrawlCrateBrawlCrate-MKWii-Animation-Pluginでインポートされるシェーダでも同じバグが起こるので修正する必要があります。mk8風の場合、このバグを修正すると人によっては見た目が悪くなりますが、その対策をしたシェーダについてはここのMK8 Boost Padの設定を適用してください。

※この修正を行っても同じようなバグが発生した場合、シェーダの設定に不具合が生じている場合があるため、ShaderFixを適用させて修正してください。
※テクスチャが点滅しているときはAnti-Flickerを適用すると治ります。

11.Breff

チュートリアルっぽくはないですが、個人で解析した情報を掲載しています。->こちら

12. Presence Flag

説明する量が多いのでこちらに掲載しています。


  1. 私の作成したSecluded Islandはああ見えてかなりギリギリです。公開前のバージョンではポリゴン多すぎてスローダウンが発生していました。
  2. 画像サイズが奇数であったりすると、ゲーム上でテクスチャの表示がおかしくなります。
  3. Wexos's Toolboxのソフトウェア内にあるKCL Calculatorを使うと簡単にパラメータの作成ができます。
  4. 準位バグというのは、走行中に他のプレイヤーに抜かされたり、抜かしたりしていない時に勝手に順位が変わってしまうバグのことです。1位でもスターが取れてしまうといったことが起こります。