初めまして、けんです。小中学生の頃にグランツーリスモにハマってから一時は興味も遠のき、数年前にPS4のグランツーリスモSPORTを遊んでから、また車好きが目覚めてしまいました。ただ、PS4に対応しているハンドルコントローラー(以下、ハンコン)は安くても3万円ほどはするので躊躇していたところ、PCに「Assetto Corsa(アセットコルサ)」というソフトがあることを発見。さらに調べると「Dricing Force GT」というハンコンがメルカリで4,000円くらいで買えることが判明。早速買ってみて遊んでみたところ、ドライビングのリアリティが明らかに違う。ということで、それ以来Assetto Corsaにハマっていたのでした。

Assetto Corsaはそれだけでも十分に素晴らしいソフトですが、ファンがつくるMODが充実しているのが最大の魅力です。思いつく車種やサーキットを調べたら、だいたい揃っています。ところが、地元・富山のおわらサーキットがいくら探しても見つからない。ならば作ってみよう、ということで、プロジェクトが始まりました。


やり方の調査

とはいうものの、どうやって作ればいいかの知識もないので、まずはGoogleに聞いてみる。

調査の結果、blenderなどの3DモデリングソフトからAssetto Corsa用のファイルを作れることが判明。とは言うものの、blenderは10年以上前にちょっと触って1時間くらいで挫折した記憶しかないので、改めて使い方を勉強することに。

こちらの動画が分かりやすくて、2時間ほどでblenderの基本操作ができるようになりました。


blenderで簡単なコースをつくってみる

この動画を参考にしながら、まずはblenderで簡単なコースを作って、本当にAsetto Corsaで動くかを検証。

Asetto Corsaのコースとして認識させるためには最低限、道路とスタート位置、ピット位置、タイム計測位置を決めたオブジェクトの設置が必要になるそう。道路はどんな形でもいいのですが「1ROAD」という名前をつけなければならないそう。同様に、草は「1GRASS」、当たり判定のある物は「1OBJECT」という名前をつけます。

そしてスタート位置、ピット位置、タイム計測位置はどんなオブジェクトでもいいのですが、今回はマテリアル指定が不要な矢印にしました。それぞれ以下のような名前を付けます。

スタート:AC_START
ピット:AC_PIT
計測左:AC_TIME_0_L
計測右:AC_TIME_0_R

やり方がわかったところで、適当なコースを作成。道路、草、当たり判定つきオブジェクトがあるだけの簡単なコースですが、一度これをAssetto Corsaで動かしてみます。データはfbx形式で書き出します。


ファイルの準備

まずは、Assetto Corsaのインストールフォルダ「content」→「tracks」の中に適当なフォルダをつくります。

そしたら、中に「ai」「data」「texture」「ui」というフォルダーを作ります。中身は空でいいのですが「ui」フォルダの中の「ui_track」はほかのコースから持ってきてコピペします。これがコース選択画面で表示される情報になるので、メモ帳などで開いて適当に情報を書き換えます。次に先ほどblenderからエクスポートしたfbxファイルをコースのフォルダに入れておきます。ここまでで下準備はOK。

準備ができたら「assettocorsa」→「sdk」→「editor」の中にある「ksEditor」を起動して、File→Open FBXからfbxファイルをインポートします。しばらく待つとインポートされますが、真っ暗になって何も見えない時は、画面下部の「Illumination」の「Weather」や「PP」を変えれば直ります。

そして読み込みができたらFile→Save KN5→trackで、先ほど作ったフォルダに書き出します。この時、ファイル名とフォルダ名は同じにすること。これがわからなくて1時間くらい苦戦しました‥。「Scene」タブからマテリアルが指定されていないオブジェクトを探して「Material」タブの「txDiffuse」からマテリアルをリンクしてあげると直るようです。


トラブル①:空を飛ぶ

ファイルの用意ができたらAssetto Corsaを起動するだけ。ところが、様子がおかしい‥。空を浮いたまま暴れています。

原因はfbxの書き出し設定でした。書き出しの際は「トランスフォーム」の項目でスケールを0.01、「Zが前方/Yが上」にしないといけないようです。


トラブル②:草がテカテカ

何とか起動できたものの、草がテカテカしています。原因はksEditorのマテリアル設定でした。

ksSpecularの数値が大きいと、光ってしまうらしい。草は自分から光らないので、この部分の数値は0に設定。ksAmbientやksDiffuseで環境光をどれくらい反射するかをコントロールするらしいので、適当に調整。


初日、完成

こうして、無事にAssetto Corsaで動かせるコースのつくり方がわかりました。続いて、目標のおわらサーキットをつくっていきます。2日目へ続く。