takeyohのおぼえがき

気になったこと、試したことの記録です。

trackにアドオンするパーツづくり(作成・設置・光らせる・アニメーションさせる!)

道路パトロールカーを作りましたが、事故現場を対応している雰囲気を作ろうと思い、car modで再現を試みたのですが、AI車両を走行会モードで走らせると、どんなに走れない設定(power.lutがすべて0、ギア比も0などなど)を仕込まれていてもスイスイと走る仕様のようで、「止まった状態」が作り出せませんでした。

仕方ないので、trackにアドオンするパーツとして作ってみたのですが、いくつか得られたことがあるので、覚書です。

ちなみに、これをやると、組み込んだtrack modもmodels_xxx.iniを変更することになるので、世の中に公開されているサーバに入ろうとしたとき、エラーがでては入れなくなることがあります。こちらもtrack modをコピーして別modにするか、試したら元の状態に戻す必要があります。

 

モデルはこんな感じです。

パジェロはcar modで作成したものから流用し、外から見えないパーツやタイヤ・ステアリングのエンプティは削除しています。

 

ここまでは簡単だったのですが、track用のモデルは作ったことが無いので、いろいろ悩みました。

 

まず、当たり判定。car modのようにcollider.kn5がありません。

trackではオブジェクト(メッシュ)の命名規則があるんですね。詳しくは調べ切れてませんが、少なくとも、道路は「数字+ROAD(+数字)」、壁は「数字+WALL+(数字)」、パイロンみたいなオブジェクトは「AC_POBJECT_数字」みたいです。

こちら参照させていただきました!

レースゲームの備忘録: blenderでassetto corsaの道路を作りたいので動画の覚え書きをしてみた

 

それから、パイロンなどのAC_POBJECTを指定するオブジェクトはコレクションの直下に置く必要があるみたいです。車の位置調整がしやすいように、一つのエンプティの下にすべてのオブジェクトを入れて移動させていたのですが、これではだめでした。

また、AC_POBJECTを指定したオブジェクトの原点はオブジェクトの中に入れるとのことです。対象のオブジェクトを選択したら、右クリックで「原点を設定」→「原点をジオメトリへ移動」で原点をオブジェクト内部に移動できます。

 

この原点移動が必要な点については、shin956さんに詳しく教えていただきました。

ありがとうございます!!

 

できたら、fbxでエクスポート。ここは車と同じで大丈夫でした。

エクスポートしたfbxをksEditorでよみこみ、kn5を作成。この時点ではcar modでもtrack modでもその後の動きは同じでした。(アニメーション設定の段階で違いがあります。)

ROADやWALLなど当たり判定のあるオブジェクトはksEditorでkn5を作成するとき、trackを選ぶ必要がありました。

こちらを選ぶと、メッシュの位置と当たり判定が同一になります。(carで作成してしまうと、これがずれて当たり判定の場所が別のところになってしまいました。)

 

作成したkn5ファイルをtrack modフォルダ直下にコピーします。(今回の例では、ファイル名はburnedout_cars.kn5)

そして、そのtrack mod直下にあるmodels_xxx.iniに下記を追記します。

[MODEL_3]
FILE=burnedout_cars.kn5
POSITION=0,0,0
ROTATION=0,0,0

MODEL_3の”3"は他に追加されているkn5のMODEL番号と被らないようにします。

POSITIONはtrack内の場所、ROTATIONは向きを指定できます。

ここで、一つ重要なポイントが・・・。

このPOSITIONとROTATIONを使うと、作成したkn5をtrack内の好きな場所、向きに置くことが出来るのですが、先ほど命名規則で指定した壁や道路の設定はこれと一緒に移動してくれません。見た目だけのものを追加するときはこれを使って移動させても良いですが、当たり判定も合わせる必要がある場合は、POSITIONとROTATIONは0に設定し、blender上で、オブジェクトの位置と向きをtrackに合わせてから、fbxエクスポートする必要があります。(文章だと伝わりずらい・・・)

これで、設定したtrackを選択してスタートさせると、追加したkn5が登場します。

 

続いて光る電光掲示板。

こちらは、track modフォルダにあるextensionフォルダ(無い場合は作成)のext_config.ini(無い場合は新規作成)に以下を追記しました。

[CONDITION_...] ;BLINK SIGN
NAME=BLINK_SIGN
INPUT=ONE
DELAY=0
FLASHING_FREQUENCY=5
FLASHING_SMOOTHNESS=0
FLASHING_SKIP_OFF_STATE=0
FLASHING_NOISE_AMPLITUDE=0
FLASHING_MIN_VALUE=0.0
FLASHING_SYNCED=1

 

[LIGHT_SERIES_...]
DESCRIPTION=keijiban
ACTIVE=1
MATERIALS=display
DIRECTION=NORMAL
OFFSET=0,0,0
RANGE=25
SPOT=160
SPOT_SHARPNESS=0.8
RANGE_GRADIENT_OFFSET=0.65
CLUSTER_THRESHOLD=11
FADE_AT=850
COLOR=255, 173, 65, 0.015
SINGLE_FREQUENCY=1
CONDITION=BLINK_SIGN

 

[MATERIAL_ADJUSTMENT_...]
DESCRIPTION=keijiban emissive
ACTIVE=1
MATERIALS=display
KEY_0=ksEmissive
VALUE_0=255,147,41, 1
CONDITION=BLINK_SIGN

基本光らせるオブジェクトはLIGHT_SERIESとMATERIAL_ADJUSTMENTがセットになっていて、前者は光を照らす設定(car mod ならLIGHT_EXTRA?)、後者はオブジェクト自体を光らせる設定(car modならEMISSIVE_XXX)です。で、光り方のパターンなどはCONDITIONセクションで設定し、LIGHT_SERIESとMATERIAL_ADJUSTMENTセクションではCONDITION=XXXXと設定すればよいようです。

細かいパラメータとかは、WIKIを見るのが良いと思います。

Tracks – Lights · ac-custom-shaders-patch/acc-extension-config Wiki · GitHub

 

続いて、アニメーション。

警告灯をくるくる回すやつです。car modであればANIMATIONセクションです。

track modではext_config.iniにANIMATEDセクションで定義します。

こんな感じ。

[ANIMATED_...]
ACTIVE = 1
NODE = yaneLampAnimL
ANIMATION = patolampL.ksanim
DURATION = 1

[ANIMATED_...]
ACTIVE = 1
NODE = yaneLampAnimR
ANIMATION = patolampR.ksanim
DURATION = 1

[CONDITION_...] ;PATOLAMP
NAME=PATOLAMP
INPUT=ONE
DELAY=0

[MATERIAL_ADJUSTMENT_...]
DESCRIPTION=patolamp emissive
ACTIVE=1
MATERIALS=patolamp
KEY_0=ksEmissive
VALUE_0=255,147,41, 1
CONDITION=PATOLAMP

[LIGHT_...]
ACTIVE=1
VISIBILITY_LEVEL=0
DESCRIPTION = patolampL
POSITION = 0,0,0
RELATIVE_TO = yaneLampReflectorL
DIRECTION = 0,1,-0.1
SPOT = 60
SPOT_SHARPNESS = 0.75
RANGE_GRADIENT_OFFSET = 0.54
RANGE = 100
FADE_AT = 5000
FADE_SMOOTH = 50
DIFFUSE_CONCENTRATION = 0.95
COLOR = 255,147,41, 0.1
VOLUMETRIC_LIGHT=1
SPECULAR_MULT=1.35
CONDITION=PATOLAMP

[LIGHT_...]
ACTIVE=1
VISIBILITY_LEVEL=0
DESCRIPTION = patolampL2
POSITION = 0,0,0
RELATIVE_TO = yaneLampReflectorL
DIRECTION = 0,-1,-0.1
SPOT = 60
SPOT_SHARPNESS = 0.75
RANGE_GRADIENT_OFFSET = 0.54
RANGE = 100
FADE_AT = 5000
FADE_SMOOTH = 50
DIFFUSE_CONCENTRATION = 0.95
COLOR = 255,147,41, 0.1
VOLUMETRIC_LIGHT=1
SPECULAR_MULT=1.35
CONDITION=PATOLAMP

[LIGHT_...]
ACTIVE=1
VISIBILITY_LEVEL=0
DESCRIPTION = patolampR
POSITION = 0,0,0
RELATIVE_TO = yaneLampReflectorR
DIRECTION = 0,1,-0.1
SPOT = 60
SPOT_SHARPNESS = 0.75
RANGE_GRADIENT_OFFSET = 0.54
RANGE = 100
FADE_AT = 5000
FADE_SMOOTH = 50
DIFFUSE_CONCENTRATION = 0.95
COLOR = 255,147,41, 0.1
VOLUMETRIC_LIGHT=1
SPECULAR_MULT=1.35
CONDITION=PATOLAMP

[LIGHT_...]
ACTIVE=1
VISIBILITY_LEVEL=0
DESCRIPTION = patolampR2
POSITION = 0,0,0
RELATIVE_TO = yaneLampReflectorR
DIRECTION = 0,-1,-0.1
SPOT = 60
SPOT_SHARPNESS = 0.75
RANGE_GRADIENT_OFFSET = 0.54
RANGE = 100
FADE_AT = 5000
FADE_SMOOTH = 50
DIFFUSE_CONCENTRATION = 0.95
COLOR = 255,147,41, 0.1
VOLUMETRIC_LIGHT=1
SPECULAR_MULT=1.35
CONDITION=PATOLAMP

電光掲示板と同じく、パトランプのオブジェクトを光らせるのは、MATERIAL_ADJUSTMENTを使っています。

そしてくるくる回る光は、LIGHTセクションです。今回の車は左右に2個ずつ付いているので、4つのLIGHTセクションを記載しています。

 

この光の回転についても、shin956さんに詳しく教えていただきました。

ありがとうございます!!

 

アニメーション設定については、WIKIがわかりやすいです。

Tracks – Animated objects · ac-custom-shaders-patch/acc-extension-config Wiki · GitHub

あと、観覧車の実装例もありました。こちらもわかりやすいかと。

TUTORIAL - Animation in Assetto Corsa | Assetto Corsa Mods

そして、ここで重要なポイント2つ目!

このANIMATEDで指定したksanimは、kn5がcar modとして作成されているものでないと動かないようです。

ksEditorでいうと、ここですね。

CarとTrackがありますが、Carを選択してkn5を作成したものでないと、ANIMATEDで指定したksanimのアニメーションは動かないといういことです。

観覧車の実装例のサイトに一行だけ書いてあります。最初見逃していて「動かねぇ~!」ってなりました。(^^;

 

 

 

/* -----codeの行番号----- */