プチメタ3.0

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


ゲームを作る上で押さえるポイントやプログラミングについての解説

衝突判定に必要な3Dモデルの大きさを自動計算する仕組み

ゲームというものは2Dであれ3Dであれ 「何かと何かが衝突する」という状況が多く発生するが、 その判定には当然ながらそれぞれの大きさの情報が必要になる。 2Dゲームの場合は画像の幅や高さを使えばいいが、 3Dゲームの場合はどのようにしているのか、 その…

3Dモデルを作るときは無地の壁でもわざわざムラのあるテクスチャを貼る

3Dゲームを開発ときは、建物やステージといった 背景部分も立体モデルとして作っていく。 その際、同じ色の床や壁であっても 少し斑(むら)を用意するのがポイントだ。 たとえばコンクリートの床だからといって こんな感じの無地のデザインにしてしまうと、…

プログラミングに暗記力は不要

ゲーム開発を学ぶ学生が授業に対するアンケートに 「しっかり覚えようと思います」とか 「内容を覚えるのが大変そうでした」などと書いていることがあるが、 プログラミングに対して「覚える」と表現するのは違和感を感じる。 もし「理解する」という意味で…

褒める方が楽だし褒められる方が気持ちいいが、ダメ出しに慣れていかないと成長しない

最近の学生を見ていると 他人との衝突を極端に恐れていることが多く、 異なる意見を挙げることやネガティブな指摘をされることを できるだけ避けようとしているように思う。 確かに自分に対する改善要求を聞くのは辛いし、 相手を目の前にして否定的な意見を…

2ヶ所のキャラクターをどちらも画面内に収めるカメラ位置の求め方

対戦型の3Dゲームなどで 主人公と敵が常に画面に収まるよう、 カメラの距離を自動で調整したいことがある。 一番遠い距離で固定してしまうと 両者が接近したときに迫力がなくなるため、 離れているときだけ遠くから映し、 接近戦ではカメラを寄せるようにし…

正念場から逃げても自分が追い詰められるだけ

<<中略>> ―――「夏目にーに漫画短編集」第1集より 創作活動をする人間にとって 自分の作品に自信が持てないことは珍しくないが、 だからといって勝負の場に出ないのは最悪の選択だ。 「まだ完成していない」「見せられるレベルじゃない」 「忙しくて時間…

プログラマー志望者はタイピングが遅くても気にしなくていい

将来、プログラマーになりたいと思っているものの パソコンに不慣れでタイピングが遅いことを悩む人がいるが、 正直、そんなことは気にしなくていい。 第一に、プログラミングに要する時間のうち大部分は これから作っていくプログラムの構造を考える 「設計…

クリエイターが「面倒くさい」と考えたら終わり

ゲーム開発に限らず、何かを作っている過程で 「面倒くさい」と愚痴るようなら クリエイターの道は諦めた方がいい。 そもそも創作活動なんてものは面倒くさいことだらけであって、 「人を楽しませたい」「思いついたアイデアを形にしたい」という 意欲と情熱…

3Dゲームではあらゆる判定でコサイン(内積)が役に立つ

サイン・コサインなどの三角関数は ゲーム開発で非常によく使われるが、 3Dゲームの場合は特にコサインが役に立つ。 これはコサインでベクトルの影の長さを求められるからだ。 内積を利用してベクトルの影の長さを求める コサインを使えば直角三角形の底辺の…

ベクトルの内積を使って角度を求める仕組み

ゲーム中に出てくる判定や敵AIの処理では 角度の情報が必要になることが多い。 2Dゲームの場合は回転方向が左右しかないので タンジェントを利用するだけでなんとかなるが、 3Dゲームの場合は横にも縦にも回転できるので ベクトルの内積を利用する必要が出て…

目標までの距離をもとに放物線の最適な発射角度を求める計算方法

ゲームにはさまざまな武器が登場するが、 銃弾は直線的な軌道として処理することが多い。 現実には弾丸も重力の影響を受けて放物線を描くのだが、 一般的なイメージとして銃の弾が徐々に落下するという印象が薄いし、 そこまで計算して敵に狙いをつけるのは …

見出しや説明文を配置するときはグルーピングを意識すべき

Facebookで流れてきたとある動画だが、 これを見てすぐに問題がわかるだろうか。 中央段にある見出しが 上下どちらのイラストのものなのかが パッと判断できないのだ。 特に「Better」は上側のイラストとはピッタリくっついているのに 下側のイラストとはス…

【ゲーム業界志望者向け】プログラミングWeb試験に必要な知識まとめ

ゲームプログラマーを目指す学生が企業に応募するときは 自作のゲームプログラムを求められることがほとんどだが、 これに加えて筆記試験を受けさせられることがよくある。 最近はWeb試験の一種であるコーディングテストがよく使われていて、 ブラウザ上で直…

char型の文字列をワイド文字(Unicode)に対応させる方法

C言語やC++系のプログラミングを学び始めると 文字データを入れる変数はchar型だと習うが、 半角文字を1バイト、全角文字を2バイトという 特殊な考え方は「マルチバイト文字」と呼ばれ、 日本語用のShift_JISなど特定の言語だけを想定した設計になっている…

触り心地の良さをブラウザ上で味わえるWebサイトが素敵

oimo.io 「触って楽しいものが好き」という作者の言葉通り、 さまざまな実験プログラムが展示された Webサイト「oimo.io」がすごく楽しい。 そのひとつひとつから確かな技術力と 見せ方のうまさが伝わってきていちいち感心してしまう。

2D格闘ゲーム時代、「ストリートファイター2」の地面表現に感銘を受けた

1991年にゲームセンターに「ストリートファイター2」が登場し、 対戦格闘ゲームの大流行を巻き起こしたが、 当時の私が画面を見て衝撃を受けたのが しっかりとした奥行きを感じるこの地面だ。 今なら3D表示処理で簡単に実現できるが、 当時はスーパーファミ…

いろいろな実験プログラムを流用したスタッフロールを動画にまとめてみた

受け持っているプログラミング授業の勉強を兼ねて これまでいろいろなソフトを作ってきたが、 スタッフロール(クレジット)は ゲーム本編とは違う世界観が入っても支障がないため、 作り溜めた実験プログラムを活用した思い出がある。 通常はゲームをクリア…

XOR演算を使った暗号化の仕組み

保存したデータを特定の人にしか見せたくない場合は 「暗号化」する必要がある。 インターネット上で扱う個人情報ももちろんだが、 ゲームに同梱されたデータがユーザーに読まれたり改ざんされると 楽しんでプレイする機会を奪うことになるので 暗号化してお…

不完全な作品でもどんどん作る方が学びが進む

―――「薔薇はシュラバで生まれる」より どんな創作物にも言えることだが、 質の高いものが作れないからとチャレンジしない人より 不出来なものでもどんどん生み出して 他人に目に触れさせる人の方が遥かに成長が早く、 実際にクオリティも上がっていく。 クリ…

遅延が許されない格闘ゲームでオンライン対戦を実現する工夫が素晴らしい

qr.ae 「遠く離れた者同士でオンラインゲームをプレイするときに なぜうまく同期できるのか」という質問に対する回答だが、 これだけでひとつの記事になりそうな 素晴らしくクオリティの高い解説になっている。 ネットワークを経由した情報のやり取りである…

学生同士のチーム制作は仕事以上に難しい

企業では組織全体で成果を上げることが求められるため、 その訓練として、どの学校でも グループワークを行う課題が用意されている。 しかし、いざ学生同士でチームを組んでも 多くの場合うまくいかないものだ。 これは会社員に比べて学生が未熟だからなので…

日本のゲーム業界40年の歴史をまとめた

先日、西暦2000年前後に生まれた学生たちと接しながら 「彼らはスーファミはおろか、 初代プレステすら体験したことないかもなぁ」と想像し、 自分の中では当たり前と思っていた出来事が 実は割と貴重な記憶なのでは、と思った。 そこで、現在に至るゲームの…

あの頃、ゲームといえばこんなだった<2005年~2017年>

目次 1977年~1986年 1986年~1988年 1988年~1990年 1991年~1994年 1995年~1997年 1998年~2005年 2005年~2017年 Xbox360に熱中する日々 2005年、Xboxの後継機として 「Xbox360(エックスボックスさんろくまる)」が発売された。 いよいよインターネット…

あの頃、ゲームといえばこんなだった<1998年~2005年>

目次 1977年~1986年 1986年~1988年 1988年~1990年 1991年~1994年 1995年~1997年 1998年~2005年 2005年~2017年 徐々に広がるインターネット 1990年後半、世の中にインターネットが広まり始めたが、 会社や学校などのビジネス利用を除き、 各家庭では常…

あの頃、ゲームといえばこんなだった<1995年~1997年>

目次 1977年~1986年 1986年~1988年 1988年~1990年 1991年~1994年 1995年~1997年 1998年~2005年 2005年~2017年 ゲーム業界への道を歩み始める 高校3年生となり、進路指導がたびたび行われるようになった。 通っていた高校は割と厳しい学校だったので …

あの頃、ゲームといえばこんなだった<1991年~1994年>

目次 1977年~1986年 1986年~1988年 1988年~1990年 1991年~1994年 1995年~1997年 1998年~2005年 2005年~2017年 対戦格闘ゲームの大流行 家庭用ゲーム機としてスーパーファミコンが広まる中、 ゲームセンターでは対戦格闘ゲームのブームが起きていた。 …

あの頃、ゲームといえばこんなだった<1988年~1990年>

目次 1977年~1986年 1986年~1988年 1988年~1990年 1991年~1994年 1995年~1997年 1998年~2005年 2005年~2017年 ファミコン全盛期 写真:ファミコンのネタ!! バッテリーバックアップが普及したことでセーブ機能が当たり前になり、 ファミコンのゲームは…

あの頃、ゲームといえばこんなだった<1986年~1988年>

目次 1977年~1986年 1986年~1988年 1988年~1990年 1991年~1994年 1995年~1997年 1998年~2005年 2005年~2017年 ディスクシステム登場 ファミコンは子供がいるほとんどの家庭にあるほど人気だったが、 より多くのゲームをプレイできる画期的なシステム…

あの頃、ゲームといえばこんなだった<1977年~1986年>

目次 1977年~1986年 1986年~1988年 1988年~1990年 1991年~1994年 1995年~1997年 1998年~2005年 2005年~2017年 1977年生まれの私にとって 日本のゲーム業界の発展は自分の青春時代とピタリと一致する。 ゲームの思い出を昔懐かしく描いた 「ピコピコ少…

三平方の定理はゲーム開発で一番役に立っている公式

中学校の数学で習う「三平方の定理(ピタゴラスの定理)」は ゲーム開発の中でも使われまくっている。 この理屈がなければあちこちが破綻するほどなので 先日紹介した三角関数以上に重要なものだと思っている。 三平方の定理とは そもそも三平方の定理とは …

総アクセス数