. ヤコビ法で固有値と固有ベクタをまとめて求められるらしい。 さらに、もっと賢いQR法というのがあるらしい。 しかし優先度の高い仕事が入ったので当分凍結。 奥村先生のアルゴリズム事典は便利だが、 理屈をわかっていない私には今一つ使いにくい。 丸写しして動けばいいというならいいのだろうが、 そうは行くまい。 数値計算の基礎的な知識はやはり必要だ。 そして線型代数。微積よりもずっと使う頻度が高い。
. 連日DirectXを直に叩いているのだが、たぶん会社的にはマズいんだろうな。 マルチプラットホームなライブラリがあって、 それで作って他機種同時発売するのが今時の流行というものだろう。 いや、他は知らないがきっとそうに違いない。
. 2時越え。さすがにマズいが、仕事が増えつつあるのでやむを得ん。 どれも未だかつてやったことがないこと なのでできるかどうかもわからないし、聞ける人もいない。
. ピクセルシェーダのサイクル数が直接に性能を決めている。 とは言え、頂点シェーダもスキニング入りだったりするとそれなりに重いし、 頂点数の割に描画面積が狭かったりするとピクセルシェーダが待たされて 効率が悪い。シェーダのサイクル数を減らすために テクスチャに計算を焼くのは有効だが、 場合によってはメモリ帯域を圧迫して性能を劣化させる。 焦って最適化を急ぐとロクなことがないのでここは我慢すべきだが、 それにしても不安だ。
. このプロジェクト終わるころにはシェーダとDirectXとOpenGLと スレッドその他の並列計算、Windowsプログラミングと シミュレーション系の知識、などなどがそれなりに身についているはずだ。
. 演算誤差地獄。行列の固有ベクタが求まらん。 3x3行列A、固有値k、単位行列I、0ベクタ0について、 (A-kI)V=0という連立方程式を解いてVを求める。 Vは三次元だが、固有ベクタの定数倍は全て固有ベクタなので、 実質未知数は2である。つまり、この3x3行列は適当に変形してやれば 必ず0しかない行が一つ現れて、結果2x2行列に帰着できる。 というか、そうなるような値kを固有値と呼ぶのである。 しかし、演算誤差のおかげでまず0になってくれない。 適当に小さい値を0とみなすしかないのだが、 その「適当」の匙加減次第では0でないはずのものまで0になって 全てがブチ壊しになる。数値計算そのものについてもっと良く知らねば この手の問題は解決できないだろう。 誤差ができるだけ小さくなるような計算法を身につけなければならない。 そういうわけで即座にamazonで本を注文した。週末を待つ余裕はない。
. 大人の事情はもういい。
. 圧倒的な差をつけて勝ってやる。見ていろよ。 本当は勝つとか負けるとか言わず、きちんと協力して みんなでハッピーになるのが会社としては正しいのだろうが、 どんな動機であれがんばればいいものができるのだからそれでいいのだ。 私は敵がいた方が気分が盛り上がるタイプなのである。 むろん敵と思っていることを表に出さないように気をつけねばいけないわけだが、 敵じゃなく「ライバル」なら問題あるまい。
. 太ってきた。最近の生活を考えれば無理もないことだが、 これから寒くなって食欲が出てくることを考えると危険だ。 早々に正しておかなくては。
. フルメタアニメ相当おもろい。 小説よりも心理描写に力が入っていて、そのへんも新鮮だ。 テッサが豪快に萌え声で、ちとやりすぎな気はするが、まあ慣れるだろう。 ふもっふだったらあのくらいの方がおもろいかもしれない。
. あのへんの短編は完璧にアニメ向きだ。正直小説ではあんまりおもろくない。
. PSPの無双はどうも相当スケールダウンしているらしい。 ちらっとしか見ていないので普通にPS2並みに動いているように思ってしまったが、 どうやらそううまくも行かなかったようだ。実際にプレイした人によれば、 エフェクトはショボショボで、キャラも10人やそこらしか見えないらしい。 PSPは所詮その程度ということか。
. 会社。今日のネタは再びシャドウマップ。 light space perspective shadow map(LiSPSM)という新手法が提唱されているので ちょっくら論文を読んでみたのである。 GPU GemsのPerspective Shadow Map(PSM)は謎の理論に基づいていて なんで動いているのかが正直よくわからないのだが、 LiSPSMは直感的でわかりやすい。論文でPSMの弱点とされていることの 大半はGPU Gemsの改良版で解消されているので敢えてこちらを選ぶ理由は ない気もするのだが、わかりやすくて制御しやすいのは魅力だ。
. シャドウマップにおいて一番問題になるのは、 影を落とし得る物体の集合をいかに見極めるかである。 影を落とすのは影が落ちる物体と光源の間にある物体だけなので、 まず影が落ち得る物体の集合を作成する。 と言っても、影が落ち得ない物体などというものは存在しないのだが、 画面に映らない物体には影など不要なので、画面に映らないものを除外した 集合が影の落ち得る物体の集合となる。 そして、この集合の各物体を光源方向に引き伸ばした立体と交差する 物体の集合が影を落とし得る物体である。 この集合全てがギリギリ入るようにシャドウマップを描画してやれば シャドウマップを最も有効利用することができる。 が、実際にこれをやるのは相当面倒くさい。
. スレッドいじり。なんとなくわかったが、本当に大丈夫なのかはまだまだ不安だ。 経験を積むしかあるまい。
. で、買ってきた「Advanced Windows」を読んでた。 スレッドが何者なのかがだいたい想像がついた。 そして、「このへんの処理をしているうちは絶対割りこまれない」 ということを指定する方法が存在することを知った。やっぱあるのか。 クリティカルセクション。 しかしwindowsはそれでいいが、linuxとかはどうなんだろ。 pthreadを使うらしいが。
. ゲーセンのゲームで処理落ちが起こると、処理落ちしている間に 100円玉が通過してしまう危険があってそれがヤバいらしい。 しかし、毎フレームやってもその間隔は0ではないので、 本当に100円玉が来た瞬間を捉えることはできない。 おそらくヤバいのは連続で100円玉が入れられた時だ。 ハードウェアに今まで通った数が記録されていれば その差分を見ればいいが、たぶん「通りました」というフラグしか 取得できない原始的なしくみなのに違いない。 そしてきっと「通りましたフラグ」を手動でリセットするんだろう。 もしその推測が正しければ問題なのは100円玉が連なって入れられた時の その通過時刻間隔よりも小さな時間間隔で検出せねばならないということである。 まあ、明日聞けばわかる。
. TGS(東京ゲームショー)。ゲームの根幹からして新しいと思うような ゲームは見当たらなかったので絵しか見ていない。 水準はおしなべて高く、もはや綺麗な絵はあたりまえとなっている。 GT4はまさにブッちぎりの画質だが、 ナルトの新作などもかなりのレベルだ。 キャラゲーと言ってバカにできるものではない。 EAの指輪物語のロープレも画質に関しては卓越していたし、 ゲームそのものも面白そうである。 PS2は今となってはだいぶ古い機械だが、 あのレベルにまで使いこなすとXBOXと比べても全く見劣りしない。 PS2だけでなくゲームキューブもバイオ4が信じられないレベルに達しており、 むしろXBOX陣営が腑甲斐無いとも言える。 そんなわけで、絵がショボいゲームがあると非常に目立つ。 さて、話題のPSPはハードとしての出来はかなりいい感じだった。 性能もPS2並みと言うのはウソではなく、少なくとも無双がさほど見劣りしない 画質で動く程度の性能はある。画面の大きさも印象的だ。 ただ、発表ソフトはたいがいがシリーズ物の移植であり、 目新しさはほとんどない。PSPはこんなゲームができる、というような 主張があまり感じられないラインナップだった。 それにしても一体いくらで売る気なんだろうなPSP。
. 一部で流行りの「君のためなら死ねる」は映像出展だけだった。 そのくせDSと同時発売をうたっており、おそらくわざと内容を隠して好奇心を煽る 腹なのではないかと思う。あるいはハッタリだけでゲーム内容はカスで 見せられないという可能性もあるが、それは嫌だ。
. 絵なんて30分もやってればどうでも良くなるものだし、 だいたい画質はすでに素人には優劣がつけにくいレベルにまで高まっている。 絵がきれいなら売れるという保証などないし、 絵がショボくても売れているゲームはたくさんある。 と、このようなことを認識することは別に問題ではない。 ただ、そのことを言いわけに使うことが問題なのだ。 技術力が低いなら上げればいい。ただそれだけの単純な事なのに 大人の事情がジャマをする。
. フルメタはあと一冊で追いつく。しかし、ここんところの短編がかなりどうでもいい。 ただただバカバカしいものが多い。長編は毎度それなり以上におもろいのだが、 それでもテッサを無理に萌えキャラに仕立て上げようとする謎の圧力のおかげで 何かがダメになっている。萌え文化以前の人なのだから、 下手に萌え文化に手を染めずに普通に書いてほしい。
. フルメタ最新刊とおぼしき物。マニアーな設定話は まあ守備範囲外なのでどうでもいい。 温泉ネタはお約束として楽しいのでまあいい。 他の地味な短編はまあそれなりにいい。結論。普通。 バカ話はアニメの方がおもろいかもしれん。
. まぶらほ。なんか売れてるっぽいから読んでみたが、 恐ろしいまでにどうでも良い。キャラの魅力がさっぱり伝わってこない。 いろいろ活劇しているのに、さっぱり躍動感がない。 キャラのことがよくわからないのが全ての原因なような気がする。 どうもこれ以前に短編があって、そっちを読まないといけないらしい。 まあいいや。
. 1万円もするWindowsの本を買った。これからはスレッドですよ などとえらそうに言いつつ、さっぱりスレッドが何者か知らないのは マズかろうと思ったからである。 なにせロードなどをスレッドを使わないで並列化しようとすると 激しく面倒なのだ。 ロードを一度にやらずに一定量読んだら処理を返すようにすればいいのだが、 これがそれなりに面倒くさい。 また、ロードだけならまだしも、後の初期化まで途中で返すように するのは激しく面倒である。圧縮された木構造を実行時に適した形に 展開するような作業を分割するなんてのはほとんど悪夢だ。 それに、「ある程度やったら処理を返す」の「ある程度」は 手動で調整せねばならない。多めにすれば処理落ちしかねないし、 少な目にすればロード時間が長くなる。 一定時間で確実に処理を明け渡してくれる機構があるなら使わない手はあるまい。 ロードに限らずこれからの時代はほとんどあらゆるものが並列化されるはずなので、 今のうちにある程度の基礎は知っておかねばならないだろう。 しかし、恐いのは同期に関連したバグだ。 スレッドなんて使わなきゃ良かったと思うような地獄を呼びこんでしまう可能性は 高い。
. 働いてきた。13時間くらい。
. 今日はTGS。出勤している扱いだが、事実上休みみたいなもんだ。 とは言え、さすがにそのまま帰るわけにはいかないので夕方からは仕事。
. それなりにできることが見えてきて、また少しやる気が出てきた。 なので、明日は会社。振休がバリバリ溜まるので そのうちまとめて休んで趣味に費そう。
. フルメタアニメ2話まで。結構まっとうな作りで安心。絵もきれいだ。 テンポもいい。小説まんまでないのもえらい。これなら毎日2話づつ見ていける。
. 白から黒までを256段階に分けた場合、 隣接する色を比べてみてもほとんど区別はつかない。 だから、1ピクセルごとに明度が上がるようなグラデーションを作ってみると 綺麗に連続して見える。 しかし、これを例えば20ピクセルごとに明度が上がるようにしてやると 色の変化が階段状に見えてしまう。 これは人間の目が局所的にコンストラストを上げるはたらきを 持っているためだ。 人間の目には同じ色を持つ帯の左右端が違う色に見えているのである。 左から右に行くにつれて明るくなっていくとすれば、 暗い帯に隣接する左端は中央よりも明るく見え、 明るい帯に隣接する右端は中央よりも暗く見える。 結果断絶がはっきりするわけだ。 こういったことを起こすメカニズムを側方抑制(lateral inhibition)と言う。 これは一番になった人が利益を独占し、二番以降の利益が激減する、 というのに似た働きだ。 例えば隣合う視覚細胞が受けとった明るさが、片方は1でもう片方は2であったとする。 この時、本来ならば細胞が脳に送るシグナルの強度は1:2になるはずだが、 側方抑制によって勝者である後者が前者のシグナルを横取りしてしまうために、 例えば0.5:2.5になってしまったりするわけだ。 これは人間の視覚の性能を非常に高めてくれているのだが、 CGを作る時にはかなり迷惑である。 例えば大きな曲面をライティングするとグラデーションが汚くなるのだ。 これを防ぐには誤差拡散処理を行うのが一番良いが、 果たしてフルカラーでもやってくれているのだろうか。 もっとも、これが問題になるほど平坦な物体を描画することはあまりない。
. なお、生物学的に言えば、先に活性状態に達した細胞が反応抑制物質を放出して 周囲の細胞を不活性化する、と説明できる。 これは細胞分化の際に非常に重要な機能であり、 例えば毛穴がある頻度で分布しているのはこれのおかげである。 もし側方抑制がなかったならば体表面の全細胞が毛穴を 構成する細胞に分化してしまっているだろう。 先に毛穴になれた奴が隣の奴が毛穴にならないように妨害するのである。 この妨害の強度は距離に反比例するため、結果あたかもボロノイ図を書いたように 毛穴が分布することになる。
. 何年も前に覚えたことを思い出して書いているのでウソかもしれない。注意。
. 小学生高学年の4割が「地球の周りを太陽が回っている」と答えたそうだ。 学力の低下がどうとか言うのではなく、 単純に科学の権威が落ちているだけの話だろう。 なくても生きられる知識を溜めこむのは不自然なことなのであって、 元々そんな知識は大して重要なものではなかったということだ。 しかしそれはそれとしてそれくらい教えろよ。 子供には科学の尊さを叩き込め。もっと科学者を増やして 人類世界の変化を加速しよう。
. 気が抜けたようにほとんど仕事をしない一日。 他の人の成果待ちの部分がけっこうドカンとあって、 やる気がわかないのである。 よくよく分析すればそこに依存した部分としていない部分に分けられるのだろうが、 成果が来てから一気にやってもさほど遅れない気がしていて、やる気がしない。 夏休みで休んでいる人に聞きたいことがあって、これまたやる気がしない。 全部自分で勝手に書いてしまえば誰に依存することもなく 今すぐ作業が開始できるのだが、そうするのは会社的に間違いだろうし、 後々の事を考えるとやはりそれも面倒だ。
. 日本のゲーム開発者イベント において誰だかが「萌え」について講演を行ったらしい。 萌えの形式化が進みすぎて市場を殺しつつあるという話だ。 ところで、それに関係があったかどうかは忘れたが、「双恋」においてはできるだけ キャラを普通にして「萌え」から「恋愛」への 回帰を目指している、みたいな記事を読んだ気がする。 システム面を強化してゲーム性でも勝負するのだそうだ。 心意気は買うが、売れそうな気がしない。 そもそも双恋って人気あるのか。
. PS3のメディアはBlue-Rayだそうだ。54GB。 ハイビジョン解像度のムービーでも入れない限りこの容量は埋まるまい。 というか、開発する方もこんなの嫌だ。開発末期には修正する度に焼き直す ハメになるわけだが、イメージを作って焼くのに一体どれだけ時間がかかるか 知れたものではない。 声とムービーさえなければCDを埋めるのもそれなりに大変なのだが。
. せっかくなので実家に帰ってみた。
. ダイの大冒険全巻。おもろいわこれ。さすがにワンパターンさは否めないが、 全てが元気である。恥かしげもなく正義を連呼する 王道少年漫画だが、それがウソくさくないのはポップのおかげだろう。 「勇気」の話は本当にグッと来た。
. フルメタル・パニック8冊くらい。あと半分くらいで新刊に追いつく。 ちょっと懐しいノリで、お約束をふまえつつきちんとハラハラできるような 構成がうまい。さて、これからアニメを30話以上消化して 次に備えなければならない。毎日昼休みに2話づつ見ていく予定。 うちのプログラマチーフがファンなので会話のネタも増えて一石二鳥である。
. 乙一短編3冊。うまい。せつなさとか暖かさと言った雰囲気的なものだけでなく、 それなりにトリックを折り混ぜた知的な話作りをしてくる。 しかし、時としてその小細工が厭わしい。 少女の花の話などは特にそうだ。 何故あのような小細工が必要だったのかさっぱりわからない。 また、フィルムの話は正直よくわからないまま終わってしまった。 もっとちゃんと読めばいいのだろうが、ああいう変則的な文章は 長く続くと疲れるのである。 一番楽しかったのは失踪HOLIDAY。主人公の女の子がとても魅力的だと思う。
. 学校を出よう5。これ、続いてるよね。まさか終わりじゃないよね。 と思いつつ新刊予告を見たら続きだったので安心した。 この作者の小説はどんどんややこしくなっている気がする。 ちょっと清涼院っぽいややこしさだ、などと言うと怒られそうな気がするが、 私はSFには疎いのである。 しかし毎度のことながら茉衣子はかわいい。 絵もその魅力に大きく貢献している。漫画としても魅力的な絵だ。
. スクラン6。かなりどうでも良くなってきた。すまん。
. 7SEEDS、5巻まで。田村由美の漫画はかっこいい。女も男も強いのだ。
. 実家にはハムスターがいる。いくら見ていても飽きないくらい白くて丸い生物だ。 本当にいいなあと思うが、飼えない理由があまりに多すぎる。
. テレビでアメリカの肥満に関するドキュメンタリーを見た。 そういえば確かにあんなだった。100キロ以下は太って見えないくらい であり、まったくもってスケールが違いすぎる。 ところで、アトキンス式ダイエットというのが面白かった。 総摂取カロリーさえ等しければ炭水化物よりも脂肪の方が太りにくい という学説である。炭水化物はインシュリンの分泌を促して 急速に血糖値を低下させて結果空腹を呼び寄せるが、 脂肪にはその作用がない、というのがその根拠だ。 確かに一理あるが、脂肪の取りすぎは体のいろいろな部分に負担をかけるので、 仮に痩せられるとしてもあまり感心できない方法ではある。 とは言え、栄養さえ確保できるのであれば好きな物を食えた方が 長続きはするので有益ではあるだろう。私はやらんが。
. 仮想過去体験夢オンパレード。 高校の学園祭とか、祭とか、公園のすべり台とか、 本当の過去とは全く違ったものが次々と展開された。 こんな夢を見るなんてもう年なのだろうか。 なお、高校の学園祭の奴はかなりブルーだった。 バカバカしいと思いつつも、皆が一緒にバカ騒ぎしているのをみているうちに ムラムラとうらやましい気持ちが大きくなってきて、 よし、参加しようと決意した瞬間に 横から自分がすでにOBであることを告げられてものすごくションボリした。 大学の友達とか、会社の人とかが 急に容赦なく出てきて、その瞬間に周りの高校生が誰一人として知っている 顔ではないことに気づくのである。夢であることはすでに察していたのだが、 だからこそ余計に楽しんでやろうと思っていたのだ。それなのにそんなオチである。 夢の中くらいはリアル高校生でもいいじゃないか。 休日に10時間とか寝てしまう時は眠りが浅いらしく こういう凝った夢を良く見る。最悪だ。まだノスタルジーに浸る年じゃない。 できるならば死ぬ瞬間まで未来のことだけを考えて生きたい。 思い出があれば生きていける、というような生き方を もし認めてしまったら、これまでの自分を否定することになる。 しかし年とともに過去が大きくなっていくのをひしひしと感じる。 いずれこの重みに耐えかねて進めなくなるのかもしれない。 明日は昨日よりも常に楽しくなければならないのに。 まだだ。まだがんばれる。拳法終わったら会社行こう。
. ラノベで高校生が主人公の話書く人は、 こういう気分を作品に昇華させてるのかもしれんな。
. 大槻ケンヂ漫画で、自分には才能なんてないんだから努力するしかない、 というような事が語られていた。 現実には努力できることも才能なのではあるが、 それを認めたら何もかもが崩壊する。 それは犯罪を犯した時に「人間は犯罪を犯し得るんだし仕方ないよね」 と言うのと理屈は同じだ。 だから、少なくとも建前としては「努力しない奴はダメだ」 と言えないといけないと思う。 しかし、そうは言っても、私ががんばれるのは私ががんばる気になる分野について、 かつ私が許容できる程度にまでだ。その分野や程度を私は自分で決めたわけではない。 やはり私はある種のことについては恵まれていたのだと考える他ない。 であれば他人に「やりゃあできるだろ。やれよ」とは言えないだろう。 結局できるのは自分一人をがんばらせることだけだ。 ところで、以前あるチームのそれぞれのリーダーを決める時に、 えらい人が「こいつは能力もあるしがんばるんだけど、 他人にも同レベルのがんばりを要求しているのがありありとわかるからダメだ」 みたいなことを言っているのを聞いた。なるほどと思う。
. ただ、最後の砦として、私よりえらい人には「やったらできるんだから やればいいじゃないですか」と言うのを制限しないことにしている。 えらい人はえらい人なんだからそれくらいやってのけるべきだ。 私の倍給料をもらっている人は私の倍仕事をすべきだし、 私の倍高度なことをすべきである。
. 来週はTGSかあ。出展もしないのに行ってもイマイチおもしろくないのだが、 何かすごいものがあると信じて行こう。というか、会社の仕事として行くので 何がどうあろうと行くわけだが。金曜(業者日)に行きます。
. 一昨日も昨日もほとんどコード書いてない。 なんか開発環境を整えるためにライブラリ班とかデザイナとえんえん 話してただけ。 あと先日直訴しに行った件がいろいろと厄介を引き起こして そのへんでまた無用な時間を食った。 ゲームを作る時にはデザイナが素材の実機での 出方を確認するビューワが必要になるのが常で、今回は私が作る予定なわけだが、 しかしビューワなんてものはどこのチームでも必要になるものであって、 本当ならばライブラリとかそういう所で叩き台を作って それを各チームでカスタマイズするのが正しい姿だろう。 このまま私がビューワを作れば当然自分のチームでしか使えないものを 作るに決まっているのだ。 そこで、会社として人を割り当てたり 複数チームで協力したりしないとヤバいんじゃないですか、 とえらい人に訴えに行ったわけである。 が、なんだかよくわからんうちに私にやってほしいなあみたいな話になってきた。 「もし君がやるとしたらプロジェクトの仕事が遅れたりする?」 などと当然のことを聞かれたりしてムカついたので 「ゼロではない遅れが発生するでしょうよ当然」なんて答えてしまった。 とは言え、全く汎用性のない代物を進んで作ろうなどという気はさらさらなく、 できるだけ非汎用部分をカプセル化して 将来に備えた設計をするつもりではいるし、ユーザに使い方を説明する文書や Doxygenくらいは整備するだろう。ただ、 そう言ってしまうと、他の人に説明する義務が生じたり、 ゴツいドキュメントを書けと言われたり、バグを直す義務が生じたりと とにかくロクなことがない。 「ソースはあるんであとは好きにしてね」 と言ってトンズラこくのが最も賢い選択肢だろう。
. えらくなってこの理不尽な状態をどうにかするというのはそれなりに魅力的だ。 しかし、今えらい人達もきっとそう思ってがんばった結果えらくなったはずであり、 とすれば私もえらくなった頃にはその時点の状況を把握する能力を失って いるかもしれないということである。 まあ、えらくなるまでこの会社にいるとは思えんがな。 今のプロジェクトが終わった時になにかしらもめるのは間違いなく、 かなりの確率で会社を辞める以外に選択肢がない状態に陥る気がする。 スポーツをおもちゃのように扱うスポーツゲームはどうも好みじゃない。 実際の選手を使うようなゲームはなおさらだ。 まあ今はそんなことは言っていられないし、 具体的にやってることはどれも面白くて仕方ないので仕事に支障はないのだが。
. グミ・チョコレート・パイン4巻まで。会社の友達に借りた。 大槻ケンジの自伝的な漫画で、なんというか今はもう失われた何かを 表現しようとしているのが伝わってくる。 若さっていいなあ。
. 灼眼のシャナ1巻の途中。すげえ読みにくいが、つかみは悪くない。 主人公の追い込まれた状況が結構キツくて、この先 どういうふうに話を持っていくのかが気になる。しかしやっぱりすげえ読みにくい。 なんでだろな。
. ファウスト3巻売ってたんだが、あれ売れてるのか。 あそこに載ってた個々の作家 に関して悪い印象はあまりないのだが、しかしあの雑誌の形になると 急に気持ち悪くなる。
. しっかし交渉向いてねえなオレ。 致命的に。えらくなっちゃいけない人種なんだろうなきっと。 相手の腹を探りつつ軟着陸というマネが一切できん。 自分の考えをとりあえず 全部ブチまけてしまうスタイルはもう治らんのだろうなきっと。 こういうのが偉くなると、時代についていけなくなった後にも見当違いな 事を強硬に主張して回りを困らせるんだろう。 「現場出身でも偉くなると現場のことがわからなくなるもんなんだね。困ったもんだ」 とか陰で言われるわけだ。 まあ、えらくなれないにしても、それなりの「使い道」を示せば 生きる道もあるだろう。私の使い道をしっかりと示すためにも 今回はがんばらねばな。マルドゥック・スクランブル風に言えば 「オレの有用性」って奴だ。
. 灼眼のシャナ1巻。悪くない。読んでいる間はそれなりに楽しい。 しかし、決め手に欠ける。最後のハッピーエンドっぷりもちょっと反則臭くて、 この先はヒロインと一緒に楽しく 闘っていくんだろうなあという投げやりな予測がついてしまって先を読もうという 気持ちが出てこない。 読みにくいのはだいぶ慣れたのでそこにあれば読むのだが、それ以上はなさそうだ。
. ところで、脳内声優がハルヒと同じなのは絵と口調のせいだと思う。 しかし、シャナはハルヒに比べてずいぶんとあっさりなびいてしまうので だいぶ物足りない。
. 普通の男の子のところにやけに強い女の子がやってきて、 普通の男の子は自分の腑甲斐無さに悩みつつそれなりにがんばる、 という話は基本的に好きだ。女ドラエモンと総称されるらしいが、 主人公が本当にダメなだけの奴である場合はムカつくだけなので不許可。 まあそういうのは少数派で、たいがいの話ではそれなりにがんばるものである。
. 今日はチームで肉。品川駅前のステーキ屋。400g食ったが案外ヌルい。 ジンギスカンの500gとステーキの500gは辛さが全く違う。 ジンギスカンなら400gでも相当辛かっただろう。 結局のところ味付けと油の量がクリティカルなのである。 ステーキはその点非常に有利だ。懐しいなあジンギスカン。
. ピクセルシェーダに送った法線はちゃんと正規化しましょう。 確かによく考えてみれば、正規化しない状態では頂点単位でライティング するのと大差ない結果になってしまうのも当然だ。 ポリゴンの細かいモデルばかり出していたからずっと気づかなかった。
. MFCを勉強する必要に迫られそうな気がする。 まずwin4h32APIをある程度理解してからMFCを使え、 と言う本が多いのでそうしていたのだが、 いいかげんそんなことを言っている段階ではないだろう。
. 1時前に帰ってきた。健康。 ところで、Ashikhminという名前の人がいるのだが、 これどう読むんだろう。アメリカの人だから英語的に読めばいいのだろうが、 英語的に読めないスペルである。 今日はそのAshikhminさんが前にSIGGRAPHで発表した奴を実装してみた。 大半の計算をテクスチャに焼けるので実用にはなる。それでも重いが。
. DirectXでサウンド周りをいじることになりそうだ。 ちょっとくらいはやったことがあるが、まともに使えるインターフェイスを 作るとなるとそれなりに面倒くさい。 DirectSoundやDirectMusicはwavファイルでいいならとても楽に使えるのだが、 圧縮フォーマットがからむと急に面倒くささが増すのである。 今時ならOggだよなあ普通に考えれば。 しかし環境が整うまでは保留か。 もしかしたらヌルいツールが提供されるかもしれん。
. 写真から立体を再構成するツールを作ることになりそうだ。 その手の論文を集めてやってみたら案外簡単に行けそうな気はするのだが、 さてどうだか。まあそれもしばらく先だが。
. 社内での私の地位を「むつかしいことをやる人」と位置づけて ありがたがらせる作戦が進行中なわけだが、 ちょっと効きすぎているようだ。論文論文言いすぎたか。 多くの人はまだそんな時代になっているとは思っていないようで、 「そんな未来の技術ばっかりやってもどうせ動きゃしないんだし、 もっと他のことやれば?」みたいな事を言われる。 しかし世の中そんなものだろう。
. 社内での地位云々以前に11月から配置替え。プロジェクトごと スポーツゲーム専門部署に飛ばされることになった。 私は今作ってるのが終わったら絶対抜けるつもりだが、 どうも他の人もほとんどそう思っているっぽい。 スポーツゲームをえんえん作り続けたい人なんてそうそういるはずもないのだ。 組織にノウハウを残すために専門化するとか言っていたが、 ノウハウは人に溜るものであって、人がいなくなれば話にもなるまい。 なお、もしその時になってもし抜けられないとなれば会社ごと辞める。 その時のためにも自分の価値を高めておかねばならないだろう。 というわけで逆にやる気が湧いてきた。最高のゲームを作ってやる。
. ポリゴンを細かく切るのが計算機資源上の問題で無理な場合に、 テクスチャに光に対する反応特性を格納して擬似的に画素単位で凹凸を表現する 技術をバンプマップと言う。暗いところはへこんで見え、 明るいところはふくらんで見えるという事を利用したインチキ技術だ。 今となっては使わないなんてことはありえないというくらいメジャーな技術である。 が、こいつとAshikhmin等の異方性反射モデルを組み合わせるのはかなりホネだ。 直交基底を3本ともテクスチャに焼いてしまえばできるような気もするのだが、 どうだろう。もう少し考えてみないと恐くて実験できない。
. ランバート反射は頂点単位でやっても画素単位でやっても あまり品質が変わらないので、頂点単位でやるのが普通である。 が、自分の目で見ないと納得できないので実験してみた。 確かにあまり変わらん。しかし確実に違いはある。 内積一回の価値がどれほどか、ということだ。
. いろいろあって疲れてやる気がないので早く帰ってきた。 しかしすべきことはてんこもりなので明日の朝は早く行く。 というわけで寝ます。
. フレネルの件は会社に着いた瞬間にわかった。 表面がデコボコしているという仮定なので、 見る方向によって表面法線の分布が変わるのである。 ともかく、入射角の関数では表せないことがわかった。 テクスチャに焼くために強引に入射角で近似している例もあったが、 いざやってみると使用に耐えない。 視線ベクタと法線の内積は見える限りにおいて正であるが、 入射ベクタと法線の内積は負になり得るからである。
. Cook-Torrance照明モデルはマジメに計算すると凄まじく重いのだが、 一番重いところはテクスチャに焼いてしまえるということに唐突に気がついた。 1変数、または2変数の関数である限り、どんなに複雑な計算が含まれていても テクスチャに焼けば同じである。Ashikhminの異方性反射モデルも同様に かなりの部分がテクスチャに焼ける。 Oren-Nayerも行けそうだが、あれはもっと豪快に インチキな近似でもそれなりに見えるのでまあ良しとしよう。 また、あんまり精度がいらない部分を選び出して頂点シェーダに押し出す という手法もかなり有効な気がしてきた。 しかし最終的にどうしようもなく残るのがシャドウマップ参照処理である。 GeForceしか相手にしなくていいならどんなにか楽だろうと心から思う。
. 最近このことしか考えてない。見事なまでに他のことを考える気がしない。 でも学校を出ようは読みたい。 拳法に行く際に通りすがる本屋には全くなかったのである。 そんなにマイナーなのか。
. 週6回14時間労働を長く続けるのは体に悪いと思う。 途中夕飯を食いに行っている分一年目の状態よりはマシだが、 責任の大きさとやっていることの難易度が段違いだ。
. 日曜なのに1時まで会社。
. 今時流行りのフレネル項。 垂直に入射した光は反射されにくいという話でそのこと自体は簡単なのだが、 この関数が入射角の関数になっていないのが理解できない。 なんで視線ベクタとハーフベクタ(視線ベクタと入射ベクタの和) の成す角度の関数なのか。フレネルを単体で扱う項においては入射角の関数なのだが、 いざシェーディングで実際に使う式になると使う角が変わる。 もしそれが正しいのなら、視線ベクタと入射ベクタの成す角が不変なら フレネル項は一定ということになり、 垂直に入射しようが斜めに入射しようが関係ないことになる。何か変だ。 どこを見てもそうなのでそれが正しいのは間違いないが、納得しないと進めない。 というか、読み間違ってる気がする。英語だしな。読み返さねば。
. ぶんか社のダブルスティールは技術的に優れたゲームとして有名だ。 プログラマの中にはあのゲームを崇拝する人もけっこういるようだし、 崇拝とはでは言わないまでも多くの人が意識はしている。 モノがおもろいかどうかは知らないし、結果出ている絵も好みではないが、 しかし開発者インタビューの類を見るにつけ「かなわねえなこりゃ」と思う。 XBOXでそこまでできるなら今のハードならどんなことになるのか。
. というか、大したこともしてないのに6800が処理落ちしてるんだが、 やっぱりやり方がアホウなんだろうな。 おそらくピクセルシェーダの性能を過信しすぎている。 頂点シェーダは遠くに行ったモデルを省ポリ版にすることで削れるが、 ピクセルシェーダは何をどうやっても画面のピクセル数だけはかかるので 1ピクセルあたりの負荷がデカければ一撃で終わりだ。 よくよく計算して許容できる負荷を推定しておかないとダメだろう。
. 500MHzのコアで4ピクセルパイプと仮定する。6800よりだいぶ弱いが、 まあそれくらいにしておこう。 すると、2ギガピクセル/秒が最大だ。 60フレームで割ると、33メガピクセル。3300万。 全部1クロックで描けるシェーダだとしたらこれは無限と言っていい数値だ。 もしこれが10クロックかかるとしたら330万。 640x480が25万くらいなので、まだ余裕がある。 あれ?おかしいぞ。こんなに速いのに処理落ちするわけねえじゃん。 10回も描いてないよなあ。このへんきちんと調べてみよう。
. 4時越え。ずっとダベっていて仕事していたわけではなかったが、 他の部署の人間と話していると状況が見えてくるので意味はある。 実験項目も増えた。やっぱり今のゲームの絵という奴をしっかり見せつけなくては ならない。拳法終わったら会社だな。
. せっかくだから今日こそ自転車のパンクを直してもらおうと思ったが、 鍵が見つからない。見つかったのは午後8時寸前のことだった。 会社に行くのもダルいので寝る。
. 「学校を出よう5」が近くの本屋にない。マイナーなのかやはり。 しかし遠くの大きな本屋に行く時間はないのだ。
. うまいへたに関わらず「うわっ」と思うような絵がたまにある。 描いてあるモノの種類がどうとか言うのではなく、 言うならば臭いみたいなものだ。描いてる人は絶対変態だ。 創作においてのみ変態は尊い。
. 1時越えちまった。しかも今日は全般に地味なことをしていたので 全然絵的な進歩がない。演算誤差で連立方程式が大変なことになるのを 解決するだけでえらい時間がかかった。結局インチキだが。 PCAみたいなもんはやっぱり実行前にdoubleでやるもんだと思う。 そのうち外に出そう。カルダノの方法で3次方程式を解く際にも 解と絶対値があんまり違うと激しい誤差が出る。 PCゲーなら中でdoubleが使えるが、そんなものに頼るのは危険だ。
. ついに処理落ちをどうにかしないといけない段階に達した。 いかにGeForce6800と言っても 何も考えないで長大なシェーダで何度となくレンダリングしていれば あっという間にあふれてしまうのである。 NVPerfHUDを導入してみたところ明らかにピクセルシェーダで落ちているので、 さしあたり定跡とされている高速化手法を一通りやっておこう。 今はまだ最適化の時期ではないが、 しかし最低60フレで動かねば実験もままならん。
. 危うく1時越えをするところだった。絶対体に悪いので気をつけねば。 ともかくやることが次から次へと湧いてくる。 しかも今やっているのもとりあえずのインチキ実装なので、 後々もっとまっとうなものに差し換えねばならないのは間違いない。
. 今日のトピックはPCA(Principal Component Analysis:主成分分析)。 大雑把に言えば、空間中にバラまかれたたくさんの点に関して 一番バラけた方向を決定する方法だ。 物体を直方体で近似する時とか、 Sweep and Pruneアルゴリズムを1次元オンリーでやりたい時などに必要になる。 これの用途は空間図形に限らず、SIGGRAPHの論文ではしょっちゅう出てきていた。 圧縮にも使えるらしい。 ところで、以前オブジェクトの最大分散軸を計算するのに自力で編み出した 方法が結構いい線行っていたことに気づいてちょっといい気分になった。 しかしむしろ何故あそこまで行っておいて辿りつけなかったのかと考えてみると、 固有値という概念が全く頭になかったことが原因として浮かび上がってくる。 やっぱり何に使うかわからん数学なんて勉強せんよなあ。 思えば線型代数演習は全くもって地獄の時間だった。 しかしもし今こうやって応用を知った上であの授業を受けたとしたら きっと楽しいだろう。そういう意味でももう一度大学に行きたい。 最低あと1年はおあずけだが。30前には決断せんと。
. LafortuneモデルでのBRDFがかなり使える気がする。 馬鹿正直にcook&torranceなんて計算してたら、なんぼシェーダが速くても 絶対足りん。あれでそれなりな見栄えになる式を編み出せればかなり有利だ。 Factored BRDFのテクスチャに焼く手法の方が速度的にはいいが、 あのテクスチャを作る方法がよくわからんし、 わかったところで好き勝手な調節をするのは相当しんどい気がする。 まあいずれ両方試さねばならないだろうが。
. オタ分が激しく不足しているが、 不足していても生きるのに全く支障がないという現実は悲しむべきか。 困ったことにゲームすらいらん。 思考が完全に技術に偏っていて他のことを考える気に全くならない。 人とメシを食っている間すら戻ってからやることばかり考えてしまう。 デモンベインの原作をやらんと古橋の小説が読めんし、 それなりに気になるギャルゲーもそれなりにあるのだが、 しかし私は一番優先度が高いこと以外は一切考えられない性格なので、 たぶんそれらに順番が回ってくる日が今年中に来ることはない。
. プリンセスメーカー4はちょっと気になる。 まあ絵が天広先生だというだけの話なのだが。 しかしまあおそらくあんなにゲームゲームしたものをやる気にはならないだろう。
. GeForceとかRADEONはシャドウマップに便利な機能を持っているっぽい。いいなあ。 少なくともGeForceはZバッファをテクスチャにでき、 加えて4サンプルPCFをタダでやれるそうだ。夢のような話である。
. ものすごく久しぶりに会社で日が変わった。 なんかデザイナと話せば話すほどやらねばならないことが増えていく。 かなり大変なことになっている気がするんだが大丈夫なのか。
. ライティングをテクスチャに焼いておいてピクセル単位ライティング をやるのは原理上PS2でも可能だ。がんばれば因数分解BRDFすら可能だろう。 しかし、奴は確かアルファブレンドで乗算を再現できなかったはずなので、 やるとすればそれなりに面倒なマネをしないといけない。 まあもはやあの機械に関わることは二度とないはずだが、 万が一ということもあるので手は常に考えておこう。
. パパイヤにレモン。食える。 ただ、レモンに負けている。 味は甘味だけは提供してはいるものの結局はレモンの酸味の方が強いし、 香りは完全にレモンである。 食えるし悪くないが、これで果たしてパパイヤを食っていると言えるのか。 パパイヤほどに名の知れた果物であれば それだけでおいしいはずなのだが。 これならアボガドに醤油をかけて食う方が好みだ。 そしてむろん、マンゴーやパイナップルをまんま食うのには比べるべくもない。
. パパイヤっておいしいのか? 2個400円で売られていたパパイヤを食いながらまたもやそう思う。 初めて食ったのは高校の時に親からの差入れに入っていたものだったが、 やはりあれもマズかった。以来もう10回以上はパパイヤを食っているはずだが、 一度としておいしいと思ったことがない。 メジャーな果物である以上それなりにファンがいるはずなのだが、 私はどうもダメだ。 すっぱくもなく、甘いには甘いがのっぺりした甘さで、 香りも何かうさんくさく、妙な苦みが気持ち悪い。 ハズレばかり引いているだけなのか、それとも単に私の好みが 外れているだけなのか。食う度に無性に悔しい気持ちになる。
. パパイヤはレモンをかけて食えとの啓示。まだ一個あるので明日の朝にでも。
. 仕事がヤバい。正確に言うと、このまま放置すると口だけの人になってしまう という意味でヤバい。というわけで、数日仕事に捧げます。
. これだ。パースペクティブシャドウマップ。 実際に画面にデカく写るところほど解像度を使うという性質があまりにもおいしい。 しかし実際に使うにはいろいろ制約がありそうな雰囲気。 今年の論文でこれを激しく改善したものも出ているが、とりあえずGPU Gems のを応用してみてからだ。
. 引き続き影。馬鹿正直にやると全然ダメだ。 何か圧倒的な技を開発しないといけない。
. JAMMAショーに行ってきた。ゲーセンの展示会。 大半がメダルとプライズ(UFOキャッチャーみたいに何か取る奴)。 普通のビデオゲームで目立ったものはほんの数個。 本当にこの業界大丈夫なのか。 アーケード大手のコナミが出展していなかったので余計に淋しい状態になっていた。 今回の主催であるサミー・セガ陣営と仲が悪いという噂だが良く知らない。 コナミはセガのゲーセンにはゲームを売らないという話も聞く。
. ナムコのアイドルゲーがなかったのが残念。 鉄拳5は絵的には全然違いがわからなくて残念。 バンプレストのガンダムシミュレータの出来が激しくショボかったのも残念。 PS2のガンダム戦記をまんまベタ移植して 操作系とカメラだけ変えたようにしか見えず、到底XBOX基板の絵とは思えない。 そもそもコリジョンでガタつくような状態で出展すんなよ。 セガは良く知らないが、新しいガンゲーはえらく古臭かった。 コナミのウォートランの方がおもろそうだ。 ダンジョンでネット通信のアクションゲームはいかにも昔のゲームっぽい絵だった。 やったらおもろいのかもしれんが。
. 社内のデザイナーがとあるゲーセンカードゲーのために 描いたイラストが社内WEBで見られるようになっているのだが、 みんなすげえうまい。 いわゆるイラストレーターと言われる人種に 勝るとも劣らないレベルがゴロゴロしている。 普段はポリゴンやらテクスチャばかり作っていて さっぱり元の絵がわからないのだが、こうやって二次元で絵を描かせると その恐しさがわかるのだ。普段「この飯うめえっすよ」とか言ってる奴が あんなに絵がうまいというのはすごい違和感なのである。 そんな人に16色でテクスチャ作らしたり ロボが撃つ弾のモデリングとかさせてるわけか。 速くマシンが速くなってああいう人々の画力がダイレクトに活かされる 時代になるといいなと思う。
. というか、そんなに絵がうまい人が最近はシェーダを 自力でバリバリ書いてたり、 さらにはC++でプラグインまで書いてたりして、 じゃあうちらプログラマの価値って一体何?という状態になりつつある。
. 影をどうするかというのはゲームにおいては重大な問題だ。 影がないとジャンプしているのか着地しているのかもわからないし、 距離感もつかめない。そういうわけで、影は見栄えのみならず ゲーム的にも重要である。 が、このご時世において問題にになるのはそんなレベルの話ではない。 影のふちが自然にぼやけて欲しいだとか、 腕の影が脚に落ちてほしいだとか、そういうレベルの話だ。 前者はソフトシャドウ、後者はセルフシャドウと言って、流行りの話題である。 これを実現する方法はすでに確立されているのでパクるだけでいいのだが、 すでにパクるだけでも辛い状態に陥っている。 資料は例外なく英語だし、そもそも数学がわからん。
. やること多いなあ。結構ヤバい気がしてきた。 ゲームの特性上楽勝だと思っていたのだが、やっぱりそうでもない。