top / 1 / 2 / 3 / 4 / ex1 / 5 / 6 / ex2 / 7 / 8 / 9 / 10 / 11 / ex3 / 12 / 13 / 14 /..../ 関数 / 覚え書き / 倉庫
第2回 【 何でも良いから改造する 】

では、早速中身のゲーム内容を見てみましょう。
・・・わけが判りませんね?大丈夫です。
行いたい改造に応じて、扱うファイルやフォルダは決まってます。
取りあえずフォルダ「gamedata/config/creatures/」の中にある「actor.ltx」でも覗いて見ましょう。
開くのはメモ帳で構いませんが、MOD作成にはテキストエディタと言うものがあると非常に非常に強力な味方になってくれます。

番外編3で無料のテキストエディタを紹介してますので、まだテキストエディタを使ったことの無い人は是非試して見てください。
・grep検索
・タグジャンプ
・並べて表示
・ファイル比較

この辺りの機能はメチャクチャ重宝します。
同じファイルでv1.0004とv1.0005で変更の有無や変更箇所を知りたいとか言う作業も、殆ど一瞬で終わります。
更にマクロの使い方を覚えれば作業の自動化も可能になるので、場合によっては作業効率が100倍以上になります。(つーか、オイラはもうマクロを使うのが当たり前なので、この作業効率が普通になってる。開発やってれば常識なんだけどね。)

ちなみにオイラは昔から「秀丸エディタ」を愛用しています。
他のテキストエディタは有名どころでは「VZ Editer」などもありますが、こちらは結構値が張ります。
とにかく無料でやりたいのであれば、ベクターなり窓の杜なりでフリーソフトのテキストエディタが見つかると思うので、その辺りを色々試して自分に合ったものを見つけると良いと思います。


さて、テキストエディタの宣伝はこれくらいにしてMODの話に戻りましょうか。

actor.ltxを適当なフォルダにコピーして(忘れないこと!)、テキストエディタに放り込むと何やらアルファベットと数字の羅列があるのが見えますね。
実は、actor.ltxは主人公の情報を決定するファイルなのです。
ここに書いてあるものは全て主人公の能力、性能を示していると考えてください。
何行目かに文字化けして意味不明な漢字がありますが、少なくとも今は無視して構いません。
では練習がてら、ちょろっと主人公を改造して見ましょうか。
21行目にこんな行がありますね。

jump_speed = 6.

これは主人公のジャンプ速度を決定している数値です。
なお、このゲームにおけるジャンプ力は「どのくらいの高さまでジャンプできるか」ではなく、「どのくらいの脚力で地面を蹴るか」で決定されると考えてください。
「6.」は「6.0」の略です。「6」と書いても全く同じです。
では、とりあえずこの数字は「8」にでも変更してみましょうか。これだけでも結構体感は変わります。「あとちょっと届かない」とか感じる場所なら、これでかなり届くようになるはずです。
では、この変更をゲームに反映してみましょう。変更したactor.ltxを保存して終了します。

どうすればこれがゲーム内容に反映されるかと言うと、このファイルactor.ltxを「フォルダ構成ごと」インストールフォルダに置けばokです。
「actor.ltx」が入っていたのはフォルダ「creatures」、更にこのフォルダが入っていたのはフォルダ「config」、そして更にこのフォルダが入っていたのは、フォルダ「gamedata」ですね?

つまり、こんな構造でフォルダを作り、一番底のフォルダにactor.ltxを入れると言った感じになります。
□gamedata(フォルダ) ┗□config(フォルダ)  ┗□creatures(フォルダ)   ┗■actor.ltx(ファイル)
では、これをコピーしてインストールフォルダ(通常はC:/Program Files/THQ/S.T.A.L.K.E.R. - Shadow of Chernobyl)に貼り付けてください。
あ、ゴチャゴチャになるといけないので、既に使用しているMODがあるのであれば、取りあえず全て外しちゃってください。
すっぴんの状態を前提として話を進めますね。
さて、インストールフォルダを見ると先ほどアンパックしたファイル「gamedata.db0〜gamedata.dbc」がありますが、それの他にフォルダとして「gamedata」が追加された状態になったはずです。
さて、これでデータ改造は完了です。
前項【 MOD開発の準備 】でも触れましたが、プログラムは原則的にこのファイル「gamedata.db*」を読み込んでゲームを動作させます。
しかし例外として(ここが一番肝心な部分です)「gamedata.db*」に入っているのと同じ環境がフォルダ「gamedata」として存在したら、そちらを優先して動作するのです。
そして、そのフォルダ「gamedata」に存在しないファイルに関してのみ、ファイル「gamedata.db*」の中から読み込むと言うわけです。
□gamedata ┗□config  ┗□creatures   ┗■actor.ltx
わざわざこのような階層構造のフォルダを作ったのは、gamedata.db* に入っているのと同じ環境を作るためなのです。
今回の場合、「actor.ltxは改造したものを、それ以外は通常のデータで」と言う指定でゲームを動作させることになるのです。
この部分が正確に理解できたなら、もうMODを作るための障害は(直接的な技術以外には)殆どありません。
それでは、講釈はこのくらいにして動かしてみるとしましょう。

・・・どうですか?ジャンプ力が上がっていますね?
こうなるともっとバカっぽい改造をしたくなるのが人情って奴ですね。
では、先ほど変更した、

jump_speed = 8

これを「100」とかアホな数値に変えてみましょう。
で、実行すると・・・。

ss01

スゲー飛びます。まだまだ飛びます。ハハハ人がゴミのようです。
お、落ち始めましたよ?地面が近付いてきて・・・。

ss02

そりゃあこうなりますよね。
まあ、アホな遊びは後のお楽しみとして、取りあえずここまで作ったものを整理しておきましょう。
(次回に続きます)



top / 1 / 2 / 3 / 4 / ex1 / 5 / 6 / ex2 / 7 / 8 / 9 / 10 / 11 / ex3 / 12 / 13 / 14 /..../ 関数 / 覚え書き / 倉庫
ニャギ茶★SPOT --工作部屋--