Category: valve

counter-strike: source 仕様変更

comments counter-strike: source 仕様変更 はコメントを受け付けていません。
By , 2013年4月18日 (木) 15:22:44

まだ正式なアナウンスも見てないし、 wikipedia の記述も変更ないのだが、 おそらく今週あたりに、 counter-strike: source が gcf ベースから vpk ベースに変更になった。 同じ source sdk でも、比較的新しい counter-strike: global offensive、left 4 dead 2 などは書庫ファイルが vpk になっていて、

c:\program files\steam\steamapps\common

以下にインストールされる。 昔からあるゲームは

c:\program files\steam\steamapps

いかに gcf という書庫ファイルがインストールされ、 gcf は複数のゲームに共有されており、 個別のゲームは

c:\program files\steam\steamapps\<steamId>

以下にインストールされる。

counter-strike: source は古き良き gcf だったのが、

C:\Program Files\Steam\steamapps\common\Counter-Strike Source\cstrike

cstrike_pak_000.vpk

などというふうにインストールされており、ここに models や materials や maps などというフォルダも一緒に入っている。

source sdk を立ち上げても「そんなゲームは知らないよ」と言われる。 では何か新しい authoring tool であるのかと思うが、 それらしきものは見当たらない。

で、half-life 2 であればこれまでどおり source sdk が使えるようであるので、今後は counter-strike: source ではなく half-life 2 の方で授業もやり作品制作もやることになろう。

問題は、事前に何のアナウンスもないこと、 counter-strike: source 用に何ヶ月もかけて資料を用意してきたのに無駄になったこと、 half-life 2 のアカウントを追加購入しなきゃならないこと。 すでに授業は始まってしまってたということ。

なんとかリカバー可能だがこの年度初めの忙しいときに・・・。

cs:s と cs:go はシステム的には統合されちゃったんじゃなかろうか。 これからは valve 的には cs:go を売っていく。 cs:s はまだたくさんプレイヤーがいるから、ついでにサポートしていく。

もうね、 source sdk は捨てて clip studio あたりに移行しようかと思っている。 celsys と yamaha が vocaloid を共同開発するようになったようだが、 あいからわず celsys は飛ばしている。 おもしろい会社だ。

Half-Life: Bot

comments Half-Life: Bot はコメントを受け付けていません。
By , 2012年9月16日 (日) 02:51:33

Half-Life: Bot というのを始めた。 Half-Life の NPC (non-player character) を作ったわけではない。 いや、そういうのも、作ろうと思えば作れるかも知れないが(最近疲れてしまってその方面は休止中)、 今回作ったのは twitter の bot で、セリフは half-life 2 とか portal とか counter-strike に出てくるやつ。 もしかすると、Left 4 Dead もセリフのデータ抜き出せるのかもしれんが、 L4D は私はほとんどやらないし興味もないのでやってない。

gcfscape などを配布しているnem’s tools というサイトが消滅したのかと思ったら普通に動いていた。 ともかくめでたい。

それで、Portal とか Half-Life 2 とかは gcfscape で .gcf という書庫ファイルから resource というフォルダにある closedcaption_japanese.txt とか subtitles_japanese.txt とかそういうのを抽出してくれば、 セリフのデータがまるごと入手できる。 それをちゃちゃっと Ruby かなんかで正規表現でセリフ部分だけ抜き出して、 短すぎるやつとか 140字以上の長さのは捨ててランダムに twitter でつぶやけばよい。 Ruby に Rubytter というライブラリがあるらしいんで、それをさくっと使う。 twitter で OAuth とかも昔ちらっとやったのでだいたいすぐわかった。

それはそうと twitter のすべての API が XML (RSS や Atom を含む)のサポートをやめて JSON に統一するそうだ。 それは良いとしてすべての API において OAuth を必要とするようになるらしい。 めんどくさくてとても困ります。 少なくとも授業で学生にいちいち twitter のアカウント取らせて OAuth でなんとかキーとかなんとかキーとか取得させてとかって教えるのはもう勘弁って感じです。 ゼミ生でやりたいというやつがいれば教えてあげるが、そういうのは自分で勉強しても大したことではないし。

そんで話は戻るが日本語のキャプションもあって日本語の140字の方が英語の140字よりはるかに情報量が多い。 当たり前だが、しかしどうも日本語に訳した台詞には元の英語のような味がない。 わかりやすく意訳してあって意味をわかるには良いのだが、雰囲気がなかなかでない。 で、英語のBotにしたのだけど、あまりフォロワーが増えないのよねえ。

でさらに話は戻るが、 Portal 2 はなんと .gcf を使ってないんですよ。 台詞関係に関して言えば、 steamapps\common\portal 2\portal2\resources 辺りに入っている。 なんか仕様が根本的に違っているらしい。 steamapps\common\ の中には、steam以外で開発されてsteamに移植されたと思われるゲームのデータが入っていることが多いのだが、 source sdk で出来てる portal 2 や cs:go まで入っているとは意外だった。 これからは common の方に統一しようというのだろうか。 ここでは .gcf ではなく .vpk という書庫ファイルが使われている。 こいつの使い方もよくわからん。

half-life 2 以前のゲームにはそもそも closed caption とか subtitle というものがない。 字幕がないわけだ。 だからテキストファイルも存在しない。 耳で聞いて文字を起こせるほどヒアリングに自信がない。 いろんなサイトからかき集めてきているけどね。 台詞を羅列しているサイトはいくらでもあり、まあ特に著作権的にうるさく言われることはないと思われる。

振り付け

comments 振り付け はコメントを受け付けていません。
By , 2012年7月23日 (月) 15:34:03

振り付けとトリガー基本その1 というものを書いたのだが、 こういうものは学生にとって簡単なのか難しいのか。

ボタンを押すと開くドア などというのは昔から教えているのだが、このトリガーをenableしたりkillしたりして振り付けや台詞をイベント発生のたびに切り替える、 というのはかなり込み入っている、 つまり、もう一段階層が深いような気がする。

言われれば作れるかもしれないが、 自分で考えて作れと言われれば相当難しいだろうと思う。 問題は、シナリオを書いて、それをこういうロジックにいちいち置き換えなくてはいけないということ。 そのためにはけっこうなサンプルを作り動作確認しておかねばならない。 けっこう神経を使う作業だ。

プログラミングのようなものだと思うが、こういうものをプログラミングと呼ぶ習慣が私にはない。

教室

comments 教室 はコメントを受け付けていません。
By , 2012年7月22日 (日) 20:40:19


ふつう世の中で言う3DCGというのは、キャラクターモデリングしたらボーン仕込んでぐりぐり動かしてレンダリングなわけだが、source sdk でそれをやってしまうと普通の 3DCG となんら変わりなく、 なら普通の 3DCG やればいいじゃん、という話になってしまう。 source sdk を使うならその豊富なモーションキャプチャのライブラリを極力流用しつつ、 それ以外の部分に労力を振り向ける、 そういう戦略でなくては意味が無いのではないかと思う。

それでマップ作りなんてものは一番簡単だろうと思っていたが、 実はかなりきちんとやらないとリアリティが出てきてくれない。 ちゃんとライト仕込んで、窓には窓枠つけて、机や椅子もそれなりに作ってあげないと、 counter-strike:source と違って キャラがリアルな分、 half-life2は背景もきちんとディテイル作らないとうまくマッチしてくれない。

以前からアーティスティックな counter-strike:sourceのマップ作る人はいたが、 cs:s に関して言えば、マップはそれほどちゃんとしてなくてもゲームとしてはそこそこ楽しめる。 素人が作っためちゃくちゃなマップでも、それはそれなりの味として楽しめてしまう。 スケールが狂ってても、テクスチャが変でも、コンセプトがめちゃくちゃでも。 トリガーとか仕込まなくてもただのマップを作ればゲームとして成立しえる。 3DCG初心者の演習課題にもなりえた。 しかし、half-life 2 のマップはそれなりにリアリスティックに作らないといけない。 キャラのモデリングも振り付けもシナリオもちゃんとしてないと。 つまり、中身がちゃんとなくてはならない。

今のところはやっと trigger_changelevel を使いこなせるようになり、 マップとマップをつなぐことができた。 要するにあまり複雑なマップを作ってしまうとマップ間の移動が重くなりすぎてできないということ。 いまだに苦手意識があり、おそるおそるやってる。

マップからマップへたとえば func_physbox などを持ち運ぼうとすると新しいマップでは消えてしまう。 そういうことは考えない方がほうが無難であって、 マップはリニアに進んで、イベントはマップごとに完結するようにしたほうがよかろう。 つまり、初代の Portal のように、基本はダンジョンで、個々のマップの中だけでタスクは完結してて、 マップ間の移動はエレベータみたいな密室空間を経由する。 source sdk でもなんでもやはりマップ間の移動とか考えると一番楽なのはダンジョン型なのだ。 Portal は half-life 2 のようなリアリティよりも、新しいタイプのゲームをできるだけ短期間に作ろうとした、 プロトタイプのようなものだったのではないか。 そして Portal2 では広大なマップも作れるようにきちんと最適化した、のではないか。

Mod で作り出すといろいろ面倒なのでまずは half-life 2 の方でマップを作り、 モデルもテクスチャもありものですます。 マップが完成したら Mod へ持っていってテクスチャとかモデルとかセリフを差し替える、 というのがよいのではないか。 そうすればモデル・テクスチャ係とマップ係は完全に分業できる。 いまさらながらキャラが話すセリフというのはゲームにおいて極めて重要だなと思う。

武器もモンスターも出てこない、敵も味方もいない、戦闘もない、 たんたんと日常生活をつづったような学園物のゲームを一つ作ってみたい。 案外FPSはそのへんがまだ全然未発達なのではないか。

なんか、今年の正月休みあたりから突っ走ってきたせいか精神的に疲弊してきた。 少しまったく別のことでもやった方がいいかもしれん。 半年くらいは一つのことに熱中できるのにね。

病院マップ

comments 病院マップ はコメントを受け付けていません。
By , 2012年7月8日 (日) 11:36:08

照明がきかない時は

mat_fullbright 0

Gordon Wakes up というチュートリアルがあるので病院マップに仕込んでみる。 プレイヤーはゲームの開始時にベッドで寝ているのだが、目を覚まして起き上がる。 FPSの始まりとしては非常にメジャーなパターンだ。 Portal もそうだし、Sin Episode Emergence もそうだし、 Assassin’s Creed もある意味そうだ。 half-life 2 の中でも gordon が alyx に助けられるところで使われている。 枚挙にいとまがないとはこのことだ。


ラジオから音楽が聞こえてくる。 例によって久原先生の羽田労働歌 を使わせてもらう。 ambient_generic。 mp3でもそのまま再生可能。 ラジオに触れるとなり出して、もう一度触れると止まる(toggleになってる)。

onFoundPlayer は npc_metropolice ではうまく動くのだが、 npc_citizen ではなぜかうまくいかない。 npc_citizen には onPlayerUse があるが、機能が限定されているような気がする。 同じことだと思うが、 npc_kleiner には onPlayerUse すらない。


テクスチャを halflambert にすると少しだけ陰影付けがましになる。 キャラクターのテクスチャは少なくともすべてそうすべき。 phong も使いたいがよく使い方がわからん。なくてもいいか。

病室で目覚めてHEVスーツを着るところまではできたが、 その先のストーリーがまるで思いつかない。

これからどっちの方向へ進んでいけばいい? それこそ、学生の意見も聞きながらやればよさそうだが。

ちなみに phong というのは中国人の名で漢字だと裴祥風 (Phong, Bui Tong) と書くらしい。 と思ったらベトナムのハノイ生まれだった。 ふーむ。 ベトナムはフランスの植民地だったので最初はフランスの大学に進学し、 それからユタ大学の Ivan Sutherland の下でCGの研究をしたらしいぞ、by wikipedia。 33才、学位を取ってスタンフォード大学教授になってすぐに白血病で死んでいる。 1975年。まさにアメリカが敗北してベトナム戦争が終わった年だ。 宿命めいたものを感じるよな。

座らせ方

comments 座らせ方 はコメントを受け付けていません。
By , 2012年7月6日 (金) 13:00:21


未だに完全に把握できてないのだが、椅子の高さは17。 info_node_hint と椅子は接していてもいいが重なっていてはだめ。 info_node_hint は地面から少し浮かす。その高さには意味はない。

hammer editor の top view で見ると、info_node_hint から黄色い線が出ている。 これが顔が向く向きになる。

どの NPC が info_node_hint に向かうかは ai_goal_actbusy で設定する。 NPCの名前にはワイルドカードが使える(citizen* とか)。

複数人いるときは着席するまでに時間がかかることがある。

座る姿勢は scripts/actbusy.txt に定義してある。 d1_t01_BreakRoom_Sit01_Idle、 ACT_BUSY_SIT_CHAIR、 sitccouchtv1 などが使いやすい。

halfwit-2: half-life2 bits and pieces (source mapping) tutorials AI から 55 Ai_goal_actbusy などに行くと詳しい。

本家の info_node_hintactbusyai_goal_actbusy なども参照。

未だに座る姿勢など謎が多い。 椅子に座る姿勢でベッドに座らせちゃいけないとか? 謎だ。

!target

comments !target はコメントを受け付けていません。
By , 2012年7月5日 (木) 11:46:35

choreography とか faceposer がさっぱりわからんのでもう基礎からやることにした。

sdk_faceposer.vmf を見ると、 logic_choreographed_scene で target が指定されてないものがあり、 指定されているものもある。 なぜターゲットの NPC の指定が無いのに動くのかというのをまず調べてみた。 すると scene は VCD (Valve Choreography Data) というものに結びつけられているのだが、 VCD の中で actor 名がハードコーディングされている場合にはその actor にしか scene が働かないので、ターゲットを指定しなくてよい、ということのようだ。

いろんな種類の NPC が同じ VCD を共有する場合には、 ターゲットの actor の名前を !target1 とか !target2 などという名前にしておいて、 scene の中で target1 はどの NPC ですよとか記述するのでよい。

single player でプレイヤーは !player。

hoge という NPC が joge という trigger を起動して、joge が koge という logic_relay を動かしたとすると、koge の出力に対して hoge が !activator、joge が !caller、koge が !self となる、などなど。

まだまだわからんことがある。

看護師

comments 看護師 はコメントを受け付けていません。
By , 2012年7月1日 (日) 21:03:42


病院のマップを作ろうと思い、というよりは、昔 counter-strike:source 用に作った病院のマップを half-life 2用に作り替えようと思って、医者は Kleiner でいけるとして看護師のモデルも作ろうかと思い立ち、昨日からこつこつ作っている。

最近ウェイトマップはいつも壊れている。 思うに、もともとのウェイトマップで重み付けがされてないポイントというのがあって、そこが適当に補完されて、でたらめな重み付けがされているのが原因なのではなかろうか。 そしてそのでたらめに入っている重みというのはたいてい1種類か2種類程度なので、 そのおかしな重みを見つけ出して速やかに消去する。

softimage の weight map editor は重みが0になるように消去できない仕様なので、別の本来そこにあるべき重みを塗ってやらなきゃならないのだが、そういうのはたいてい入り組んだ中のほうのポリゴン、たとえば口の中とか襟の中のようなところにあるので、面倒だ。 weight map 塗る作業もずっとやってることなのでだいぶ慣れてきた。 トータルで一番時間がかかるのはやっぱテクスチャを塗る作業なのだ。

スカートというのは、実に難しい。 スカートはそれ自体にボーンを入れないとうまく制御できないのだが、 そんなモデルは source sdk にはたぶんない。 おなじような理由で髪の毛を長くするのもボーンを入れないと難しいが、そんなモデルはない。 髪が短くてジャージ着てるようなのが一番楽なのだ。

いろいろためしたが結局ダメであり、一番良い方法はスカートの中をがらんどうにして腰は作らない、 足は腰の付け根までしか作らない、スカートは板ポリにしてしまう、 などとやるしかない。 さもなければスカートにボーンを仕込むかだ。 別にスカートの中をのぞき込むような状況がない (たまたまそういう状況があってもきにしない) 場合はスカートは作ってもその内部は作らないようにすればOKだ。

これは看護師ですといってもたいてい看護師は普通の白い服を着ているだけなので、 頭に看護師ですよという頭巾をつけないとさまにならない。 あと胸に医療用の携帯電話とか体温計とかペンなどを挿して、名札を付けている。 しかし、帽子のようなものをかぶせるとどういうわけか飲食店のバイトの制服にみえてしまう。 或いはテニスかゴルフの選手か。

顔は、とにかく陰影を消してフラットにすると日本人風の顔になる。 眉間や鼻梁など凹凸感を思い切り良くなくせばよい。 眉毛もざっくりまず消して上から描き直すことだ。 そんな顔のテクスチャはお多福そっくりだ。 今も昔も日本人の美人顔というのはお多福なのではなかろうか。

ま、ともかく、顔の彫りの深さというのはモデルをいくらいじってもそんなには変わらない。 テクスチャをいじれば劇的に変わる。

テクスチャをつるつるにしてしまうとリアリティが失われるからさらに細かな描き込みをしなくてはならない。無限に時間がかかる。

それから、source sdk には生足生腕の女性のモデルなど無いから、 ズボンとか服の袖のぶんの太さを削って肌のテクスチャをかかなくてはならない。 このときどうしても細くするのが面倒だから、筋骨隆々な女子になってしまいがちだ。 気をつけるべきことだ。

steam 利用規約

comments steam 利用規約 はコメントを受け付けていません。
By , 2012年6月30日 (土) 06:20:49

法律や規約の解釈など、したくはないのだが、 steam 利用規約 によれば、

C. ソースエンジン用 SDK

ユーザーの利用権は、Half-Life 2 やこれと互換性のある Valve の他のゲーム製品において使用されるコンピュータゲームエンジン(以下「ソースエンジン」)用ソフトウェアを開発するための、Valve 製ソフトウェア開発キット(以下「SDK」)の利用権を含んでいる場合があります。 ユーザーは、ソースエンジンと互換性がありソースエンジンを使用している Half-Life 2 または Valve の他のゲーム製品の修正版(以下「Mod」)を開発する場合に限り、非営利目的で SDK を使用、複製、および修正できます。 ユーザーは、非営利目的で無償公開および配布する場合に限り、Mod を複製して、Half-Life 2 または Valve の他のゲーム製品のライセンスを有するエンドユーザーへのみ配布できます。

E. 各種制限

SDK に関する第 2 条(C)項の規定に基づき許されない限り、ユーザーは、Valve より書面による事前許可を得なければ、Steam ソフトウェアか Steam を通じて利用できる他のソフトウェアの一部またはすべてについて、コピー、フォトコピー、複製、翻訳、リバースエンジニアリング、ソースコード抽出、修正、逆アセンブル、逆コンパイル、派生成果物の創作、財産権表示または標示の削除などを行えません。

つまり、非営利目的で、Modを制作する限りにおいては、ソースコードの抽出、修正、複製などは行ってよい、と解釈していいわけだよな。 Modと称していろんなキャラとか作り散らかしているが、ここまではよくてここからはダメ、というのはまあ無理だと思うんだよね。 モデルというのはテクスチャだけでなくてポリゴンやらアニメーションやらのすべてからできている。全部を自分で作り出すことはできない。どうしても一部を改変することになる。なら、もう「自分のオリジナルのモデル」を作ることにこだわっても仕方ないだろうと思う。 たとえば、half-life 2 や counter-strike:source のマップやキャラクタを作るということはそのテクスチャも当然使うわけだ。それを steam プラットフォーム以外のところで流用すれば当然アウトなわけだが、steam 上で動くゲームで利用するのはOKということで良いのだと解釈しているのだけど。

ジャージ男 ver.0.0 からの遠い道のり

comments ジャージ男 ver.0.0 からの遠い道のり はコメントを受け付けていません。
By , 2012年6月29日 (金) 23:49:50

Korin modなどに触発されて、 自分でもキャラクタを作り始めたのは 2008年の11月頃から。 最初は jajiman00 とか jajiman01 とか jajiman02 とか jajiman03 とか。 jajiman04 から目玉が動くようになり(吉田戦車みたいなキャラだ)、 顔アニメーションも仕込んだjajiman05 を経て、 それから今度は女性キャラを作り始めて 眼鏡をかけさせたり。 年が明けて2009年、割烹着のオバサン作ったり。 卒業生が作ってくれたまんだら屋の良太のキャラを 全員集合させたりした。 それからずっとブランクがあったのだけど、 今年の正月に clip paint lab やら mmd やらをいじったのをきっかけにまた sourcesdk でキャラを作り始めた、というわけだ。

たいへんだった。たぶん half-life 2 の初期の頃にマップとか mod とかモデルとか作ってた人たちは、 おそらく quake とか half-life 1 の頃からすでにある程度作った経験があったのだろう。 私の場合 half-life 2 になって一からのスタートだったから、とてつもなく遅れた。 時間がかかった。 でもなんとか先達たちに追いついてきたように思う。 2009年から2012年までの長いブランクがなければもっと早くここまでたどり着いただろうと思うと、 かなり惜しい気持ちもある。

痛い目にあったときは忘れないうちにブログに書き残しておこう。

source engine 2006 と 2009 は vtex.exe に互換性がないのだった。 2009 でコンパイルしたテクスチャは 2006 では使えない。 普通 half-life 2 は 2009 で、mod は 2006 で作るから、 half-life 2 用に作ったテクスチャを mod で使おうとするとすべてコンパイルし直さなきゃいけない。

あと、barney や monk などを gcfscape で取ってきて mdldecompiler でデコンパイルしてそのまんまコンパイルしても、顔のテクスチャだけがおかしい。 これもやはり vtex.exe だか vtf のバージョン違いによるものらしく、 tga から vtf を作り直せば直る。 めちゃくちゃ悩んだ。

講評会とか

comments 講評会とか はコメントを受け付けていません。
By , 2012年6月26日 (火) 09:25:35

akismet という wordpress のプラグインがいきなり障害をおこして wordpress がもたつくようになったので無効にしておいた。 まあそんなに慌てることでもなかろう。

cg演習ia最終課題の提出だが、models、materials、maps の三つのフォルダをバッチファイルで LANDISK に提出させておいて、最終日に教卓PCで一人一人それら三つのフォルダを入れ替えて実演してもらう、ということでよかろうと思う。例年よりわりとまともな講評会になる気がする。

source sdk を教材として飼い慣らすのにやっと成功しつつある気がする。 source sdk はそもそも開発環境であって普通のアプリケーションですらないので、 いろいろ問題はある。

今後cg演習やゼミ制作は完全に hl2 single player mod に移行しても良いのではないか、 という見通しが立ってきた。 その場合演習は二年次にもっと少数でやることになると思う。 cg演習全般に言えるがもう少し少人数のクラスに分けてやった方がよい。

1年次にはその前段階として gimp や softimage の授業ができればよいのだが。

The Farm Raider

comments The Farm Raider はコメントを受け付けていません。
By , 2012年6月24日 (日) 23:31:41

なんかね、quake とか half-life 時代からの歴史にぶつかって感動することがありますよ。 別に感動する必要はないとも言えるけど。

拡張子には過去のとっくに忘れられた歴史が残るものらしい。 .qc という拡張子は quake C の名残だという。 quake は Cっぽい言語のスクリプトでカスタマイズできたらしいんだよね。

gameinfo.txt は localize できるんかいなと思いつつ文献を読むと gameinfo.txt は昔は liblist.gam と言われていたらしい。 liblist.gam という何のためあるかわからん設定ファイルがあるんだが、ある種の痕跡なんだわなこれ。

んで、説明読むと gameinfo.txt の中の game は ANSIで、 title は unicode で書けと書いてあるから、 gameinfo.txt は licalize できるんだわなと思いそうすると、

 gameinfo.txt is not a valid format

というエラーが出る。 思うに、古い engine (source engine 2006) では gameinfo.txt はローカライズできない、 つまり多バイトは使えない、ということなのではなかろうか。

んで、しゃーないので、The Farm Raider という名前にしてみた。 農園荒らしという意味だが、もちろんこれがかの Tomb Raider にちなんでいるのは言うまでもない。

んで、チャプター名は問題なくローカライズできるのでチャプターだけ日本語というおかしなことに。 いや、チャプターがというよりは台詞や説明が日本語になって欲しいわけよね。 一応舞台は「荒暮村(あらくれむら)」で行こうと思う。 そんな名前の市町村は実在しないだろうと思うがもし万が一あったらごめんなさい。 google 様には見つけられなかったみたいです。

忘れないうちにメモろうと思い、そういう仕事は wordpress よりか mediawaiki の方がずっと手軽なのでこちらに書いてたらずいぶん新しいのがたまった。

もうこんくらいできてれば夏は越せるだろう。 こんくらいできてればアルファ版ですからで許してもらえるだろう。 ていうか、こんだけまじめにゲームの AI 調べたんだから紀要くらい書いても誰も怒らないだろうと思う。

Valve Developer Community は確かにすばらしい。 一次ソースであるが、しかしわからんことも多い。 他人のmodみたり、gcfscape で half-life 2 のソース読んだり、 あとは google 様に調べてもらったりして、じわじわ前に進んでいる感じ。

最初から全部 utf8 か unicode 通せるようにすりゃいいんだわな。 或いは、トークンかませておいて言語によって別々のファイルを参照する。 それがまだ中途半端に対応してるところが多いってことだわな。

npc_metropolice を3発殴ると必ず死んでしまう。 damage factor とかそんなんあるかと思うが変化なし。 npc.metropolice.cpp のそれらしきパラメータをいじっても変化なし。 もうわけわからん。 あと時々無線通信みたいな声を出すのだが、どこで出してるのかわからん。 わからんことだけだ。

西瓜割師外伝(仮称)

comments 西瓜割師外伝(仮称) はコメントを受け付けていません。
By , 2012年6月23日 (土) 20:13:18

あまりややこしいことはやらず、 npc_metropolice を必要最小限改造 してそれっぽいmodを作ることはできるってところまではきた。 そうすると、モデル作りはすべて学生に任せるってことで、 私としてはモデルはできたという前提で(最悪既存のモデルでやることもできるわな)、 modを作っていくほうに専念すべきかと思う。

一応今考えてるネタは half-life2 single player mod で、 江戸時代初期くらいの日本の農村。 父親を西瓜泥棒に間違われ殺された息子・季兵衛(仮称)が復讐のために荒暮村(仮称)に帰ってくる。 季兵衛は毎日畑を荒らしに来る。 村人は大根とか葱とかクワなどを持って季兵衛を攻撃してくる。 季兵衛はそれをよけながら西瓜をひたすら割り続ける。

村人は「毎日畑を荒らすのはあんたね。」 「なんの恨みがあってうちの畑を荒らすんだい。」 「生きては帰さんぞ。」 などのセリフをしゃべる。 セリフくらいは差し替えられるだろうし、そうでもしないと雰囲気出ないわな。

千個の西瓜を割るとゲームクリア。

とかどうよ。 この程度のゲームなら作れると思う。

或いはあるところに釜底村と藪深村という仲の悪い二つの村があった。 凶作の年、藪深の村民は釜底村の連中に皆殺しに遭い、幼い季兵衛だけが助かった。 成長した季兵衛は真実を聞かされ復讐(以下略)。

これからが本当の地獄だ。

comments これからが本当の地獄だ。 はコメントを受け付けていません。
By , 2012年6月22日 (金) 15:06:24

monster_dummy.cpp をコンパイルしたりそれをマップに出すことはできるようになったが、 そこから先がなかなか進まない。 外見は npc_citizen なのだが npc_metropolice のような行動をする npc_guardian という新しい NPC を作りたいのだけど、 npc_citizen.cpp も npc_metroolice.cpp も異様にながくてしかもわけわからん。 monster_dummy.cpp は単なるダミーだし、 npc_alyx.cpp とか読んでみてもほとんど何も書いてない。 ネットにもほとんど情報がない。 ああもうほんとにこの世は地獄だ。

今日もいつものクイックハック

comments 今日もいつものクイックハック はコメントを受け付けていません。
By , 2012年6月20日 (水) 23:52:14

警告は出るものの、一応 server.dll も client.dll も、debug or release 両方ともできるようになった。 client.dll の release のビルドでは viewport.cpp というやつがどうしてもリンカーエラーを起こす。 ソースを見てみると xbox 関連のコードのようなので、xbox360 は 2005年発売なんで、 後から追加されたコードだもんでエラー吐くんだろうと、さくっとコメントアウトしたら動いた。

で、monster_dummy.cpp を参考にして npc_guardian.cpp というものを書き、 コンパイルにも成功したのだが、 Hammer エディタには出てこない。

七転八倒したあげくFGD というファイルをいじらないと Hammer エディタにはモデルが出てこないのである、てことに気付く。 知らんがな。

まあとりあえず NPC の追加の仕方はマスターしたぞ。

エンティティの追加とかについてはここらも読んでおいたほうがよかろう。

奥が深すぎる。

Panorama Theme by Themocracy