Difference between revisions of "User:Caron/CTTutorial Japanese"

From Custom Mario Kart
Jump to navigation Jump to search
Line 138: Line 138:
 
=7.発展:カメラの設置=
 
=7.発展:カメラの設置=
 
=8.発展:シェーダ =
 
=8.発展:シェーダ =
[[User:Caron/CTTutorial Japanese/Shader|こちら]]を参照
+
ファイル内部や設定については[[User:Caron/CTTutorial Japanese/Shader|こちら]]を参照してください。Indirect Textureに関するバグは[[User:Caron/CTTutorial_Japanese#10..E7.99.BA.E5.B1.95:Indirect_Texture.E3.81.AE.E3.83.90.E3.82.B0.E3.81.AE.E4.BF.AE.E6.AD.A3|10]]を参照してください。
  
 
=9.発展:Harry Potter Effectの修正=
 
=9.発展:Harry Potter Effectの修正=

Revision as of 09:32, 19 February 2020

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

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.モデリング

デザインに関しては人それぞれなので、最低限の事だけ述べるとします
・道幅は最低でも2064インチ以上かつZ軸は0より十分大きく、VS等のスタートにおいてプレイヤーが落下しないためにもスタートラインから最後尾までの長さは5504インチ以上にしてください。
ポリゴンは三角形の数がなるべく3万~4万以下に収めるようにしてください。テクスチャが低解像度なものを使用、またはほとんど使用しない場合は10万くらいまで可能(Neon Dimensionは7.7万+1.9万=8.7万ポリゴンですが、テクスチャはほとんど使用していない)だとは思いますが、それでもスローモーションバグが起こる可能性は高いです。尚、どのくら三角形の数があるかを確認する場合はBrawlBoxでMDL0をクリックしたときに表示されるNumFaceの値を見てください。
・SketchUpで作成している方はポリゴンを作成したときに面の色が白と灰色とで分かれていると思いますが、必ずコースの表面は白色に統一しておいてください。表面を灰色の方にするとコースが見えなくなります(コースだけならmdl0/MaterialのCullingをCull Noneにすることで両面表示にできますが、KCLは両面対応できません)。テクスチャが同じポリゴンに関しては対象のポリゴンを複数選択して右クリックでグループ化しておくことをおすすめします。

2.Brresの作成

作成したモデルは3dsMaxではDAEで、SketchUp、Blenderはそれぞれobj、FBXなどでエクスポートします。BrawlCrateはDAEかPMD(MikuMikuDanceのモデルファイル)のみしかMDL0の作成には対応していないので、objとFBXについては前述の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)ピクセルであること)。
尚、テクスチャフォーマットに関しては次の通りです。
フォーマット 説明
I8 カラーは白黒のみ、透明度非対応の形式です。一部で使われています
IA8 I8に透明度が有効になったフォーマットです。一部で使われています
RGB565 カラー対応でCMPRよりもきれいに表現ができますが、ファイルサイズが大きくなるためおすすめしません。また透明度にも対応してません。
CMPR 最も使われているフォーマットです。カラーかつ透明にも対応していますが、透明度は無しかか有りかの2値のみなので、半透明などが含まれる場合は下2つのどれかを使用してください。
RGBA5A3 カラー対応かつ透明度は128段階対応しています。半透明を用いる場合はなるべくこのフォーマットを使用してください
RGBA8 カラー対応かつ透明度は256段階対応しています。このフォーマットを使用するとファイルサイズが非常に大きくなる(RGBA5A3の2倍)ことによりスローモーションバグの原因の一つ(このページのGPU Bottleneckを参照)になるので、利用する場合は多用せずに、なるべく小さい画像のみにしてください
2.6 ctrl+shift+sでkmp,kclがあるフォルダに「course_model.brres」としてセーブする(背景モデルならvrcorn_model.brres)

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作成しただけではコースは走れません。モデルに判定を付/ref与するために、KCLの作成は必要です。

4.1 判定を付与させたいオブジェクトの名前(SketchUpではマテリアルの名前)を「_XX_YYY」に変更する(XX:フラグ値、YYY:エフェクト)
XXおよびYYYはKCL Flagを見て設定してください[1]。(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とでずれてしまうのであまりお勧めはしません。)


  1. Wexos's Toolboxのソフトウェア内にあるKCL Calculatorを使うと簡単にパラメータの作成ができます。

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)。ただし、分岐したパスは必ず最後にすべてまとめてください。
※加えて、チェックポイントでパス分岐する場合、分岐パス先で分岐はさせないようにしてください、順位バグが発生します。
5.1.2すべてのパスを配置し終えたら、一番最初に置いたポイントと最後に置いた所同士をつなげる(Alt+マウスドラッグでつなげる)
チェックポイント同士は、必ず台形になるようにしてください。そうでないと順位バグが発生します
※チェックポイントには必ずキー(Lorenzi's KMP ModifierではType)をスタート地点を0として、一定区間ごとに1ずつ増やして設定してください。そうでないとウルトラショートカットが発生したりします

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

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に最低限必要なファイルは以下の通りです

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

7.発展:カメラの設置

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を適用させて修正してください。

11.Breff

こちらを参照

12. Presence Flag

こちらを参照