外観変更(1)
はじめに
- このページは「機能改変」のページに書かれている事を前提に書いています。
- 簡単なテクスチャーを貼り替える外観変更MODを作成します。この工程を通して、外観変更MOD作成の基本を学ぶ事を目的としています。
- 外観に関わるデータのほとんどは、RW4(RenderWare 4.0)形式でSimCity_Game.package内に格納されています。RW4ファイル自身も、3Dモデル、メッシュ、テクスチャなどのデータの集合体です。
- CoT発売に合わせてデータ形式が変更されました。そのため、以前とはテクスチャーの格納場所が変わりましたのでご注意ください。
車両テクスチャーの貼り替え
- 今回は消防車のテクスチャーを変更していきます。
用意する物
- SimCityPak
- Paint.NET、Gimp(要プラグイン)等の、DDSファイル(DTX5形式)をサポートするペイントソフト
事前の知識
シムシティで使われるRW4モデルは、ズームレベルによってテクスチャーの細かさを変更できるような仕組みになっており、これは一般にはLOD(Level of Detail)と呼ばれています。それぞれについて、メッシュやテクスチャーが設定されています。
LODの例
消防車のモデル取得
最初にSimCityPakを起動し、SimCity_Game.packageを開きます。
シムシティフォルダ内にあるSimCityDataというフォルダに収納されています。
絶対パス(例)C:\Program Files/Origin Games/SimCity/SimCityData/)
左窓のフィルターを使って、「Fire Truck」のプロパティ(PROP)ファイルを見つけましょう。このPROPファイルには、「Vehicle Models ..... 」という名前のついた、複数のRW4ファイルが含まれています。これは、先述のLODに対応させるため、ズームレベルごとにRW4ファイルが用意されているからです。末尾の数字が小さい方から大きい方に向かって、ズームレベル大から小用のものになっています。

外観を完全に置き換えようとする場合、全てのレベルでテクスチャーの貼り替えが必要になります。ただ、今回の対象は、全て同一サイズのテクスチャー(DDSファイル)を使い回している為、複数種類のテクスチャーを用意する必要はありません(貼り替えの作業は必要になります)。
まずはじめに「Vehicle Models [0]」の鉛筆アイコンを押し、表示されたダイアログの中のInstanceIdをコピーします。左窓のフィルターで、先ほどコピーしたInstanceIdを検索すると、単一のRW4が見つかります(検索する前に「Clear Filter」ボタンを押して、条件リセットする事を忘れずに)。行をクリックして中身を表示しましょう。
次に、真ん中の「Context View」の中に「Material」という項目があるので、ここを選択します。更に右の「Context View」の中の「Unknown 1」の列の「0」の行が、diffuse textureになります。この行のTexture IDをコピーし、検索しましょう。すると、消防車のテクスチャーを含むRW4が見つかります。
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形式で保存されます。
ここで、先ほど用意したペイントソフトを用いて、DDSファイルを編集します。好きな絵を描きましょう。保存の際の注意点は下記です。
- 「DXT5」形式で保存してください。SimCityPakがDXT5以外の形式のDDSファイルに対応していない為です。
- αチャンネルを設定してください(DXT5形式では必須になります)
- ミップマップ(MipMap)の生成を行ってください。
保存したらSimCityPakに戻り、テクスチャーを撮りだしたタブの「Import」ボタンを押します。そして、先ほど作成したDDSファイルを取り込みます。
※ここで、何度やってもSimCityPakが強制終了してしまう場合、DDSファイル形式が正しくない(DXT5以外の形式で保存されている、など)可能性があります。再度、ファイル形式を確認してください。
左リストのタブは、現在「Files」になっているはずですが「Packages」に切り替えましょう。

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

この項目の操作について「Vehicle Models [1]」~「[3]」までについても行います。
パッケージファイルの統合
ここまでの捜査で、新しいpackageファイルが4つできているはずです。これらを、そのまま使用する事も可能ですが、フォルダ内を乱雑にしない為に、パッケージファイルを統合しましょう。
まず、packageファイルを4つ開きます。方法は2通りあります。
- File-->Open packages... から4つ同時に開く
- どれかを開いてから File-->Add packages... を選択し、全てのpackageを選択する
次に、左リストに表示されている、先ほど読み込んだ4つのRW4ファイルを複数選択し、右クリックします。出てきたメニューから「Export package...」を選択し、名前をつけて保存します。この時、必ずファイル名が「SimCity_Game.package」及び先ほど作ったRW4単体のpackageファイルよりも上に来るように設定しましょう。
動作確認
通常のようにシムシティを起動し、消防署の設置してある都市をロードします。火災を発生させて消防車を出動させ、外観が変わっていたら成功です。
不謹慎消防車
完成品:fireengine0.zip
動作確認が終わったら、元のRW4単体のpackageファイルは削除してしまって構いません。
- 最終更新:2014-01-24 22:45:26