Category: valve

visual c++ 2005 express にした。

comments visual c++ 2005 express にした。 はコメントを受け付けていません。
By , 2012年6月20日 (水) 20:09:38

うまく動かないので 2005 にした。 それでもリンカーのエラーが出まくってもうダメかと思ったがなんとかできたみたい。

'hl2.exe': Loaded 'C:\Program Files\Steam\steamapps\sourcemods\nogemod\bin\client.dll', Symbols loaded.
'hl2.exe': Loaded 'C:\Program Files\Steam\steamapps\sourcemods\nogemod\bin\server.dll', Symbols loaded.

hl2.exe が自分がビルドした server.dll と client.dll をロードしているからたぶん大丈夫なはずだ。

初代half-life 2 の mod を作る場合、hl2.exe は source sdk base のやつを使わねばならない。 configuration properties -> debugging -> command:

C:\Program Files\Steam\steamapps\(steamid)\source sdk base\hl2.exe

command arguments:

-allowdebug -novid -game "C:\Program Files\Steam\steamapps\SourceMods\(modname)"
1>------ Build started: Project: client_hl2, Configuration: Debug HL2 Win32 ------
1>Linking...
1>   Creating library Debug HL2/client.lib and object Debug HL2/client.exp
1>LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library
1>tier2.lib(MaterialSystemUtil.obj) : warning LNK4204: 'c:\nogemod\src\cl_dll\Debug HL2\vc80.pdb' is missing debugging information for referencing module; linking object as if no debug info
1>tier2.lib(tier2.obj) : warning LNK4204: 'c:\nogemod\src\cl_dll\Debug HL2\vc80.pdb' is missing debugging information for referencing module; linking object as if no debug info
1>Embedding manifest...
1>Copying to destination folder
1>        1 個のファイルをコピーしました。
1>Build log was saved at "file://c:\nogemod\src\cl_dll\Debug HL2\BuildLog.htm"
1>client_hl2 - 0 error(s), 3 warning(s)
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

このLIBCMTがどうのこうのという警告を消そうと/NODEFAULTLIB つけたり(ignore all default libraries を yes)、libcmtd を igonore specific library に付け足したりするとはまるのだ。 うぜえよリンカー。

hl2 mod への遠い道のり

comments hl2 mod への遠い道のり はコメントを受け付けていません。
By , 2012年6月20日 (水) 14:14:41

とりあえず 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 と同様にプレイヤーを攻撃させたいのである。 味方と敵というのはどこで区別しているのだろう。 よくわからん。 とりあえず

あたりとソースを見比べつつ、なんか新しい NPC 作ろうかなと思っている。 new_npc.cpp というのはそもそも無いのだろう。 monster_dummy.cpp はある。これをたとえば new_npc.cpp という名前で新しく保存してうんぬん、 という話ではなかろうか。 new_npc.cpp を作ったとしてこれをプロジェクトに追加するにはどうするんだ。 ただ書いて置いておけばよいというものではあるまい。

source mod をいじったのは今回が初めてではなく C++ もなんとなくわからなくもなく、 開発環境は visual C# で割と慣れたので、 そんな異様に難しくはないのだが。

ところでリンクの色が赤いと wikipedia に慣れた人なら、それがまだ執筆されてないページのように思えてしまうだろうと思うのだが、このページはわざとそういう色にしてあるのだが、どうよ。

大根も作った。

comments 大根も作った。 はコメントを受け付けていません。
By , 2012年6月15日 (金) 21:29:02

精神的にも時間的にも比較的余裕があったので、未来に投資するつもりでいろいろやってみる。 ネギを大根に改造する。 テクスチャは流用。 大根はネギより太いので手の中の位置合わせにけっこう手間取った。

ソースも更新

ついでに wordpress を 3.4 にアップグレード。 get_header_image() てのがよくわからん。 まあいいや。 いろいろランダムにヘッダの画像を表示させるようにした。

wordpress を入れるとついついテーマをいじってしまうな。 どぎつくない程度にどぎつい色調で(笑)

ネギを作った。

comments ネギを作った。 はコメントを受け付けていません。
By , 2012年6月14日 (木) 09:02:33

ある人からネギか大根を作って欲しいと頼まれたので、作ってみた。

ソースごと公開している

Youtube にも動画をアップロードして、できるだけ拡散するつもり。 こういうものは自分だけ作れたと喜んでいても大した意味はない。 いろんな人が真似して作るようでないとダメだ。


いわゆる「バールのようなもの」をネギに改造したのだが、 crowbar が改造できるということは5年くらい前から知っていたが、自分でやってみるとけっこうはまる。 crowbar には w_crowbar という地面に落ちている crowbar と、 v_crowbar という腕と一体になってるのがある。 v_crowbar の方はウェイトマップとかボーンが付いているのだが、 このウェイトマップが例によって壊れているので直す。 crowbar と手首までを R_HAND、二の腕を R_ForeArm、上腕を R_UpperArm に塗れば良いだけ。

それから、90度回転してるらしくて Model Viewer ではプレビューできるのだが、 うまくゲームの中で見えるようにならない。

同じ事で悩んでいる人を発見して、

$origin 0 0 0 90

で解決した。 一度できてしまえば後は簡単だろう。


敵にもネギを持たせてみた。 こちらは w_stunbaton というもので、combine の attachment の一つなのだな。 ややこしい。

vtex2

comments vtex2 はコメントを受け付けていません。
By , 2012年6月13日 (水) 10:47:01

目玉にはまず真ん中に瞳孔 (pupil) があり、その外に虹彩 (iris) があり、その外がいわゆる白目である。 pupil と iris は混同されることが多いようだ。 日本語で瞳とか黒目とか言う場合は、おそらく瞳孔と虹彩を合わせた部分を言うのではないか。

で、瞳孔は黒で良いよね、と思うが、ネコ科の動物のように、瞳孔を光らせたい人もいるかもしれない。 source engine features に

Advanced Material Rendering. Apply diffuse, specular, detail, emissive, iridescent and other special effects.

とあるから、マテリアルで発光効果を使うことはできそうに思われるのだが、 具体的にはどこにも説明がない。 疲れたのでとりあえず放置することにする。 黒でいく方向で。

虹彩に関しては、人種や種族や種(?)によっていろんな色があるのが、ファンタジーの世界では当たり前だから、 変えられるようにしたほうがいいよね。

白目は白でいいだろ、と思うのだが、赤にしたいとか緑にしたい人もいるらしく、困ってしまう。

実は瞳が出ないという現象があったのだが、 目玉の位置がずれていてもそういう現象が起きるが、今回はテクスチャの問題だった。 まず、vmt で、シェーダーを vertexlitgeneric ではなく、eyes にしなくてはならない。 さらに $iris というパラメーターで瞳のテクスチャを指定せねばならない。 たぶん、$iris がなかったから瞳がレンダリングされなかったのだろう。

half-life2 では白目と黒目を別々のテクスチャで描いてある。 注視するのに瞳が動くからである。 counter-strike source の場合はおそらく白目も黒目も全部顔のテクスチャとしてまとめて描いてあると思う。 そんなに細かく描き分けてないしそんな必要もないわけだ。

で、half-life2の場合には白目と黒目、左右別々なので、全部で四枚のテクスチャを vtex でコンパイルせねばならぬ。 めんどくさい。 うまい方法はなかろうか。 バッチファイル書くのがめんどいのよね。 名前を eyeball_l, eyeball_r, pupil_l, pupil_r で統一するか。 同じフォルダにバッチファイルも入れてやって一発変換とかのが楽ではないか。

で、テクスチャの名前がかぶるのは困るのです。 一人一体キャラクタモデル作るとして、ユーザ名のフォルダ掘ってそこに入れるようにしようかななど。

キャラクタの名前は Group01/Female01 などと決まっている。 テクスチャの名前や場所はどこでもいい。 モデルとテクスチャではちと事情が違う。

10月までに何か作らねばならぬ。 今のところ、half-life2 multiplayer mod で、高校生どうしネギや大根もって殴り合うゲームにしようかと思う。 で、武器をプレイヤーが死なない程度に弱くしておけばよいのではなかろうかと思う。 高いところから落ちて死ぬのはまあ仕方ない。

実はまじめに日本人の高校生作るよりか、角生やしたり耳生やしたりする方がわかりやすく簡単なのである。 どっちへ行くかはまだわからない。

vtex

comments vtex はコメントを受け付けていません。
By , 2012年6月11日 (月) 12:47:01

今日のテクスチャコンパイルして読み込む演習はあっさり終わってしまい、時間があまってしまった。 まあ、みんな理解できたことは良いことだが。 はじめてやることは時間の見積もりができずに困る。

faceposer

comments faceposer はコメントを受け付けていません。
By , 2012年6月11日 (月) 05:00:37

Choreography creation/Community Showcaseというのが、参考になるかと思ったが、 リンク切れだったり古すぎたりわけわからんかったりしてどうにもならん。 Sdk faceposer

Female 06 (naomi) をいじる。 めんどうなところはすべて前処理しておいた。 顔をいじるだけなら、簡単なのかもしれんし、もしかしたら逆にものすごく難しいのかもしれん。 それは、学生にやらせてみないとわからん。

五年前

comments 五年前 はコメントを受け付けていません。
By , 2012年6月9日 (土) 20:13:19

このブログは2007年6月頃 から始まっているのだが、5年前も今も prop_physics をマップに仕込んだとか、 やってることがまったく同じ(笑)。 もう五年もやってるんだねえ。

Team Fortress 2

comments Team Fortress 2 はコメントを受け付けていません。
By , 2011年11月3日 (木) 08:33:31

卒業生の一人に、Team Fortress 2が無料化されたと聞いて、調べてみると、確かに今年の六月くらいにフリーになっているようだ。 Steamライブラリに自動的に表示されるわけではないが、 webサイトからインストールすることができる。 なぜフリーにしたかというと、アイテム課金制にしたのとプレミアム会員というのを作ったかららしい。 ゲームも無料、source sdk でマップ制作も無料というのであれば、counter-strike から移行しても良いかもしれん。

PayDay the Heist

comments PayDay the Heist はコメントを受け付けていません。
By , 2011年11月3日 (木) 08:31:20

で、例の卒業生にPayDayというのが面白いよと勧められた。 10月21日発売というから、つい最近だ。 デベロッパーがスペインのOverkill Softwareというところ。なんか名前がやばすぎる。 ゲーム内容も同様にかなりやばい。 パブリッシャーはソニーオンラインエンタテインメントというところ。 PS3でも発売されるのかと思って調べてみたらやはりそうだった。 PSNとSteamは最近仲良しだからな。

自然情景

comments 自然情景 はコメントを受け付けていません。
By , 2010年6月5日 (土) 16:54:22

凝り出すときりがない。 Displacement と env_steam はかなり極めた。

エレベータ

comments エレベータ はコメントを受け付けていません。
By , 2010年6月5日 (土) 16:51:52

エレベータも作り直す。 テクスチャの張り方や3Dの造形など、ぞんざいにやっていると、学生に悪い癖がつくかとおもって・・・。

rotbutton と door

comments rotbutton と door はコメントを受け付けていません。
By , 2010年6月5日 (土) 16:48:42

授業週数が増えたせいと、毎年授業の効率と密度は上がっていくので、ネタの仕込みがいつまでたっても終わらない。 で、func_rotbutton など使ってみる。 momentary_rot_button も使ってみたくなるが、 ネット上にもろくな情報がない。 で、momentary_rot_button には Position という Output があるが、func_door だと SetPosition という Input がない。 だが、func_movelinear には SetPosition がある。 ははあ、Half-Life などでは、momentary_rot_button と func_movelinear を組み合わせて、 任意の位置まで開くドアを作っているのだなと推理する。 でやってみるとあっけなく動いたのでめでたしめでたし。

しかしこんなことまで教える必要があるかといつも思う。

エレベータ

comments エレベータ はコメントを受け付けていません。
By , 2010年6月4日 (金) 09:06:30

けっこうがっつりエレベータを作ってみる。 logic_relay を使う必要あり。

たなびく煙

comments たなびく煙 はコメントを受け付けていません。
By , 2010年6月3日 (木) 13:26:49

env_smokestack を使ってみた。 風なし。


風とか。



Panorama Theme by Themocracy