だだもれ

2007年11月30日

一応2D衝突処理を終えて入力デバイス。 ジョイスティックとマウスを抜くライブラリを整備中。 個体差をどう吸収すべきかな。 ジョイスティックの場合 どのボタンが何番かの規格がないので、 ゲーム側にキーコンフィグが必須になる。 マウスもDirectInput経由で抜くと画面の解像度と何の関係もない 数字が帰ってくるしな。GetCursorPosで抜いておしまいにするのが いいのかもしれん。

2007年11月29日

土下座は避けられたが、問題は山積み。 今回はちょろいプロジェクトだと思っていたのだがなあ。

どえらい苦労をして軌跡で判定するより、 その場で判定するコードを複数回走らせた方が汎用性が高くて良い気がしてきた。

2Dの衝突判定が存外むつかしくてなかなか進まない。 いくらなんでも今日中には片づけて音に入りたいのだが。

2007年11月28日

各クラスのコード量の二乗の和と 各クラスのcppからインクルードされるヘッダの数の総和の積を プログラムの複雑性の指標とするのはどうだろう。 簡単なperlスクリプトで計測できるので、 それの推移をグラフにすると面白いかもしれない。 バグの発生数とその複雑性はだいたい比例すると思うのだがな。

2Dであっても軌跡で衝突判定をするのは相当厄介なことがわかった。 いきなりは無理だろう。 誤差ゼロでやれる衝突処理は結局回転しない長方形だけで、 誤差が発生しうる場合はモノが整数だけに浮動小数以上にヤバイ。

問題が発生して今回は思い切り人のせいにしているのだが、 考えたら自分の部分をチェックしてない。 まさかとは思うがこれで濡れ衣だったら土下座物だ。

それにしても本業がまた襲ってきそうな予感。 つうか、訪問者多すぎて本書いてる時間がえらく少ない。 やっぱり家で書くべきなんじゃないのか。まあいまさらだが。

2007年11月27日

シューベルトを初めて最初から最後まで「音を鳴らしてみた」。 弾いたとは言わない。Bパートが猛烈に難しいのだが、 最近「難しい」とか言う前にとりあえず10回弾くべきだ、と考えるようになった。 何も考えずに10回弾いて進歩がないような状況なら相当絶望的だが、 今のところそんな曲は一つとしてなかった。 とにかく速度を上げねばな。短いレッスン時間を有効活用するためにも 速度は絶対的に必要だ。

楽譜から直接鍵盤の空間座標に変換するのは非効率なんだと今日悟った。 楽譜を音に変換し、この音に対応する鍵盤の 空間座標の算出は体にまかせる。これだ。 第二ステップは体が勝手にやる。 まだ第一ステップも知らない和音に対しては不完全だし、 第二ステップの音と指の対応も話にならないくらい甘いが、 しかし方針としてはそこだ。第二ステップのレベルが上がってくれば、 脳内で鳴らした適当な音を直接指から吐けるはずである。 「フラットがあるから指をずらす」なんて回りくどい思考では話にならん。 「この音だから指はこう」というダイレクトな変換に持っていかねば。

チェルニー30-8。相当弾きやすい。5割速度は初日から突破。 来週から9に手をつけられるようにまず7を合格域に持っていこう。 インベンション14は軽さを表現したいが、まずは速度だ。 どの曲にも体が流れを感じられる限界の速度というものがあって、 まずはそこまで速度を上げねば音楽性も何もあったものではない。

最近調子に乗ってきて、成長速度でも子供に負ける気がしない。 蓄積と熱意が違う。 体と脳の可塑性という不利は、その二つで十分相殺できる。

英語の前の日は9時までに帰るべきだ、ということを忘れていた。 しかも今日はピアノを2時間も弾いたのでもう1時半。 7時に起きて英語。しかも明日の英語はレベルアップテストだ。 だが何の準備もしていない。電車の20分で通るかなあ。

イタリアン飲み会。ワインうめー。肉うめー。モツァレラチーズうめー。

英語。レベルアップ。 新しいテキストは漫画の絵がヤバすぎる。

二次元衝突処理。説明するとなると結構面倒くさい。 複数のオブジェクトに当たっている際のめりこみ解決とか。

2007年11月26日

はじめまして、というサブジェクトだが中身がよくわからないhtmlの メールが来た。中身に文章がない。アドレスはdocomoなのだが、 hotmailから来ている。muttでは見られないだけで、 IEで見たら中身があるのだろうか。 もうサバからは消えているので他のメーラーで見ることもできないし。 SPAMだと思っていいんだろうか。

unsignedとintの使い分けルールを厳密にするのに伴って 今まで書いた文章とコードを全部チェック。ちょっとかかった。 2Dコリジョンまだ終わらない。

2007年11月25日

ピアノ、プチ発表会。本番ってなんであんなにしくじるんだろうな。 もっとも他の人はそれ以上にしくじっていたのであまり気にはならないが。

子供かわいいなあ。本人は何をさせられているのかいまいちわかってないっぽく、 結局親が楽しんでるだけなんだけども。 4才とかだとそんなもんだわな。

ピアノは弦楽器よりアラが目立ちにくいなあと改めて思った。 ヴァイオリンは開放弦で一音鳴らしただけでも絶望的な差があるが、 ピアノはテクニックがなくともそれなりに聞かせる演奏が可能な気はする。 あくまでヴァイオリンやチェロに比べれば、という話で 結局本気で人に聞かせようと思えばかかる負荷は同じだろうが。

チェルニー30はこのペースで行けば来年の夏ごろまでかかる。 インベンションもそれくらいかかるだろう。 遠いな。果たして「なんとなく弾ける」ようになるのに 一体どれくらいかかるのだろうか。 例えば「デビルマン」と言われた時に、勝手な伴奏をでっち上げながら 即興で弾けるようになるくらいが「なんとなく弾ける」なわけだが、 現状のレベルでは何をどうすればそんなことができるのかがさっぱりわからん。 最低でもピアノが体の延長にならないと絶対に無理だ。

2007年11月24日

ボンバーマン。動くようにはしたが、予想外に手こずった。 漠然と1時間でできると思っていたのだが、単純にナメていたのだろう。

二次元の当たり判定もきちんと扱った方がいいかもしれない。 触っているかどうかの判定は簡単だが、 その後めりこんだ分を元に戻すのが結構面倒くさい。

なんでこんなに連日6時半とかに起きなきゃいけないんだろう。 この最近の慌ただしさは一体なんだ。

明日はピアノのプチ発表会。恥をかきに行く。 来年の夏の発表会では もしかしてシューベルトを弾くんだろうか。 先生はそういうつもりだろうな。

インベンション2終了。次は14。チェルニー30-6が終了。やっと5分の1か。 来週はレッスンがないので再来週までに7と8を両方片づける覚悟でやる。 今週の速度は94。

2007年11月23日

2chの喪男板というのを見てみた。何かが渦巻いてるなこれは。 近隣の板も少し見てみたが、別の宇宙。

丸一日ボンバーマン。案外難しい。ナメてた。 下手にオブジェクト割るとかえってややこしくなるなこれ。 一応、爆弾の設置、衝突応答、ランダム配置、2P対戦を含めたシーケンス、 あたりまでは片づいた。明日の夜にでも爆弾の爆発と誘爆を 仕込めば一応ルールの実装は完了だ。 しかし、本来ゲームを面白くする作業はそこから始まるわけで 仕様を実装するなんてのはゲーム作りの最初の部分にすぎない。 仕様を実装した段階で面白いなんてことがあるはずがないからな。 なにかしら絵が出て仕様通りに動くところまで行ってからが ゲーム作りであるはずなのに、 そこから先に十分な時間をかけた記憶がない。 そしてこの本もそこは扱わない。 本のコンセプトが技術者向けだし私にもそういう経験がまるでないので 仕方ないんだが、 一番楽しくて一番重要なところを扱えないというのはなんとも悲しいことだ。 誰か「ゲームを面白くする」ことについての本を書かないものかな。

ドット絵、初めて描いたが、結構楽しい。 解像度は低くても色数に制限はないので、 結構ちょろっとやってもそれなりな絵になる。 また配色次第でゲームの視認性がガラリと変わるのを実感した。 色は本当に大切だ。 でもここに時間をかけていると進まないので自重。

どうしようもなく今日調子悪い。寝て朝練習する。

2007年11月22日

ボンバーマンが終わらない。というか、始まらない。ヤバイ。ヤバすぎる。

継承をどうするかが問題なのだ。 継承を使えばシーケンス遷移はエレガントな形で書ける。 使わないでエレガントに書こうと思えば関数ポインタか 無制限のキャストに頼らねばならないが、そのこと自体がすでにエレガントではない。 継承を使うとして、説明をすべきか、それともわかっていると仮定すべきか。 説明すべきだろうな。memset(this,0,sizeof(T))とか平気で書く阿呆が これだけたくさんいる現実を考えると、 仮想関数呼び出しがそもそもいかにして可能なのかについて 考える経験は必須だろう。 継承を使わないで仮想関数ぽいことを実装してみせるのが良いか。

恋愛とか結婚とかしてみたいなあ。アンナカレーニナ読んでて思う。

シューベルト。最初の3ぺージは光明が見えてきたので、ちょっとだけ 4ページ目を弾いてみた。絶望。

それに気づく方がどうかと思うぞヴィックスヴェポラップ。

2007年11月20日

矯正がだいぶ進行してきた。2月くらいには器具を外せるかも、とのこと。

半角カナもフォントに入れた。手軽に日本語が出せて便利だろう。

ちょっとづつ読んでいるアンナカレーニナが半分過ぎた。 ついにキチイと両想いになったリョーヴィンだが、 おまえ調子に乗りすぎ。この調子に乗ってる描写はすごい。 キャラとしてはリョーヴィンが一番気になるし、幸せになってほしいが、 でもおまえいくらなんでも調子に乗りすぎだろ。 野良仕事した時のハイテンションも異常だったが、今度のは極めつけだ。 なお、この作品のレギュラーメンバーの大半は基本的にウザいかダメ。 特にオブロンスキーとアンナの兄妹のウザさは異常。 カレーニンのダメさもすごい。 ヴロンスキーは人妻を誘惑する最低野郎だが、 他の奴等に比べるとずっと自然な生き物なので見ていて安心する。 アンナに惚れたのは失敗だよなあこいつ。

人間書けてるよなあ。さすが文学扱いされるだけはある。 何かとションボリな所が実に良い。 にしても、当時のロシアにおける離婚のリスクがいまいちわからんので、 こいつらの判断基準がわからず、いまいち乗れない。

正直言ってリョーヴィンがうらやましい。 私も同じような幸運に恵まれたら、たぶん同じくらい調子に乗るんだろう。 こいつ他人とは思えん。

シューベルト。これ、そんなに難しくないんじゃなかろうか。 むろん「楽譜通りに音を出すだけなら」という条件はつくけれども、 音楽的な困難という奴は楽譜通りに音を出した先にあるもので そこまでの難易度とは全く別だ。音楽そのものの構造はシンプルだし、 どこを盛り上げたいかは誰がどう見ても明らかなので、 たぶんそこの難易度は下手をするとインベンションよりも低い。 一部指が跳躍する部分や、親指で連続して叩かねばならない部分があって おそらく後で苦労するとは思うが、しかしせいぜいその程度である。 そこ以外は指は連続で行けるし、トリルもないし、同音連打もないし、 アルペジオもない。小指で保持したまま他で弾く、みたいなのはチェルニー やってれば嫌でも身につくから、それはもはや困難ではない。 臨時記号が多くて正しい音を弾いてるのか不安になるという 問題はあるが、そんなものは誰かの演奏を聞けば一瞬で大半が修正されるし、 先生に見てもらえば完全に修正されるから問題ではない。 そう考えていくと、もしかしてこれ、シンフォニアより簡単なんじゃないか。

640x480で1ピクセルに7サイクルかけるのと、1920x1080で1ピクセルに1 サイクルかけるのではおおまかに言って同じ性能を必要とするわけだが、 さてどちらが良い絵になるだろうか。1280x720だと3サイクルだが、 これならどうか。 1000円ある時に200円のピザと100円のコーラをいくつづつ買うのが 最も満足度が高いか、という問題が困難なのは、 満足度をZ軸に、ピザをX軸に、コーラをY軸に取った時のグラフが 平面でないことによる。フルHDだからすごい、などと言うのは コーラを10本買うのはすごい、と言っているのと変わらない。 画質は満足度と同様に線形の関数ではないからだ。 さらにロードの問題がある。 7倍の画素数があるということは、テクスチャも7倍の画素数を必要とし、 頂点も7倍必要とする。そうでなければ解像度の意味がないからだ。 容量が7倍になるということはゲームロード時間も計算上は 7倍になる。これによってゲームの快適性は確実に損われる。 今ロード時間と画質で満足度が決まると乱暴に仮定すると、 やはりピザとコーラのように線形の関数ではないことは明らかであり、 性能が許すギリギリまで画質を上げることが満足度を最大にするとは言えない ことが容易にわかる。 コストにも同様の問題がある。 ポリゴン数やテクスチャ容量が7倍になったからといって 制作コストが7倍になるわけではないし、 一定以上小さくなるとかえってコストが上がる面もあるが、 しかし量が増えるほど細部を作りこまねばならない以上、 基本的には量が増すとコストも増加する。結果金の総量が一定であれば ゲームデザインにかける金は減少せざるを得ない。 ピザとコーラの変わりに、絵にかける金とゲーム内容にかける金でグラフが 書けるだろう。やはり関数型は線形ではない。 ゲーム作りに限らず、物を作るということは、 その多次元制約つき最適化問題と取りくむことだ。 とは言え、それを言い訳にして中途半端な妥協を繰り返すのはチキンに 他ならないわけで、どこかでとことんやってみることもまた絶対に必要になる。 そのあたりの二面性が物作りを職業とすることの面白味だと言えるだろう。

ボンバーマンのパチモン制作中。一人用モードは全2面、アイテムは爆風と爆弾。 扉の概念はなく敵皆殺しで終わり。敵は一種類。 ソースコードは教材でもあるので、 本筋に関係ない所はギリギリまで削ぎ落として短くする。 単に作るのが面倒くさいという面もあるが。

2007年11月20日

フォント作ってた。といっても白い画像にグリッドを出して、 マス目に文字を手書きで書きこむだけ。 00文字もないのになのにえらく疲れた。タブレットにはまだまだ慣れない。 フリーだと保障されているフォントをまんま使った方が読みやすいし 楽なのだが、やはり手作り感は大切だろう。

2007年11月19日

初シューベルト。とりあえず最初の3ページを繰り返して曲を覚える。 部分的に相当変な音が鳴ってるんだが、 これがロマン派ということか。速いと気にならないように出来ているのはわかるが、 ゆっくり弾いていると自分が弾いてる音が本当に合ってるのか凄まじく不安になる。

チェルニー30-7。4回弾いてで5割速度まで行けるということは、 これも弾きやすい部類だ。今週中に8割速度まで持っていく。 月平均3曲進めて10ヶ月で終了、というつもりで行こう。

今週はできるだけ早く帰ってピアノを弾きたい。 どうせ初めての発表会だし緊張しまくってロクなことにはならないだろうが、 やるだけやったという自負だけは欲しいからな。

また風邪っぽい。運が良ければ本格的な悪化の前につぶせるはずだし、 今は養生しよう。 とりあえず暖房を使う。地球に申しわけないとか言ってる場合じゃない。

351ページ。フォントまで終了。次はボンバーマンなのだが、 その前に描画モジュールを整備しておかないとどうしようもないので、 そっちを片づける。頂点バッファやらインデクスバッファやらの 下の方を整備しないと三角形一つ描画できない。

発表会まで一週間を切ったというのに、モーツァルトそっちのけで シューベルト中。 今日は少し強弱に気をつけてみる余裕が出てきた。 楽譜に書いてある通りにやるところまでは音楽もクソもなく単なる作業であって、 作業を先生に見てもらうのは時間の無駄だ。よって土曜までに 作業の部分はあらかた終わらせておかねばならない。 しかしそれでも最優先はチェルニー。

2007年11月18日

今更言われてもなあ、な感じ。 しかしとりあえず旧コンテンツは隔離した。 もはや内容に責任を持てないので、 できるだけ人の目に触れない方が望ましい。 いっそリンク切っちまうか。参照されてる可能性があるから 削除はまずかろうが、リンクを切断するだけなら良かろうとも思う。 まあもう少しこれで様子を見てからだな。

つうかこのサイトどうするかってのもまた考えるべき時期に来てる気がする。 畳んでブログサービスにでも切り換えるべきか。 でもIE上で長文書くのはどうも慣れないんだよな。 FreeBSD上のviで文章書いてからIEにコピペってのもイマイチだし。

あー。最新日記を表紙を置き換えればいいのか。 もはや表紙の存在意義ねえし。しかし、いずれ自作ゲームをここに置く計画 はあるし、本に対する補足なんかも公式でやる以上に細かいことは ここでやることになるだろうから、もう少し保留。

メモリの価格が崩壊しているそうだ。2GBで5000円らしい。 絵描きの方には朗報だろう。3枚させば6GBだが、マザーの対応とOSの対応の 両面が問題になるな。32bitウィンドウズって4GB以上行けるんだろうか。

図書館革命。図書館シリーズ完結。 少女漫画のレベルを超えた少女漫画。 しかし微妙な寸止めっぷりはやっぱり少女漫画。 燃える展開という面では若干弱いが、だがそれでもいい。 堂々とキャラ読みすればいいのだ。このこっぱずかしさはすごい。

漫画はこの味を出せるだろうか。30近い男に同居する成熟と未熟を表現できないと、 魅力は半減だ。しかしおそらくそこまで求めるのは無茶というものだろう。 ところで、男は30でやっとこんななのに女は20そこそこでも魅力的なのは、 なんつうか不公平だ。しかし実際そんなもんなんだろうがな。 「かわいい」がない以上、余計に何かを持たねばならないのは当然のことだ。

人間をもっと統計的に見るクセをつけるべきだ。 一人一人を見るべき局面と、全体をぼんやり見るべき局面があるが、 私を含めてたいがいの人はうまく使い分けができない。 人間の精神エネルギーは有限で、意識を向けられる度合には限界がある。 自分の意識を何にどれくらい向けるのが最適なのか、 ということを考えるのはこれまた大変な精神エネルギーを食うので、 普通は意識を向けることが必要となる頻度や、それが快楽をもたらす程度に 応じて自動的に決定される。結果、長期的な視野を必要とする分野や 考えることが苦痛となるような分野には意識が向かない。 それは善し悪しの問題ではなく、人間がそういうふうに出来ているということだ。 しかしそれを受け入れるならば、事は比較的単純になる。 利害の大きさをそれが発生するまでの時間で割った値が 大きいほど人間の意識を占有しやすいのだから、 大きな利害が近い未来に発生するように設定してそれを知らせてやれば それでいいだけのことである。実践は難しいにしても、そういう基本さえ おさえれば少なくとも方向を間違うことはなかろう。

そう。何故あんなに人間を信用できるのかわからん。 はっきり言えば、あれは信用ではない。甘えだ。 世の中の大半は「嫌ではないが自発的にやろうとは思わない」ことで 満ち満ちているのである。それをどう資源として使うかが問題であるのに、 「積極的に」「自発的に」「自覚をもって」などの台詞をいくら叩きつけたところで ただ空虚に響くだけではないか。 しかし、いくらこう言ってみたところで、これもまた 「そういう認識を持ってくれることを期待する甘え」に他ならない。 であれば、こういった台詞を吐くのもまた統計的振舞を考慮した上での選択 であるべきだ。

みたいなことも考えるな。図書館読んでると。

331ページ。シーケンス遷移の実装法について。 無理矢理でも書けるものだし、そう詳しく説明するまでもあるまいと思っていたが、 いざ自分でやってみると注意すべき点がたくさん見つかる。 「サンプルはあるから勝手に見といて」じゃ全然ダメだ。 素材管理に責任を負うのはどのクラスにすべきか、 シーケンス間の通信はどういったインターフェイスにするのが良いか、 などなど、クラス設計の教材として非常に優秀な課題だ。 というわけで、結構詳しく書いてしまった。 さらに、ティアリングがどんなもんか体験してもらうためのサンプルとか、 フレームレート計算関係をライブラリに入れたりといろいろ拡充していたために、 ボンバーマンどころかフォントすら終わってない。大幅な遅延だ。

元々フォントはシーケンスの章におまけのようにつけるつもりだっが、 すでに十分すぎるほど長くなってしまったので章を分けることにした。 「はじめてのフォント」で一章。 フォントという言葉を知らん人もいるだろうし、 少し丁寧に説明した方が良かろう。

つうか、もう11月が2/3終わるんだが。ちょっと待て。この 大幅な遅れは何をどうすれば取り戻せるんだ。 所詮私一人のプロジェクトだし、他に仕事があるわけでもないから 遅れることを誰かに報告せねばならんわけでもないんだが、 3月中に出せねば計画が狂いすぎる。 とにかく、明日中にボンバーマンの基本実装は終わらせよう。 絵はとりあえず適当でいい。とにかく動くものにせねば始まらぬ。

実はシーケンス遷移は初めて書いた。 タイトル画面があるゲームを一人で作ったのは 今日が初めてである。なんかうれしかった。 と同時に、会社でゲームを作る分業体制がどれだけ細分化されているのか、 ということも改めて実感した。こりゃアカンわ。 なんで今までそういう本を誰も書かなかったんだと本気で思う。 ところで、明日やるフォントも初めてだし、ボンバーマンも当然作ったことはない。 初めてやることで本書くのって人としてどうよ、と思うが、 まあ世の中そんなもんだろう。もうすでに開き直っている。

気に食わないものを見た時に脊髄反射で攻撃してしまうことはよくある。 大人の態度とは言えないが、私だっていつもそれを抑えるだけの分別が あるわけではない。むしろ、そういう攻撃に遭うことは 自分がした何がそういう反射を引き起こし得るのかを知る貴重なサンプルである。 実害がない範囲であれば、できるだけそういった機会は大事にしたい。

2007年11月17日

319ページ。フレームレートの変化に対応する方法まで。 固定フレームレートと可変フレームレートの二種類のサンプル実装を 提供してみたり。 予定より全然進んでねえ。コード書く度にその中で理解が難しそうだったり、 意図の説明が必要だと感じることがバンバン出てきて、 本文がどんどん長くなる。サンプルコードの解説なんて コード見ればわかるわけで 一行たりとも書くつもりはなかったのだが、 それでは面倒くさがってコードを見ないで先に進んでしまう人を 切り捨ててしまうことになる。 実際私は「サンプルコードを見ながら読んでください」とか書いてある本に 従ったことはないからな。私みたいな横着者が読者だと仮定すれば、 本文に無理矢理載せない限りどうにもならん。

あー。ティアリングがわかりやすい素敵サンプルを書いた方がいいか。 毎フレームランダムな色で画面をフィルするだけでいいので簡単だし。

日曜中にシーケンスとフォントとボンバーマンの設計くらい片づけんと さすがにマズいなあ。

今週の速度は93。チェルニー30-5終了。やっと1/6か。 インベンション10終了。まだ半分以上あるのか。 今週からシューベルト即興曲90-2。本気でやるのか。これを。

楽譜見て、 PTNAのサイトでプロっぽい人のを聞いていた(2曲目)。 この転調っぷりはすごい。何がどうなってこれだけ遠い調まで移り変わったのか さっぱりわからない。

がんばろう。これをそれなりに弾けたら「ピアノやってます」と言っていい気がするし、 バッハもどきしか出てこない私の音楽脳を猛烈に開発してくれそうだ。 それにずっとループさせて再生してるうちに、 「遅めの速度で楽譜通りなぞるだけなら」そう難しくない気がしてきた。 和音進行はともかく曲の作りは素直だし、音の数もそれほど無茶ではない。 右手はほぼ単音で、左手はわかりやすく和音だ。

2007年11月16日

309ページ。アルファブレンドと入力取得。 今日はフレームレートの概念とそのバラつきを解決する方法。 次にタイトル画面やゲームオーバー画面への遷移。次がフォント。 そこまで今日中に行きたいがなあ。 そこまで出来ればやっとボンバーマンもどきを作り始められる。

2007年11月15日

各人が全体に対して責任を感じられる限界の人数は10人程度だろう。 それ以上になったら小集団に分割して各人の存在感を強めないと、 皆が「たくさんの中の一人」になってしまって責任感が消え失せる。 いくらそこでモラル云々を叫んだところで、 こればかりはどうにもならない。

2007年11月14日

本。画像読みこみまで。倉庫番もどきがどんどん豪華になっていく。 明日はタイトル画面をつけたりアルファブレンドをしたりする予定。 しかし、後でもう少し絵をどうにかせねばならんなあ。

げんしけんのBLな回を見た。すげー。

ガンダムOOを2話まで見たが、何もかもがさっぱりわからない。 「これがガンダムマイスターだ」とか言われてもなあ。 blueDropはコンセプトからしてわからない。なんとか探偵ラビリンスは 普通に面白くない。

2007年11月13日

モツ鍋おいしゅうございました。また是非に。

10倍速いCPUがあって初めて出来るようになるゲーム性は、 今でも1/10のフレームレートであれば作ってみることができる。 しかしそういう実験をした例を私は知らない。

本再開。メッセージループをゲームループのスレッドから分離。 ゲームループ内で重い処理をしてもウィンドウが応答なしにならなくした。 伴ってスレッドライブラリを整備。 どうせロードのところでスレッドの初歩はやるので丁度いい。

2007年11月12日

シューベルト即興曲(op90-1)。丁寧にやっていけば速度や音楽性はともかく 楽譜をなぞることはできるようになるだろうが、 30ページとかありやがるのが絶望的に辛い。 だが和音が猛烈にかっこいい。ピアノが平均律で うまく響かないことまで計算にいれているような印象。 短調の和音でわざと低い二音を接近させてにごらせることで、 いい所に重い音が入る。たまらん。 だが今はメヌエットをマシにしよう。1日弾かなかっただけでボロボロだ。 全ては発表会を無事済ませてからだ。

本業がクリティカルパスを抜けたので本に戻る。 メッセージループ以外を別スレッドに飛ばしてレスポンスを改善する作業。 ロックする処理に入った時でもウィンドウの移動などの操作を 受け入れられる状態にしないとまずいからだ。

インベンションをコンプリートしてもすぐにはシンフォニアには行かないらしい。 少し残念ではあるが、作曲を目標とするならバッハばかりやっているのは 偏って良くないだろう。

2007年11月11日

Wiiを指して性能の進化が止まったという人がいるが、違うだろう。 止まったのは半導体の性能向上ペースで、Wiiの性能はその結果にすぎまい。 常識的な消費電力を保ったまま性能を上げる技術が止まったから Wiiはあの性能なのだ、ということを意識的に無視しているように見受けられる。 箱やPS3は「常識的な消費電力」に保つことを 放棄したからこそあの性能を手にしたのであって、 従来の家庭用ゲーム機の進化からは明らかに逸脱している。 まあドリームキャストの段階で冷却ファンが必要なほど消費電力が デカかったわけで、逸脱はあの頃には始まっていたと言えなくもなかろうが、 いくらなんでも200Wは論外だろう。 そもそもWiiの消費電力だってPS2並みにあるわけで、 決してべらぼうに省電力なわけではない。 冷却ファンがついているような機械が省電力であるはずがないではないか。

プログラミングのやり方がスレッド並列化にシフトしてしまうという 前提を置くならば、消費電力を保ったままでの性能向上はなんぼかやりやすくなる。 しかし問題なのは、マルチスレッドによる高速化にも限度があり、 その限度はかなり早く訪れるだろうということだ。 例えば16コアのCPUを有効活用できるゲームは稀だろう。 これは技術的な問題である以上に、ゲームデザイン的な問題である。 そして16コアというのはやり方次第では次の世代で 到達できるであろう程度の数だ。 並列化による高速化など それが標準化する以前にすでにどんづまりが見えるような代物なのである。 ゲームデザインに関係なく性能を有効活用できるのは絵だけだが、 絵に使うなら非効率な汎用CPUなどより自由度が低くそれゆえに効率の高い GPUの方がずっといい。 実際GPUは仮に今の100万倍の並列度のものが出たとしてもその性能を 有効活用することは容易であり、 16コアごときで使用者側の限界を超えかねないCPU側とは全く違う。 絵だけ綺麗にしたいならトランジスタの増加分を全部GPUにぶち込んだ方が ずっと効率的だ。しかし、すでに絵にこれ以上の資源を投入するのは 割に合わないし、そんなことでは未来はない。 さて、こういう状況では 、計算機の速度向上に対して我々がどう向き合うべきなのか がさっぱりわからなくなってくる。

「ゲーム的リアリズムの誕生」。大変面白く読めた。 文系ってすげえな、と改めて思える。 こういう物言いで何かを書くことは私には決してできないだろう。 自分が何を考えているのかを言語の形で把握するのには勇気がいる。

「Airのsummer編はそれなりに出来はいいが、 それはそれとしていいわけ臭いからなくてもいい」 という私の感想は、多数派ではない気がしている。 私の感覚では、キャラがその行動を決定するのに関係ない要素は、例えそれが 物理的な因果関係があっても無関係とみなされる。 「キャラその他もろもろを含んだある時点での作品世界が それを展開させる何らかのシステムへの入力になって、 キャラその他もろもろを含んだ次の時点での作品世界が出来る。 その作品世界の連続が物語。」という物の見方を私は普通はしない。 いや、そりゃまるでしないことはなくて、 構成やらロジックやらだってそれなりに重視はしているのだが、 しかしそれとは別に、 「キャラというシステムが何個かあって、そこに他のキャラとかその時の作品 世界を入力としてぶっこむと、キャラの言動や行動が出力として出てくる。 その総体が物語。」というイメージを私は持っている。 この本の文脈に沿えば、私はセカイ系を自然に受け入れる感性を持っている ことになるし、実際そうなのだろう。

記号からリアリティを感じるなんてのはいたって普通のことだろうと思うのだが、 「ロサンゼルスがまるまる再現されてるからリアル」とか普通に 言うアメリカ人が本当にいるのを生身で知ってからは そこを普通と言うのは無茶なのだろうなという気がしてきている。 普通と感じるには共有した何かが必要で、 アメリカ人と共有しているものは思ったよりは小さいし、 私が普段読んでいるような作品群が思ったよりもたくさんの共有情報を 前提としていることがなんとなくわかった。 しかし、記号が全くリアリティにつながらない、なんて言う奴はいないわけで、 度合の問題にすぎまい。 絵でフィクションだからロリでもなんでもオーケー、 なんて本気で言う奴は何かがおかしい。 絵であろうがなんだろうが良からぬことの原因になりうる 可能性は引き受けるべきだ。法で規制するかどうかはまた別の話だけれども。

大塚って人の本はロクに読んだことがないので、 何か一冊くらいは読んでみてもいいのかもしれない。

5年ちょい前、私を含めたある種の集団は、 ギャルゲーの類に関して どれだけキモイ文章を書けるかを競っていた。 自分にその自覚がなくても、何かそういう状況に置かれていた。 キモイという言葉は当時なく、もっぱら「痛い」と呼んでいたように思うが、 今ならキモイの方が近かろう。あの「キモ文章レース」は一時の流行 だったが、もしかしたら設定とか構成とか展開の必然性とかリアリティ とかそういう言葉で物を語るのがえらいとされていることへの反発が、 ギャルゲーというそういう言葉で語れば絶対に「ショボイ」の一言で 片づかざるを得ない代物を媒体にして吹き出していたのかもしれない。 「狐はねえだろ」という正論すぎる評価に対して、 何か言い返す方法が欲しかったのだ。 もちろん当時それに言い返す方法がなかったわけではないのだけれども、 私のような理系人間にとって文系の人が書く評論のようなものは 別の宇宙の話であまりにもピンと来なかったし、 仮にその話法で話をしたとしても相手は「ふーん」の一言で終わりだろう。 「キモさ」を武器としたある種の迫力をまとうことで 何がしかを伝えようとしていたのだろうか。 などと今更言ってみたところで、当時の感覚などもはや思い出すことも できないし、仮にできてもそれは私個人の話だ。 下手に言語化することで「当時のあれはこうだったのだ!!」 などと断定してしまうのは私は嫌なので、保留。

2007年11月10日

朝第九、昼ピアノ、拳法、夕方第九。そんな一日。 第九はどうにかなりそうだが、所々やはりヤバい。 間違って覚えていたところが今ごろ発覚した。 去年の本番これでやってたぞ私。 これはもう河原で歌って矯正するしかない。クセになってる。

チェルニー30-4が終了。難関5はそのまま。6が追加。 インベンション10は仕上げ命令。指の感覚が鈍いのは気温のせいだろう。 手袋を使った方がいいかもしれんな。 ところで25日の発表会が終わったら新しい曲を始めるそうだが、 シューベルトらしい。「ちょっと背伸びだけどまあがんばるしいけるでしょ」 との話で、どんな曲かPTNAで聞いてみたのだが、驚いた。 普通のピアノ曲じゃねえか。音たくさん鳴ってて速い。 全然初心者用の臭いがしねえ。 まあ、他のもっと簡単なのも折り混ぜつつ、シューベルトをボチボチやっていく、 という話だからガチでやるわけではないのだろうが、 ここまでハイレベルなものを見据えているという事自体が驚きだった。 先生はこれを弾ける所まで到達させようと思ってるのか。

ピアノの何が怖いって、モノによって感触が違いすぎることだ。 同じ強さで叩いても鳴ったり鳴らなかったりする。 先生のところのピアノはうちの紛い物に比べて重いが、 その一方叩けば底まで押しこまなくても慣性で下まで落ちる。 結果鳴らすのに必要な力はむしろ少ないし、 それだけ小さい力の差に反応するので音量に幅を出しやすい。 うちの紛い物はそのへんがいかにもダメで、 一定以上の力をかけないとそもそも音が鳴らない。 スタッカートでも鍵盤の底まで押し込まないと音が鳴らないので どうしてもタッチが鈍重になる。 先生に「もっと軽やかに」と言われまくるのはうちのがこんななせいもあるだろう。 もう一台もっと鍵盤が軽い電子ピアノを買って 一日おきに取り換えるのもアリかもしれんな。 始めた当初はそこまで真面目に人に聞かせられるレベルの演奏をしたいなどとは まるで思っていなかったので、タッチのことなんて考えてもいなかったのだが、 こうなってくるとさすがにこのままではまずい。 なんべん言われてもタッチが直らないのは気まずすぎる。

発表会のピアノは借りるホールの備品なわけで、当然いきなりだ。 他にも何人も生徒さんがいるわけで、試し弾きをできるとも思えない。 怖すぎるだろそれ。 ヴァイオリンは自分のを持っていけるので、そんな大変さがあろうとは 夢にも思わなかった。

夜合唱がないので仕事。バグの原因がわかった。金曜丸一日やって さっぱりわからなかったのが嘘のようにあっさりと。 困ったら一旦離れてみるべきなのだ。

2007年11月9日

ミクの次はリンか。ミクの音域がA3からE5なのに対して、リンの音域は E3-C5#。5半音ほど低くなる。いいなあ。

デバグ。移植って本当に嫌な作業だな。 分析的な脳味噌の使い方はどうにも苦手だ。 設計はなんとなくやれるが、デバグはなんとなくはやれない。 明日の晩でケリをつけよう。合唱ないし。日曜は楽しい予定があって仕事なんて できないししたくもないので、 明日で終わらせないと月曜まで汚染されてしまう。 来週からは本を書くために、しっかりフロで問題を整理しておこう。 煮詰まった時は、食う、風呂、寝る、だ。

第九、本当に出ていいんだろうか。 さすがにこの練習量で出るのはどうかと思うのだが、もうやる他あるまい。 他の諸々とのかねあいの中で最善を尽そう。

4コアのノートPCが出るのはずいぶん先の話らしいが、 2コアでそれぞれ2ハードウェアスレッドのCPUが出るのはそう遠くないらしいと聞いた。 論理コアが4もあるなら、マルチスレッド化ゲームエンジンを作る意味も出てくる。

裏声みたいに高いがちゃんとパワーのある 声を出す方法、というのがあるらしいが、どうやるのか全然わからない。 うまいこと声帯の半分だけ振動させるらしい。長さが半分になるから2倍音になる。

.aを.oにバラして再結合すると一個の.aにできる。 配布する時には便利だ。ライブラリ使用者にいちいちリンク順まで考えさせるのは 良くない。

2007年11月8日

いまいましい本業。Makefileはスパゲッティ。 リンク順間違ってリンクエラー。 VisualStudioに慣れた体にはこたえるな。 何年ぶりだろう。こんなにperlで書いたのは。

make、perl、bashは自動化における3種の神器だ。改めて実感した。

本にもperlとbashのギリギリの初歩くらい入れるべきなんだろうか。 本来は入れるべきだろうな。「作業を自動化する」という視点そのものが ない人も多かろう。 つうかここ数年の新人の大半がコマンドライン未経験なわけで、 当然bashもperlも知るまい。 しかし自動化の動機は物量だからなあ。動機を提供するのが一番困難だ。

最近わけがわからん忙しさだ。22時で切り上げて帰ってきても、 なんかよくわからん用事が入りすぎて ピアノを始めるのが12時、寝るのが1時半とかになっちまう。 それで朝7時に起きて英語だからな。どう考えても無理だ。

2007年11月7日

本を止めて本業中。かなりかかりそう。

本を誰に読ませても「数学キツすぎねえ?」という反応が返ってくる。 まあ説明がマズいのは承知しているので全面的に直すが、 根本的に「そんなの知らなくていいんじゃね?」 と言われている気がしてならない。 3D空間でカメラを好き勝手に動かすには 3次のベクタ幾何と行列が絶対に必要になるわけで、 もし何のライブラリもない状態で自力でそれらを書こうと思えば 知らねば話にならない。 しかし確かに「何故回転行列をかけると回るのか理解することが ゲームを作るのに必要か?」と問われれば微妙ではある。 「回転行列をかけると回ります。回転行列の中身はこうです。」 と説明も何もなく与えられたものをコードにできれば それで数学ライブラリを自作したとは言えるし、ゲームは動く。 「3Dグラフィックス数学」みたいな数学主体の本でさえ、 回転行列で何故回るのかなんて説明していないのだ。 だが、本当にそれでいいのか。

やはり、ここは譲歩すべきでない。「必要なものは全て自作する。自作するからには 中身は理解されなければならない」という原則は保つべきだ。 でなければ書く意味がない。 だがそれならば、それを曲げないことを読者に納得させられるだけの品質に せねばなるまい。 必要性を実感させることと、論理の飛躍を最小に抑えること、 直感と理性の両方で理解させること。 この3点を徹底せねばならない。 画像の回転のあたりは動画も使って説明しよう。といってもムービーではなく、 そういう動きをするアプリだ。それの実行結果と ソースを比べてもらい、何をするとどうなるのかの対応を理解してもらう。

本書きたい。やっと2Dゲームを作り始めて、結構楽しくなってきた矢先に こんな邪魔が入りやがった。本格的に本が始まる前にこの手の仕事は 全部終わってるはずだったのに。

2007年11月4日

京都行ってた。6年前に戻ったような感覚が辛かった。 どうも私の場合「懐しい」という感覚が快楽ではないらしい。 「だが今はこれがある」と強く思えればいいのだろうが、 それがなくては単なる喪失感だけになってしまう。

今週の速度は91。90と91の差がこれほどとは。1速くなっただけで これだけきついのは初めてだ。あと2,3はどうにか行けるだろうが、 その間に何かブレイクスルーが必要だろう。 チェルニー30-4は115に到達。このまま練度を上げる。 5は右手が16分で左が12分(4分に3つ入る三連符)という変則的すぎる曲で、 下手に速度を上げるとムチャクチャになるのでかなり速度を落としている。 これが前半の山場かもしれない。

そろそろ本業を挟まねばならない。 クリティカルパス上の作業だけやったら本に戻るけれども、 何日かかるかはわからない。

なぜいまさらmakefileを書かねばならないのかといつも思う。

2007年11月3日

ロック音楽のテクニック自慢は見ていて格好いいわけだが、 あれがどれくらい凄いのかはやってないのでわからない。 いや、明らかにすごいんだが、その度合がピンと来ないのだ。 ヴァイオリンで言ったらどれくらいのスキルなんだろう、とか考えてしまう。 ところで、ヴァイオリンやピアノでもそういうあからさまなパフォーマンスが あってもいいと思うのだが、考えてみれば不利な点が多すぎる。 電子楽器でないことがそもそも不利なのだ。 音量的にも、楽器サイズの制約的にも、音質的にも、 生楽器の持つ自由度の低さはああいったノリの音楽会では致命傷だ。 電子ヴァイオリンは一つの解決策かもしれんが、あれのプロの演奏とか 聞いたことないしな。 そういえばチェロの音域を持つ電子ヴァイオリンとか作れんかなあ。 デジタル処理で片っ端から周波数1/3にして出せばそれでチェロになると 思うんだが、さすがにダメか。 ヴァイオリンと同サイズで全身の動きをアピールしやすく、 かつヴァイオリン並みに速度が出せるという意味で、 ああいう音楽会でも使えると思うんだが、まあ音質の問題があるわな。

2Dグラフィックスの章用のサンプルを書いていた。 コードの中身よりも、 他の環境でもできるだけ手間なく動くようにするにはどうするか、とか、 最低限の数の関数しか露出せずに済ますにはどうすればいいか、 みたいなことの方に頭を使う。 そのせいで1ページも進まなかった。 章ごとに違うライブラリを使うのだが、 進む度に上書きすると古いのが動かなくなるので、 やはり全バージョンを別ディレクトリに同時に格納するのがいいだろう。 CDROMにzipをボンと入れて、それをどっかで解凍してもらい、 解凍した場所を環境変数に入れておいてくれれば、 私のサンプルはそれを見てライブラリの場所を知ってビルド可能、 というのが一番いいか。 後できるだけ中身は共通化しておきたいところだが、そこが難しい。 .libは全部同じものだがヘッダだけ別に用意、という手もあるが、 後に行くにつれて機能をGPU側に委譲していくので中身も同じにはできない。 結局全部用意するしかないか。

2007年11月2日

1×1億=1677万になるような世界がある。

2007年11月1日

289ページ。第一章分のサンプルコードを書いて、 説明を改めた。だからあんまりページは増えてない。 あと、サウンドとジョイスティックの章をギリギリまで前に移動。 できるだけ早く3Dに入る構成にするつもりだったが、 3Dは数学がしんどすぎるので逆にできるだけ遅らせて、 2Dゲームの段階で入れられる要素は全部入れてしまうことにした。

最近は会社に22時までいる。これが思いの他辛い。 次の日英語があると起きる時間は7時になる。 なくてもどうせ朝早く出勤するのでやっぱり7時。 22時に帰ってフロ入ったりして23時。ピアノ弾いたら0時半。 最大で6.5時間しか寝られず、たいがいメール書いたりなんだりしてると さらに1時間くらい減る。ダメだ。 夜働いちゃダメだ。しかし、どう考えても間に合わない。 しかしピアノは軌道に乗るまでは練習時間は削れない。 どうにかせねばなあ。


もどる