hl2 mod への遠い道のり
とりあえず mod は作らざるを得ないような気がするので、 というか mod の作り方くらいはマスターした方が良さそうなので、 まずは visual c++ 2010 express をインストールして、 それから source sdk で hl2 single playper の mod を作る。
game_hl2_2005.sln を開くと 2010用に変換し直す。 別にここで困ることはない。
debug モードで build を開始する前に、
などに書かれていることを良く読んで、solution explorer で solution 'game_hl2_2005' の直下にある、 client_hl2 とか server_hl2 を右クリックして properties、そんで書かれた通りに直す。
Configuration Properties > Linker > Input > Ignore Specific Library to libc;libcd;libcmtd
Properties > Configuration Properties > Debugging (All configurations) → Command → browse → C:\Program Files\Steam\steamapps\(steamid)\half-life 2\hl2.exe うんぬん
Configuration Properties (all configurations) > Custom Build Step and in the Additional Dependencies field, type in $(TargetPath).
-allowdebug -novid -game "C:\Program Files\Steam\steamapps\SourceMods\MyMod"
などは必要だが、IsBIK がどうのとか memoverride.cpp がどうのというのはやらなくても動いた。 vc80.pdb というのは警告は出るけど無視して起動すれば良いらしい。 起動すると maplist.txt がないと怒られるが console で map (なんとか) と打てばそのマップがロードされる。 debug モードだとなんかいろいろ重いが一応動くようだ。 half-life 2のマップを読み込むこともできる (d1_trainstation とか)。
hl2.exe エントリポイントがみつかりません。GetCVARIF() Entry Point Not Found in vstdlib.dll などというエラーが出るが、これも無視して起動できる。
オリジナルの hl2.exe を起動しているから、モデルやテクスチャなどは half-life 2のままである。 hl2 の方でまずモデルやテクスチャを作成しておけば mod でも同様に使えるということだな。
npc_citizen というのはプレイヤーの味方で、npc_metropolice というのが敵なのだが、 npc_citizen に npc_metropolice と同様にプレイヤーを攻撃させたいのである。 味方と敵というのはどこで区別しているのだろう。 よくわからん。 とりあえず
- Creating an NPC
- Defining the NPC
- Giving an NPC Memory
- Condition
- Task
- Creating an activity
- Creating an animevent
- Creating a squadslot
- Creating an interaction
- Schedule
あたりとソースを見比べつつ、なんか新しい NPC 作ろうかなと思っている。 new_npc.cpp というのはそもそも無いのだろう。 monster_dummy.cpp はある。これをたとえば new_npc.cpp という名前で新しく保存してうんぬん、 という話ではなかろうか。 new_npc.cpp を作ったとしてこれをプロジェクトに追加するにはどうするんだ。 ただ書いて置いておけばよいというものではあるまい。
source mod をいじったのは今回が初めてではなく C++ もなんとなくわからなくもなく、 開発環境は visual C# で割と慣れたので、 そんな異様に難しくはないのだが。
ところでリンクの色が赤いと wikipedia に慣れた人なら、それがまだ執筆されてないページのように思えてしまうだろうと思うのだが、このページはわざとそういう色にしてあるのだが、どうよ。