【CSL2アセット制作記】動く台車と幌の作り方(前編:Blender作業編)

みなさんこんにちは、とみてつです。

昨日、3年前にCities: Skylines(CSL1)で作成したキハ85系を、Cities: Skylines II(CSL2)仕様に合わせて修正・公開しました。

CSL2はまだまだ電車の作り方については公式のWikiなどにも情報が少ないです。先日、初心者向けのアセット制作動画も公開しましたが、電車を作る人はさらに限られるニッチな世界。今回はブログという形で現時点で私の知っている事を書き残しておこうと思います。

1日は24時間しかありません。私がくだらないことで1日を潰してしまったような経験を、他の人が繰り返す必要はありません。

現時点での私の課題として、サウンドの実装方法やパンタグラフの動きについてはまだ勉強中の部分があります。電車ではなく気動車のキハ85系を始めに選択したのはパンタグラフが難しいからです(笑)また音が鳴らないとコメントも頂いたのですがサウンドの設定がわからないので今の所、音がなりません。これらは分かり次第、アセットを修正して、追加で書きたいと思います。

まずは先日公開したキハ85系で実装した「台車の追随」や「連結部の幌の伸縮」を実現するための、Blenderでの手順をシェアします。

前作CSL1と決定的に違うのは、「アーマチュア(骨)」という、モデルを動かすための仕組みが必要になった点です。
ここが最大の難所ですので、順を追って説明していきます。

今回の解説は「初級編」ではなく、ある程度Blenderの基本操作ができる中級者向けの内容になります。 またあくまでも私の作業方法です。これが正解というわけではありません。具体的な操作方法やショートカットの基礎については、私のYouTubeにある「アセット作成動画」をあらかじめご覧ください。今回は「電車アセットを動かすためのBlenberの作業」に絞ってお話しします。

0. 事前準備:メッシュのパーツ分け

アーマチュア(骨)を作る前に、まずはメッシュの構成を整えておきましょう。

車体本体、台車2つ、幌にオブジェクトをわけます

まず私のやり方としては、作業のしやすさを考えてパーツを分けた状態で用意しておくことをおすすめします。

具体的には、以下のパーツをそれぞれ別々のオブジェクトとして準備してください。

  • 車体本体
  • 台車(前台車と後台車の2つ)
  • 幌(連結部):先頭車なら「後ろ側のみ」、中間車なら「前後両方」

もちろん最初から全てを統合(Ctrl + J)して作業を始めることも可能です

【ここがポイント!】幌の分割について

ここで一つ、CSL2で幌をきれいに動かすための下準備をしておきます。 幌のメッシュは単純な一つの箱ではなく、「3分割」にしておいてください。このとき、均等に分けるのではなく、「車体にくっつく側」と「隣の車両とつながる側」の端っこだけを細く分割し、真ん中を大きく空けるのがコツです。

幌は3分割します

なぜこんな分け方をするのか……という理由は、後の工程で説明する「ウェイトのグラデーション」に関わってくるのですが、まずはこの形に持って行ってください。

もちろん最初から全てを統合(Ctrl + J)して作業を始めることも可能ですが、この後に行う「頂点グループへの割り当て」の工程を考えると、各パーツが独立していた方が圧倒的にミスが少なく、スムーズに進められます。最終的には一つにまとめますが、まずはこの「バラバラの状態」からスタートしていきましょう。

1. アーマチュア(骨)の作成と組み立て

まずは、車体と台車を動かすための「骨」を作ります。

  • 手順:
    1. オブジェクトモードで Shift + A から「アーマチュア」を選択。
    2. Tab キーで編集モードに入り、先頭車ならShift + A を3回押してボーンを追加します。前の台車用、後ろ台車用、後ろの幌用のボーンを合計4本にします。中間車なら前の幌も必要なのでボーンを5本にします。
    3. F2 キーでボーンの名前をそれぞれ s(車体)、1(前台車)、2(後台車)、w2(後ろの幌)、加えて中間車ならw1(前の幌)に変更します(※キハ85ではこの名称を使用しました。自分のわかりやすい名前で大丈夫です)
    4. ボーン「1」「2」「W1(中間車の場合)」「W2」を選択し、最後に「s」を選択した状態で Ctrl + P ➡「オフセットを保持」で親子関係を作ります。中心のボーンから点線で各ボーンが結ばれます。
アーマチュアを選択して初めのボーンを置きます
ボーンを追加して4つ置きました
ボーンが見えやすいように上の画像の車体などを消しました。
ボーン同士の親と子を設定して親(車体用)から点線が伸びています

2. 頂点グループの割り当て

次に、それぞれのパーツ(筋肉)を骨に紐付ける作業です。一気にやるより、一つずつ確実に設定していくのが分かりやすいのでおすすめです。

  • 手順:
    1. オブジェクトモードで、まず「車体本体のメッシュ」を選択し、次に「アーマチュア」を追加選択して Ctrl + P ➡ 「空のグループで」を実行します。
    2. 同じ操作を、「台車(前後)」「幌」などのパーツごとにも繰り返してください。
    3. 次に、各メッシュの編集モードに入り、それぞれの頂点を対応するグループ(s、1、2)に「割り当て」ていきます。
      • 車体本体:全頂点を選択 ➡ 頂点グループ s に割り当て
      • 台車:それぞれの全頂点を選択 ➡ 頂点グループ 1 または 2 に割り当て

【幌(連結部)の特殊設定】 幌の動きを制御するために、先ほど3分割したメッシュに対して、前後で異なるボーンを割り当てます。

※今回のキハ85先頭車の場合は、後ろ側にのみ幌があるので w2のみ を使用します。

車両本体側(根元): 3分割したうちの「車両にくっつく側」の頂点を選択し、ボーン s に割り当てます。

隣の車両側(先端): 「隣の車両とつながる先っぽ」の頂点を選択し、ボーン w2に割り当てます。

★ウェイトペイントでの色確認

割り当てができたら、メッシュを選択してウェイトペイントモードで色を確認しましょう。

  • 車体・台車:ボーンを選んだ時に、対象が真っ赤(1.0)になっていればOK。
  • :ボーン s を選んだ時、先端が赤く、車体側に近づくにつれて青くなっていく「グラデーション」の状態になっているかを確認します。
車体本体とアーマチュアを選択して空のグループでを選択、台車と幌も同様に
車体、台車、幌、全て空のグループで、が選択される
車体すべて選択して、sを選択して、割り当てを押す
幌だけは車体側にsを選択、他の車両側にw1を選択
ウェイトペイントモードで色を確認、車体と台車は赤
幌はグラデーション

3. 統合とポーズモードでの動作確認

最後にデータを一つにまとめ、本当に動くかテストします。

  • 手順:
    1. オブジェクトモードで全メッシュを選択し、Ctrl + J で一つに統合。
    2. アーマチュアを選択してポーズモードに入ります。
    3. 台車のボーン(1や2)を R+Z キーで回してみてください。台車だけが縦にクルクル動けば成功です!もし車体まで歪んでしまう場合は、ウェイトの設定を見直しましょう。車体のsは全部動けば良いです。幌は伸び縮みするような動きならOKです。
アーマチュアを選択してポーズモードでボーンを選択して、台車が動くか確認
幌はこんな感じ

4. FBXエクスポート設定と「命名規則」の罠

いよいよ最後、Blenderから出力する工程です。ここでミスをすると、これまでの苦労が水の泡になり、ゲーム側で正しく認識されません。私自身、ここの「名前」のせいで丸1日を無駄にしたことがあるので、皆さんは細心の注意を払ってください。

【最重要】オブジェクト名とファイル名を完全に一致させる

CSL2のエディターは命名規則に非常に厳しいです。

  • ルール: Blender内の「統合したオブジェクトの名前」と、書き出す「FBXファイルの名前」を、拡張子(.fbx)を除いて完全に一致させてください。
  • 注意点: 大文字と小文字も厳密に区別されます。例えば、オブジェクト名が「Kiha85003」なのに、ファイル名が「kiha85003」だと、エディターで車両として認識してくれません。
  • 私の実体験ですが、たった一文字、頭の「K」が大文字か小文字か違っただけで、アセットエディターが「これ、電車じゃないよ」と認識してくれませんでした。皆さんは私の二の舞にならないよう、一文字ずつしっかり確認してください。

エクスポート時の設定

保存時の設定についても、画像と一緒に解説します。特に「骨」の設定が重要です。

  • アーマチュア設定: 「アーマチュア」タブを展開し、「リーフボーンを追加(Add Leaf Bones)」のチェックを必ず外してください
  • ここ、デフォルトだと「オン」になっています。これが入ったままだと、不要な骨が勝手に作られてしまい、これまた不具合の原因になります。
保存する時の設定を確認してください。

以上で、Blenderでの準備作業はすべて完了です!

さて、次回はいよいよ後編。書き出したFBXをCities: Skylines IIのアセットエディターに登録し、実際にゲーム内で動かす手順を解説します。

もし今回の工程で不明な点があれば、私の X(旧Twitter) の投稿にリプライ(ぶら下げ)していただくか、ここのコメント欄に書き込んでください。私にわかる範囲であれば、お答えいたします

それでは、また次回

    コメントする

    メールアドレスが公開されることはありません。 が付いている欄は必須項目です

    PAGE TOP
    上部へスクロール