プチメタ3.0

刺激を受けた物事に対する感想や考察、自己成長や資産運用、ゲーム作りに関することなど。


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

ゲームの高クオリティ化はそろそろ限界が来そう

新たなハードウェアの登場に伴って ゲームのグラフィックはどんどん向上してきたが、 今後も永久に進化し続けるかというと疑問だ。 新たな技術は次々に生み出されているので 今までよりもリアルな映像や動きを作り出すことは確かにできるのだが、 クオリティ…

「モンハンが好きだからカプコンに入りたい」では就職できない理由

ゲーム業界に入りたいと考える若者に話を聞いてみると 「モンスターハンターが大好きだからカプコンに入りたい *1」 というような理由が多い。 しかしいくらそれを熱心に訴えても そういう方向では入社は叶わないし、 仮に入れたとしても幸せになれる確率は…

ゲームを作るのも苦労するけど、プロモーションもすごく難しい

新作の謎解きブログを公開してから約1ヶ月、 脱出ゲームとして作り上げる過程も大変だったが、 知名度を上げるための広報活動にとにかく苦労している。 最近の市販ゲームでも毎日大量にリリースされる新作と 限られた可処分時間の奪い合いのせいで ヒットさ…

謎解きブログ「100階建ての無人ホテル」のプロモーションビデオを作りました

nobodyhotel.hateblo.jp 昨日公開したばかりの謎解きブログ「100階建ての無人ホテル」ですが、 前作でいろいろ試したプロモーション活動のうち 効果的だったものはどんどんなぞっていこうと考えていて まずはプロモーション動画を作りました。 曲は一新しつ…

プレスリリースを送ってニュースサイトに載ることに成功した

自分が手掛けたものが報道メディアに載るというのは クリエイターの目標のひとつだろうが、 そういう報道関係者に自分から情報を送る 「プレスリリース」という手段がある。 以前からずっと関心があったのだが、 単なる個人が報道メディアに連絡することに …

エヴァンゲリオンに出会ったおかげで作品を公開する気持ちよさを知った

話題になっているテレビアニメの噂を耳にする 「新世紀エヴァンゲリオン」といえば 今でも話題に挙がる「エヴァンゲリオン」シリーズの 初代テレビアニメ版として1995年に放送されていた作品だ。 当時、高校3年生だった私にもその評判は聞こえてきたが、 致…

物体が壁に跳ね返る動きの作り方

ボールや車両、魔法や敵キャラなど ゲームの中で何かを壁面に反射させたいことがある。 水平と垂直の壁しかないような2Dゲームなら 進行方向を表す角度をうまく計算するだけでも大丈夫だが、 いろいろな向きの壁が存在したり 3D空間内を移動動するような場合…

綺麗なロゴを簡単に作れるWebサイトが便利

ゲーム開発ではタイトル画面を作るときはもちろん、 「TIME」とか「13Hit!」のように表示されるUIなど いろいろなロゴが必要になる。 だからといってWindows付属のペイントあたりで作ると この程度の仕上がりになってしまう。 学生はこのへんのクオリティを…

ゲーム画面でよく使われる半透明表現とその仕組み

ゲーム画面に画像を表示するときは プレイヤーに与えたい印象によって さまざまな表現を使い分けるが、 その中でも一番基本的な半透明表現について解説する。 すべての色は3色のバランスで決まる 「光の三原色」と呼ばれる理屈で、 コンピューター上で表現…

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

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

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

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

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

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

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

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

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

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

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

<<中略>> ―――「天才じゃない私たちが輝くために」より 創作活動をする人間にとって 自分の作品に自信が持てないことは珍しくないが、 だからといって勝負の場に出ないのは最悪の選択だ。 「まだ完成していない」「見せられるレベルじゃない」 「忙しくて…

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

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

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

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

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

学生同士のチーム制作は仕事でやるより難しい

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

総アクセス数