外観変更(1)


はじめに

  • このページは「機能改変」のページに書かれている事を前提に書いています。
  • 簡単なテクスチャーを貼り替える外観変更MODを作成します。この工程を通して、外観変更MOD作成の基本を学ぶ事を目的としています。
  • 外観に関わるデータのほとんどは、RW4(RenderWare 4.0)形式でSimCity_Game.package内に格納されています。RW4ファイル自身も、3Dモデル、メッシュ、テクスチャなどのデータの集合体です。
  • CoT発売に合わせてデータ形式が変更されました。そのため、以前とはテクスチャーの格納場所が変わりましたのでご注意ください。

車両テクスチャーの貼り替え

  • 今回は消防車のテクスチャーを変更していきます。

用意する物

  • SimCityPak
  • Paint.NETGimp(要プラグイン)等の、DDSファイル(DTX5形式)をサポートするペイントソフト

事前の知識

シムシティで使われるRW4モデルは、ズームレベルによってテクスチャーの細かさを変更できるような仕組みになっており、これは一般にはLOD(Level of Detail)と呼ばれています。それぞれについて、メッシュやテクスチャーが設定されています。

LODの例
FireEngine01.png

消防車のモデル取得

最初にSimCityPakを起動し、SimCity_Game.packageを開きます。
シムシティフォルダ内にあるSimCityDataというフォルダに収納されています。

絶対パス(例)C:\Program Files/Origin Games/SimCity/SimCityData/)

左窓のフィルターを使って、「Fire Truck」のプロパティ(PROP)ファイルを見つけましょう。このPROPファイルには、「Vehicle Models ..... 」という名前のついた、複数のRW4ファイルが含まれています。これは、先述のLODに対応させるため、ズームレベルごとにRW4ファイルが用意されているからです。末尾の数字が小さい方から大きい方に向かって、ズームレベル大から小用のものになっています。

FireEngine02.png

外観を完全に置き換えようとする場合、全てのレベルでテクスチャーの貼り替えが必要になります。ただ、今回の対象は、全て同一サイズのテクスチャー(DDSファイル)を使い回している為、複数種類のテクスチャーを用意する必要はありません(貼り替えの作業は必要になります)。

まずはじめに「Vehicle Models [0]」の鉛筆アイコンを押し、表示されたダイアログの中のInstanceIdをコピーします。左窓のフィルターで、先ほどコピーしたInstanceIdを検索すると、単一のRW4が見つかります(検索する前に「Clear Filter」ボタンを押して、条件リセットする事を忘れずに)。行をクリックして中身を表示しましょう。

Firetruck01.png

次に、真ん中の「Context View」の中に「Material」という項目があるので、ここを選択します。更に右の「Context View」の中の「Unknown 1」の列の「0」の行が、diffuse textureになります。この行のTexture IDをコピーし、検索しましょう。すると、消防車のテクスチャーを含むRW4が見つかります。

Firetruck02.png

RW4を右クリックし、メニューから「Export to Package...」を選択して任意の名前で保存します。これによりテクスチャーをゲーム本体から切り出すことができます。

同様の操作を他のLODである「Vehicle Models [1]」「Vehicle Models [2]」「Vehicle Models [3]」についても行います。

テクスチャーの改変

現在開いているファイルを閉じ(メニューのFile-->Close all packages)、先ほど保存したpackageファイル(Vehicle Models [0]から切り出したもの)を開きます。その際、複数のテクスチャーが表示される場合がありますが、それぞれ下記のような意味があります。

  • Diffuse map:実際の外観テクスチャー
  • Normal map:表面の凹凸を表現する為の、グレースケールテクスチャー。RGBチャンネルは左右の光源を、αチャンネルは上下の光源を定義します。
  • Mask map:窓や光源を表現する為のテクスチャー。ほぼ青のみ。
  • Gloss map:表面の光沢を表現するテクスチャー。様々な緑と紫を使う。
  • Color Palette:単一色かつ極小のビットマップ。Diffuse mapが透過処理されている場合のみ、これが表示される。

通常は、Diffuse mapの編集だけで事足ります。今回のテクスチャーでは、Diffuse mapのみしかないので迷うこともないでしょう。

右ウィンドウのContextViewからNumber1のTextureを開き、画面下にある「Export」ボタンを押しましょう。ダイアログが表示されるので、それに沿ってテクスチャーを保存します。その際、この画像ファイルはDDS形式で保存されます。

FireEngine03.png

ここで、先ほど用意したペイントソフトを用いて、DDSファイルを編集します。好きな絵を描きましょう。保存の際の注意点は下記です。

  • 「DXT5」形式で保存してください。SimCityPakがDXT5以外の形式のDDSファイルに対応していない為です。
  • αチャンネルを設定してください(DXT5形式では必須になります)
  • ミップマップ(MipMap)の生成を行ってください。

保存したらSimCityPakに戻り、テクスチャーを撮りだしたタブの「Import」ボタンを押します。そして、先ほど作成したDDSファイルを取り込みます。

※ここで、何度やってもSimCityPakが強制終了してしまう場合、DDSファイル形式が正しくない(DXT5以外の形式で保存されている、など)可能性があります。再度、ファイル形式を確認してください。

左リストのタブは、現在「Files」になっているはずですが「Packages」に切り替えましょう。

PedestrianPath10.png

先ほど変更したパッケージファイルを右クリックするとメニューが出てきます。問題なければ「Save」を選びましょう。

PedestrianPath11.png

この項目の操作について「Vehicle Models [1]」~「[3]」までについても行います。

パッケージファイルの統合

ここまでの捜査で、新しいpackageファイルが4つできているはずです。これらを、そのまま使用する事も可能ですが、フォルダ内を乱雑にしない為に、パッケージファイルを統合しましょう。

まず、packageファイルを4つ開きます。方法は2通りあります。
  1. File-->Open packages... から4つ同時に開く
  2. どれかを開いてから File-->Add packages... を選択し、全てのpackageを選択する

次に、左リストに表示されている、先ほど読み込んだ4つのRW4ファイルを複数選択し、右クリックします。出てきたメニューから「Export package...」を選択し、名前をつけて保存します。この時、必ずファイル名が「SimCity_Game.package」及び先ほど作ったRW4単体のpackageファイルよりも上に来るように設定しましょう。

動作確認

通常のようにシムシティを起動し、消防署の設置してある都市をロードします。火災を発生させて消防車を出動させ、外観が変わっていたら成功です。

FireEngine05..jpg FireEngine04..jpg
不謹慎消防車

完成品:fireengine0.zip

動作確認が終わったら、元のRW4単体のpackageファイルは削除してしまって構いません。

  • 最終更新:2014-01-24 22:45:26

このWIKIを編集するにはパスワード入力が必要です

認証パスワード