AoE3のMODです。
× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。 |
今回はddtファイル(tgaファイル)の加工について書きます。
抽出したddtファイルをFileConverterで変換すると”ユニット名.(0,1,8,5).tga”のようなファイルに変換されます。ここで表示される(0,1,8,5)のような4桁の数字は、どうやらテクスチャを使用する場面ごとに固有の数が割り振られているようです。 例えば上で書いた”0,1,8,5”は、ユニットに使う一般的なテクスチャに使用される数字です。これが”6,0,9,1”となると、ユニットにエンボス加工する為の”normalマップ”ファイルとして扱われます。”0,0,1,1”となると、今度は同じエンボス加工用のファイルでも、白黒濃淡の”bumpマップ”として扱われます。ユニットのグラフィックを変えるのであれば、今示した3種類だけ覚えておけばOKです。(アイコンのtgaファイルでは”0,1,8,1”が使われていたりと、目的によりまだ何種類も存在するようです。) < ”0,1,8,5”のtgaファイルについて > このtgaファイルで実際にユニットに貼り付ける画像を作製できます。さらにアルファチャンネルを使って”チームカラー”の塗り分けも行えます。しかしいざ画像を加工しようとすると、多くの困難が立ちはだかっている事に気づくはずです。 まず最初に迷うのは、”画像とポリゴンの貼り付け位置関係”でしょう。私はgr2ファイルを見るためにGranny Viewerというフリーソフトを使用していますが、それでも環境設定が上手くいかず、テクスチャまで表示させることは出来ませんでした。 さらに大変なのはアルファチャンネルの設定で、使用する3Dモデルによっては、”効果がかからない箇所がある”ということです。例えば上半身を黒く塗り、下半身をチームカラーがかかるように白く塗り、そこにアルファチャンネルをかけたとしましょう。しかしユニットによっては実際に表示してみると「膝から下が真っ白く抜けてしまった!」というような事態が発生します。コレを根本的に解決する手段は、残念ながら今のとこありません。ユニットのグラフィックを変更して、アルファチャンネルが空白部分にかからないように設定するしかありません。 このように、グラフィックの変更には非常に多くの困難が立ちはだかります。そしてそれを唯一解決する方法は、何度もAoE3のゲーム上で確認しながら修正していくという根気の要る作業、これしかないようです。 < ”6,0,9,1”のtgaファイルについて > このtgaファイルでユニットにnormalマップによるエンボス加工を施す事が出来ます。さらにアルファチャンネルを使ってユニットに金属光沢(光の反射加工)を行うことが出来ます。 金属光沢に関しては特に難しい事は無く、普通にアルファチャンネルを指定していけばよいだけです。問題はnormalマップの方です。 normalマプとは本来、細かくモデリングしたものを出力し、それを縦方向のグラフィックマップとして加工したものです。なので、これを画像編集ソフトだけで1から製作していくことは、事実上不可能という事になります。 しかし加工が完全に不可能というわけではありません。単純な図形(縦横斜めの直線を組み合わせた図形)程度なら、ひな形となるtgaファイルから色と形状の関係を見抜き、色を抽出しながら書き加えていく事が出来ます。またコピー&ペーストの技法を使えば、比較的簡単に加工できる場合も有ります。 しかし最終的には上のtgaファイルと同様、実際のゲーム上の表示と比べながら、根気よく詰めていくしかありません。 < ”0,0,1,1”のtgaファイルについて > このtgaファイルを使うと、白黒の濃淡でエンボス加工を施す事が出来ます。(bumpマップ。) 普段この形式を使っている人であれば、非常に有効な手段ではないかと思います。しかし私はこの手のファイルを作成したことが無いので、詳しい事は分からないのが本当のところです。 cuirassierのage4_rider_bがこの形式でのtgaファイルとなっていますので、この形式で加工される場合はこちらを参考にしてみてください。 PR |
前回の続きです。~.xmlファイルについてより詳しい説明をしていきます。
その前にまず、どのxmlファイルを編集していく上でも重要なのは、コピー&ペーストが基本であるということです。 全く新しいユニットを作って追加するにせよ、まずはひな形となるユニットを決定し、それに他のユニットの特性をコピーしていくのがMOD作りの基本スタンスとなります。このような作業を繰り返し、実際の挙動を確認していくうちに、タグの機能などがだんだんと理解できていくのです。 以上を理解していただいたうえで、ユニットのxmlファイル(protox.xmlでいうところの”AnimFile”)の解説をしていきたいと思います。 <definebone>~</definebone> ここでは3Dモデルに対して使用するボーン(bone)の宣言を行っています。Bip01 Prop1やBip01_AttachRtなどのように、ユニットの動作を指定するのに必要なボーンをコピー&ペーストなどで用意しておく事で、正常にユニットを動作させる事が出来ます。 ただ注意していただきたいのは、ここで行えるのは(恐らく)ボーンの宣言だけであるということです。詳しい事は私もよく分からないのですが、例えばPikemanのgr2ファイル(3Dファイル)を、騎乗ユニットのボーンを貼り付け馬の上に載せてみても、実際に動かしてみると正しい挙動を行ってくれません。つまり歩兵ユニットと騎乗ユニットは元々用意してあるボーンの位置ないし命名規則が違うようなのです。歩兵ユニットを馬の上に乗せる事は本当に出来ないのか、現在私も調査中ですが、現状では不可能と考えていただくしかありません。 それよりもこの<definebone>タグには重要な働きが有ります。それはアタッチメントの接着位置を宣言するボーンです。例えばあるユニットに対して「帽子を被らせたい」と考えたとします。まずやることは<component>タグの中に<attach a="hats"~>で接着するファイルを指定する事ですが、同時にこの<definebone>タグ内でファイルに対応したボーンの指定をしなければなりません。帽子の例をとりますと、書くべきタグは<definebone>bone_hat</definebone>となります。 このように、アタッチメントを正確に接着する為にボーンの宣言を行うことが、このタグの一番重要な役割です。 <attachment>~</attachment> ここではユニットに接着するアタッチメントの指定を行います。 指定方法は二つあり、外部のxmlファイルを読み込む方法と、直接本xmlファイル内に書き込む方法です。後者の場合は該当するユニットからコピー&ペーストで書き込むのが手っ取り早いかと思います。 指定できるアタッチメントには、使用する武器や帽子、カバンやsige攻撃時の松明などのほか、騎兵の場合は騎乗ユニットの指定もココで行います。 <component>~</component> このタグ内で具体的にグラフィックファイルの読み込みやテクスチャの指定などを行います。 ModelCompの記述の後にさらにタグが入っていきます。 <logic type="Tech">~</logic> ここではdataフォルダのtechtreex.xmlと連動し、グレードアップ時におけるユニットグラフィックの変化を指定します。 <none>で書かれているのは、このユニットの基本グラフィックです。つまりアップグレードテクを使わない最初の状態のユニットは、ここで指定されたグラフィックで表示される事になります。それ以降のタグ(<guardreiters>など)は、”techtreex.xmlで作製したテク名(<Tech name ='~' >の部分)と対応しています。(同時に<Effect>タグ内で”subtype ='UpdateVisual' unittype ='~' ”と、テクツリーからもAnimFileに対して指定してある必要があります。)この時大文字や小文字の区別はなされないようです。 つまりここの指定を上手く使えば、オリジナルのAoE3では存在しなかったインペリアルユニットのグラフィックや、ユニークユニットのグラフィックも作成することが可能です。 <logic type="LowPoly">~</logic> ここではハイポリモデルとローポリモデルの設定が行えます。<normal>でくくられた部分がハイポリモデル、<lowpoly>でくくられた部分がローポリモデルです。 ここで注意していただきたいのは、大抵のユニットに用意されているローポリモデルの殆んどは、”初めからアタッチメントが付加された状態でgr2ファイルが作成されている”ことです。詳しくはGranny Viewerなどのソフトを使ってgr2ファイルを見てみてください。 こうしたローポリモデルに無理矢理アタッチメントを付加させると、例えばランセロの槍を剣と置き換えた時に、ローポリモデルでは剣と槍を同時に右手に持っているような事態が発生します。アタッチメントを使ってユニットのカタチを大きく変更される場合は、ローポリモデルを使用しないことをお勧めします。(ローポリモデルを使用しないためには、<logic type="LowPoly">タグと、<normal>、<lowpoly>タグを消去すればOKです。この場合、オプションでハイポリモデルの項をオフにしても、ハイポリモデルが表示されることになります。) <assetreference type="GrannyModel">~</assetreference> ユニットの外観表示を決定する一番重要なタグです。type="GrannyModel"という部分は、おそらく使用するファイルがgr2であることを宣言しているのだと思われます。 <file>タグで読み込むgr2ファイル(3Dファイル)を指定しているのだという事は、見ればすぐに分かるかと思います。重要なのはその後に記載する<replacetexture>~</replacetexture>とうタグです。 <replacetexture>~</replacetexture> 通常このタグはxmlファイルの中には存在しません。私もオリジナルのファイルの中で、どれにこのタグが書かれているのかは知りません。海外MODのNapoleonicEraでこのタグが使われているのを見て、それを真似したのが最初です。 このタグでユニットに貼り付けるテクスチャを指定できます。このタグの構造は以下のようになります。 <assetreference type="GrannyModel"> <file>units\infantry_ranged\grenadier\grenadier_age3</file> <replacetexture> <from>units\infantry_ranged\grenadier\grenadier_age3</from> <to>units\infantry_ranged\fbgrenadier\fbgrenadier_age3</to> </replacetexture> <replacetexture> <from>units\infantry_ranged\grenadier\grenadier_age3_b</from> <to>units\infantry_ranged\fbgrenadier\fbgrenadier_age3_b</to> </replacetexture> </assetreference> <to>の部分で張り替えるテクスチャを指定するわけですが、その前に<from>で替える元になる方のテクスチャを指定しなければいけません。これはテクスチャを張り替えるユニットモデルに、実際に貼り付けられているddtファイルを探し出す必要があります。 大抵は上の<file>部分の記述と同じなのですが、一部名前が異なるものがあるので注意する必要が有ります。 さらに、下のほうで”_b”と書かれたファイルも交換しています。これはユニットに貼り付けるエンボスファイルを指定している所です。このエンボスファイルは加工が非常に困難なので、指定しないのも一つの手です。(その場合は書き換えるテクスチャのカタチをなるべくオリジナルに似せておく必要があります。そうでないと、変な部分に凹凸が出来てしまいます。) <attach/> このタグでアタッチメントの指定を行います。a="~"の部分が指定するアタッチメントの名称(<attachment>に関連付けられる部分)になるのですが、他の属性が何を示すのか、詳しい事は私にも分かりません。しかし名前から見て分かるとおり、<definebone>タグと関連している事は一目瞭然です。 ここはコピー&ペーストを使い、<attach/>タグと関連するタグの両方を他所から移植するのが一番賢いやり方だと思います。(そしてそれで十分です。) <decal>~</decal> この部分はまだいじったことがないので、私にもよく分かりません、ただ名前から想像するに、ここではユニットの影と足元のサークルか何かを指定しているのだと思います。 傭兵ユニットや原住民を作るときに留意しておくべきタグかもしれません。 <anim>~</anim> ここでは攻撃や移動などの、ユニットの動きが指定してあります。正直言ってこの部分を自分で変更することはお勧めしません。 例えば私はドラグーンの銃撃モーションを原住民のライフルライダーなどと同じにしようとこの部分をいじったのですが、銃撃する時にマズルから出る炎のエ フェクトが、どうしても銃口ではなくユニットの足元から出てしまいました。結局このバグは_horse.xmlで使われていた馬のgr2ファイルが、適切 でなかったために起こった現象でした。 このように、ボーンの指定や使用するモデルによる制限が非常に多いため、自分が望む動きをするユニットをひな形として使い、この部分はいじらないのが得策だと思います。 もし変更するにしても、基本はコピー&ペーストで、ボーンなどの指定によく注意しながら、実際にゲームで挙動を何度も確認しながらやるべきでしょう。 to be continued... |
コラムという項を新しく作って、今後サイトに載せる予定のMOD作製講座のネタ作りでもしようかと思います。
色々な作業をしていると、前に覚えた技術を忘れていってしまうという事態が発生しかねないので、その時のための”自分用のメモ”という側面もあります。 今回はグラフィック変更の作業に関して書こうと思います。 まず最初にArchiveViewerとFileConverterという二つのツールを手に入れなければいけません。 これはAoE3Heavenのチュートリアルページに貼られているリンクなどから入手する事が出来ます。(二つのツールがパッケージされている。) まず使用するのはArchiveViewerです。 コレを使って”プログラムファイル内”にあるAoE3のフォルダを呼び出します。そしてそこのartフォルダから、”artX.bar”というファイルを読み込みます。(Xは数字。) art1はユニットのグラフィックを決定するxmlファイルが入っているフォルダです。art2はグラフィックやアイコンが主に収納されています。art3は今回は関係のないフォルダです。art4はTWC(拡張版)のデータが収納されたフォルダです。 左下の検索機能を使って、変更するユニット(またはひな形とするユニット)のファイルを検索します。グラフィック変更のために必要なのは~~.xml.xmbファイルと、~~.ddtファイルです。 < xml.xmbファイルについて > ユニットに貼り付けるテクスチャの指定や、アタッチメントの設定、ボーンの動かし方(ユニットのモーション)を決定するファイルです。 必要なファイルを見抜く方法ですが、まずはAoE3フォルダのdataフォルダ内にある”protox.xml”ファイルを見てください。そのファイルの中にはユニットの情報(ステータスなど)が記載されていますが、<AnimFile>~</AnimFile>の部分にユニットが読み込むグラフィックファイルが指定してあります。まずこのファイルをartX.barからArchiveViewerで探してください。(大抵はユニット名.xml.xmbとなっています。騎兵の場合はユニット名_horse.xml.xmbとなっているようです。) 次にArchiveViewerのView機能を使って(または抽出後にxmlファイルを開いて)<attachment>タグで関連付けられているファイルを確認します。コレを繰り返して必要な(変更したい)xml.xmbファイルを全て検出してください。ArchiveViewerで抽出したらFileConverterにxmbファイルを入れてxmlファイルに変換してください。 < ddtファイルについて > ここで使うのはtgaファイル(画像ファイル)であるddtファイルです。ArchiveViewerの機能を使うことでtgaファイルの中身を見ることが出来ます。 必要なのは”各時代ごと”のユニットテクスチャ、~.ddtと、そのエンボス指定ファイルである~_b.ddtです。(一部のユニットは~_bump.ddtとなってます。詳しくは各ユニットのxml.xmbファイルを確認して下さい。) このddtファイルを抽出後変換してtgaファイルにし、これをフォトショップなどの画像編集ソフトで編集する事で、ユニットのテクスチャを変更します。しかし_b.ddtファイルのほうは少し厄介でして、これは”normalマップ”という、光の明暗を貼り付けることで凹凸を表現する為のファイルです。本来このnormalマップというのは、細かく3Dモデリングしたものを出力し、ローポリモデルに貼り付けるものらしく、そのため画像ソフトでこれを編集するのは不可能に近いと思われます。しかし単純な図形(直線や四角形など)なら、根気があればなんとか編集可能です。(私はそうしました。)また技術があれば、より一般的な白黒の濃淡で凹凸を表現するbumpマップ形式でも、AoE3に読み込ませることが出来るようです。(現にキュイラシェのage4ユニットは白黒濃淡のbump形式になっています。) これら形式の認識については、tgaファイル変換後に現れる”4つの数字”で区別されるようですが、詳しい事は後述することにします。またtgaファイルはアルファチャンネルにも適応しており、これによりチームカラーの貼り付けや金属光沢の設定なども行えます。こちらも後述するとします。 to be continued... |
| HOME | 忍者ブログ [PR] |