オリジナルの銃を作成する(2) カスタム銃をカスタマイズする




使ったファイル

SoC
gamedata\config\weapons\
weapons.ltx
w_nimble_pb.ltx
gamedata\config\text\eng\
string_table_enc_weapons.xml
gamedata\sounds\weapons\
nimble_pb.ogg
gamedata\scripts\
escape_dialog.script(暫定使用)
gamedata\config\mp\
mp_ranks.ltx
gamedata\meshes\weapons\pb\
wpn_pb.ogf(改造用のベースとして)
wpn_pb_hud.ogf(同上)
gamedata\meshes\weapons\nimble_pb\
wpn_nimble_pb.ogf(ベースをコピーして加工したもの)
wpn_nimble_pb_hud.ogf(同上)
gamedata\textures\ui\
ui_icon_equipment.dds
gamedata\textures\wpn\
wpn_pb.dds(参照用)
wpn_np.dds(↑を加工して作ったもの)
※今回は、実際に使ったもののみ記述する。
ltxを新規に作る場合は、weapons.ltxでincludeするのを忘れないこと。

CS/CoP
保留。だいたい同じだと思う。

オリジナルなんだから見た目もオリジナルに!

というわけで、今回はガワのほうを色々変更する。
絵心とかそういうのを考えないようにして、ちょっと見た目(テクスチャ)を弄ってやろう、という主旨でいってみる。
といっても、実際PB1sのサイレンサー部分を弄っただけの銃、という設定なので、その辺にぐるぐる黒テープ巻きました、的な外見を想定したい。

ちゃんとした大型MODのオリジナル銃のような、3Dモデルから変えたり、撃ったらすごいエフェクトが出たり、みたいな難しいことは一切ナシ。
ただし、テクスチャ関係に関してはこの応用で"とりあえず"何とかなるんではないかと。

※今回の作業は、一部インチキ臭い方法で何とかするので、あんまりオススメできたもんじゃないことを先に言っておきます。

最初に用意するもの

今回はテキストいじくってるだけじゃ済まない作業なので、いくつかツールを導入する。
DDS Converter 2
テクスチャ形式の変換用。
GIMP 2
変換したテクスチャを編集する。
DirectX Texture Tool
無くてもいい。DDS形式のテクスチャを開いて確認するため。
STALKER Icon Editor
アイコンの位置確認用。
↑4つはツール類の紹介で。

Stirling
使いやすいバイナリエディタ。普通は使わないけど、今回の"インチキ臭い方法"のキモになる。
DL:ttp://www.vector.co.jp/soft/win95/util/se079072.html


まずはアイコン

インベントリ内で表示されるアイコンのデータは、ui_icon_equipment.ddsに描かれている。
で、これをDDS Converterで開いて変換する。
起動→dds選択→Output Formatを(なんとなく)pngにして出力。
これで、同名のpngファイルがいっちょあがり。

これを、GIMPで開いてちょいちょい、と変更してやる。
元がPB1sなので、画像をコピーして、空いたところに貼り付ける。
このとき、ちゃんとアイコンの枠に収まるように微調整してやること。
枠は左上から50x50ピクセル単位で区切られているらしいので、画像編集中に座標を見て判断するか、適当に他のアイコンと見比べてはみ出ない感じに調整してやればだいたいOK。

とりあえず、編集した結果が↓。
粗いというか雑なのは腕の問題なので仕方ない。拡大もしてるし。

終わったら、DDS ConverterでPNGを開いてDDS形式にコンバートしてやる。

テクスチャをいじる

次はテクスチャ。ちゃんと構えたときの銃の見た目も変えていく。
といっても、やることはアイコンのときと同じ。
DDS Converterで変換して、GIMPで編集して、またConverterで戻してやる。

弄ったテクスチャが↓。全体的にペイントとかじゃないのでわりと楽な作業。

3Dモデルの設定

これで、アイコン画像とテクスチャ画像が用意できた。
あとは、アンパックしたバニラのデータから、PB1sのモデルを引っ張ってくる。
必要なのは、wpn_pb.ogfとwpn_pb_hud.ogf。
1つ目は、地面に転がしたときのアイテムの見た目。2つ目は、構えたときの見た目。
テクスチャは共通だけど、3Dモデルとしては別物で、"腕"のデータがちゃんと入っている。
手を抜かずに両方用意しておくこと。

これをコピーして、gamedata\meshes\weapons\nimble_pb\の下に、
wpn_nimble_pb.ogfとwpn_nimble_pb_hud.ogfとリネームしておく。

ここからがちょっと胡散臭い作業。
この2つのogfファイルを、バイナリエディタで開いてやる。
そして、"wpn\wpn_pb"と記述された箇所を見つけたら、"wpn\wpn_np"と変更して保存。

このとき、絶対に文字数を変えないことが重要。
バイナリとして整合性が合わなくなって読めなくなる。

ちゃんとしたテクスチャ指定をしなくても、この方法なら割とラクチンにテクスチャを変えられる。

カタチにしてみよう

では、最後に、w_nimble_pb.ltxを編集する。
今回は、以下の4行を追加するだけ。
  visual           				= weapons\nimble_pb\wpn_nimble_pb.ogf
  hud              	        = wpn_nimble_pb_hud

  [wpn_nimble_pb_hud]:wpn_pb_hud
  visual                   	= weapons\nimble_pb\wpn_nimble_pb_hud.ogf

visualで新しく用意したogfを指定し、hudで構えた時用の設定を作成する。
といっても、pb用のhudをベースにしてやれば、同じくvisualを変更するだけで済む。

最後のひと手間

これで、銃そのものは作成完了したが、入手する方法(ミッション)はまだ出来てない。
そこで、Nimble救出ミッションの報酬に突っ込んでみる。

編集するのは、gamedata\scripts\escape_dialog.script。
該当箇所
  function give_weapon_to_actor (trader, actor)
     dialogs.relocate_item_section(trader, "wpn_pm", "in")
     dialogs.relocate_item_section(trader, "ammo_9x18_fmj", "in")
     dialogs.relocate_item_section(trader, "ammo_9x18_fmj", "in")
     dialogs.relocate_item_section(trader, "wpn_knife", "in")
     dialogs.relocate_item_section(trader, "wpn_nimble_pb", "in")
  end
追加したのはdialogs.relocate_item_sectionを1行だけ。これで報酬に銃がついてくる。

出来上がったものが

こちらになります。
地面に転がしたときの見た目。クリックで別窓。

構えた感じ。クリックで別窓。

変更したアイコン。矢印マークも後からコピペした。

なんだかんだで結構マシに出来上がったかもしれない。
物がハンドガンなので、細かすぎて細部がよく分からない、ってのも大きいけど。

というわけで、銃の作成はここで一旦終了。

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2011年02月15日 01:09