プチメタ3.0

刺激を受けた物事に対する感想や考察、資産運用や英語学習、自己成長に関することなど。

ゲームプログラミングについての解説

複数の球が衝突し合う判定処理の解説動画

久しぶりですが、プログラミングの解説動画の第14弾です(前回)。 計算処理をシンプルにするために ゲーム中の障害物やキャラクターの衝突判定を 球(円)に見立てて行うことがよくあります。 球が相互にぶつかりつつ、 衝突によって生まれた速度も それ…

3Dグラフィック技術が総ざらいできる専門書

専門書はターゲット層が限られるのでレブログ!には書かないが、 最近読んだ「ゲーム制作者になるための3Dグラフィックス技術」は 教え子たちにも薦めたいなかなかいい本だった。ゲーム制作者になるための3Dグラフィックス技術 増補改訂版posted with amazle…

3D空間で影を表現する代表的な4つの手法の解説動画

プログラミングの解説動画の第13弾です(前回)。 影というものはリアリティを出すために必須なのに 再現するのが非常に難しい存在です。 「影が出るべき場所をどのように判断するか」ということと、 「いかにクオリティを維持しながらも処理を軽くするか…

3Dモデルをヘコませる表現の解説動画

プログラミングの解説動画の第12弾です(前回)。 3Dモデルというものは あらかじめ決めてあるアニメーションを除き、 不規則な変形をさせるのがなかなか困難です。 それだけにうまく変形できるとインパクトが大きいため、 モデルの各部をどう動かせばどん…

画面端から画像が流し込まれるような処理の解説動画

プログラミングの解説動画の第11弾です(前回)。 画面端から画像が流し込まれるような処理です。 画面を切り替えるときにフェードイン・アウトばかりでは芸がないので いろいろな手法が編み出されてきたわけですね。 今回の手法は中学生のときにゲームの…

3D空間で光学迷彩を再現する解説動画

プログラミングの解説動画の第10弾です(前回)。 アニメ「攻殻機動隊」などで出てくる「光学迷彩」を 3Dプログラム上で再現する実験です。 「物がある=その場所にある背景を遮っている」ということに着目し、 物があってもその背景が見えるようにするわ…

画像を波打たせるラスタースクロールの解説

プログラミングの解説動画の第9弾です(前回)。 画像を左右に波打たせる処理で、2Dゲームの 「ワープ」や「夢への出入り」といった表現によく使われました。 一番有名なのはドラクエの旅の扉でしょう。 簡単な処理なので、2Dプログラミング入門者の練習課…

手前のポリゴンが貫通しないようにする処理の解説

プログラミングの解説動画の第8弾です(前回)。 海に少し沈んだ船を表現する際、海面ポリゴンを船内に貫通させずに 船底がきちんと見えるようにするテクニックです。 船の例に限らないですが、3Dの動作仕様の関係で 工夫しないと現実通りの見た目にならな…

水面のように波打つ画像加工をリアルタイムで行う処理の解説

プログラミングの解説動画の第7弾です(前回)。 画像をピクセル単位で処理して 水面に波紋が広がるような効果を リアルタイムで表現するプログラム技術です。 今回は3Dの技術ではないですが、 ピクセル操作もこれはこれで奥が深く、一時期ハマりました。 …

時間を止める表現の実験プログラムの解説動画

プログラミングの解説動画の第6弾です(前回)。 ザ・ワールドの能力を使ったような時間を止める演出の実験です。 プログラム的にはものすごく簡単なので 解説動画にするほどではないのですが、入門者向けということで。 描画設定をいじるのは簡単なので 何…

ボツにしたカーアクションゲームの動画を公開

プログラミングの解説動画を連続して公開しましたが、 過去にボツにしたゲームに関しても動画に録ってみました。 カーアクションゲーム「バウンティハンター」です。 「ここまでできているなら仕上げたらいいのに」 と思うかもしれませんが、どうにも作って…

3D空間で鏡を表現するプログラムの解説動画

プログラミングの解説動画の第5弾です(前回)。 最近のゲームではよく見かけるようになった「鏡」ですが、 これがいざ実現しようとするとかなり大変です。 いろいろな分野の知識が問われ、 それらをすべてうまく導入できなければ成功しません。 次は時間を…

金属っぽい表現をするプログラムの解説動画を公開

プログラミングの解説動画の第4弾です(前回)。 今回は周囲の景色が映り込んでいるように見せる 「環境マッピング」の実験プログラムです。 本来は実際に周囲の景色を貼り付けるのですが、 このプログラムはそのあたりは手抜きしてます。 次は3D空間で鏡を…

3Dモデルを真っ二つに斬る処理の解説動画

プログラミングの解説動画、第3弾を公開しました(前回)。 3Dモデルを斬鉄剣で斬ったように 真っ二つにする処理の実験です。 三角形のポリゴン単位で作られているモデルを 指定した直線で両断するのは大変そうに思えますが、 発想が大切なだけで、処理とし…

ボイドのアルゴリズムの解説動画を公開しました

先日の動画につづき、サンプルプログラムの動画を公開しました。 第2弾は「ボイドアルゴリズム」です。 20歳のときに読んだAIの書籍で見つけたネタで、 11年ほど前に実際に形にしてみました。 たまに学生に相談されるので、 解説動画を作っておくと今後…

ゲーム画面をリアルタイムに破壊する処理の解説動画

プログラミングについて学生に質問されたときに 自分が作ったサンプルプログラムを見せることがあるのだが、 ふと、「キャプチャーした動画を公開したらいいのか」と気づいた。 自作ゲームのプレイ動画はこれまでも作っていたが、 よく考えたら実験的に作っ…

プログラミング能力とゲームを創造する能力

読者の方からのメール。 「高度なプログラミング能力と ヒットするゲームを創造する能力のどちらが必要でしょうか? もちろんどちらも必要です。 しかし、あえて究極の選択を迫られたなら選ぶのは?」 ゲームを作る、という意味で言うなら プログラムの技術…

ゲームを作ろうと思ったらライブラリを作ってはいけない

ゲームを作ろうと思ったらライブラリを作ってはいけない これ、ものすごくわかる。 というか、毎年コレで失敗してる学生を見る。 ライブラリの役目のひとつが 「ある作業をこれまでより楽に実現すること」なので あらかじめライブラリを作っておけば ゲーム…

遺伝的アルゴリズムでブランコの漕ぎ方を学習させた例

遺伝的アルゴリズムでブランコの漕ぎ方を学習させた例。 遺伝的アルゴリズムとは、ランダムで作ったプログラムのうち いい結果を出したものをいくつか残し、さらにそれらを交配したものと、 突然変異によって大きく変えたものを加える、という作業を 何世代…

物理エンジンで遊べるゲーム「あそぶつり」ができるまで

フリーソフトとして公開中の 物理エンジンを使ったゲーム「あそぶつり」は 完成に至るまでにいろいろな問題にぶつかった。 物理エンジンを使うときの戸惑い そもそも海外の実験プログラムや市販ゲームから 「物理エンジン」という言葉を聞くようになり、 い…

ゲームを作るときに気をつけること

学生にゲームプログラミングを教え込むにあたって技術を身につけさせるのは当然なのだが、そこからさらに一歩先に進むのが難しい。ゲーム業界への受験にあたって、多くの企業が学生の自作した作品を提出させる。ということは就職活動の時期にはオリジナルの…

非プログラマのための影プログラミング講座

読者の方から、 「プログラム知らないけど興味があるので仕組みを知りたい」 というメールが来たので、ちょっと説明してみる。 ●影を表示する2つの意味 そもそもなぜ影を表示する必要があるのか。 ひとつめの理由は単純で、日常生活ではあって当たり前の影…