2008/09/13
初級ゲームプログラミング完全マニュアル [vol.0063 2008/09/13]
┏┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳┓
┣┛ ┗┫
┃ 挫折不可能! 初級ゲームプログラミング完全マニュアル ┃
┃ ┃
┃ 第 63 号 2008/09/13 ┃
┣┓ ┏┫
┗┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┻┛
- Ads space -
┌┬───────────────────────────────┬┐
││ はじめに ││
└┴───────────────────────────────┴┘
みなさま、こんにちは!
個人ゲーム制作アドバイザーの Byerkut です!
暑かったり、寒かったり、ラジ…、あ、それは先週ですね。
学生の方は2学期が始まった頃でしょうか。
専門学生の方などはもうすぐかもしれませんね。
1学期に勉強したアセンブラやC言語のことは覚えていらっしますか?
忘れた? 問題ありません。きっとみんな忘れてます。
そのうち忘れたくても忘れられなくなりますのでご安心ください。
さて、今日は閑話休題、ゲームを遊ぶとき視点についてです。
┌┬───────────────────────────────┬┐
││本日のラインナップ ││
└┴───────────────────────────────┴┘
・今日のメインテーマ
【閑話休題で1週持たせる男】
・あとがき
┌┬───────────────────────────────┬┐
││ みんなの備忘録 ││
└┴───────────────────────────────┴┘
■Visual C++ 2008 Express Edition をインストールする手順
http://www.game-create.com/archives/235
■Visual C++ 2008 Express Edition でプロジェクトを新規作成する手順
http://www.game-create.com/archives/270
■VC++ 2005 EE でプロジェクトにソースファイルを登録する手順
http://blog.mag2.com/m/log/0000240151/108824854.html
■画像ファイルを LoadImage() 関数で読み込めるようにする手順
http://www.game-create.com/archives/308
■ゲーム用ウィンドウのテンプレート
http://www.game-create.com/menu/downloads
■ビットマップ学習用クラス - Study::Bitmap
http://www.game-create.com/menu/downloads
┏┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳┓
┃┃ ┃┃
┃┃ 今日のメインテーマ ┃┃
┃┃ ┃┃
┃┃ 【閑話休題で1週持たせる男】 ┃┃
┃┃ ┃┃
┗┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┻┛
前回までのメルマガで、地球防衛ゲームの基礎を作ることができました。
いろいろと敵を増やしたり調整したりすればそれなりに動くゲームに
なるかと思われます。
さて、現在、当メルマガの内容に対するアンケートを募集しております。
今後のメルマガの指針にしたいと思っておりますので、
もしよろしければご回答ください。
今なら…
秘密のゲームプログラミング講座
…のアクセスキーをプレゼントいたします。
アンケートはこちらです。
http://form.mag2.com/nacrericia
ちなみに秘密のゲームプログラミング講座ですが、あまり過剰な期待は
ご遠慮ください。公開すればわかると思いますが、ブログやメルマガで
書けない内容だから秘密になっているというだけのことです。
いったい何を書く気なんでしょうか…、それは後々わかります。
さて、今回はアンケート募集期間ということで閑話休題。
Byerkut が普段どんな視点に立ってゲームを遊んでいるのかを
お伝えしたいと思います。
「おまえの話など、聞きたくないわハゲェェェェ!」という声が
全国的に高まっていくのを感じますが、そこそこ重要ですので
どうかひとつ1週だけおつきあいください。
このメルマガを購読いただいている読者の方の大半がゲームを作りたいと
思っていらっしゃることと思いますが、実は、普段ゲームを
遊んでいるだけでゲームプログラミングの腕は鍛えられます。
ポイントはいろいろな視点からゲームを見ることです。
■ 3D のゲームを遊ぶときは注視点を意識する
アイドルマスターやインフィニットアンディスカバリーなどの 3D ゲームを
遊ぶ際に是非とも見て欲しいポイントです。注視点とはなんでしょうか?
注視点とはキャラクターの視線の先にある点のことです。
目には見えません。プログラムの中にだけあるベクトルです。
要はキャラクターが注視している点のことなのですが、
実は 3D ゲームというのは顔の動きや表情を自然に見せるために
注視点を設定することが多いのです。
これは論より証拠なのでとても表現しにくいのですが、
注視点を設定するとキャラクターの表情や顔の動きが自然になるのです。
もちろん例外もたくさんあるのですが、たとえば、あるものを見るときは、
可能な限り目玉だけを動かして、それでも視野の端になってしまうものを
見るときに初めて首を動かすということをします。
こうすると不思議と自然となります。
なお、アイマスのライブ時は演出のためにわざとこれを鈍くしています。
アイマスのライブ時はカメラ目線が不自然だからです。
こうすると流し目などを作ることができるようになります。
しかし、注視点があるのは確実で、ゲームを持っている人は
GO MY WAY! のライブを見てみてください。よくわかると思います。
…と、このようにいつか来る 3D 時代(もう来てる)のために
いろいろと顔の表情をつける技を盗むのです。
■カメラとスティック軸の関係を見る
これも 3D の場合ですが、カメラの位置とスティック軸の関係を見て
勉強しておくのも重要です。今まで漠然と見ていた方は
注意してみてください。実はカメラの位置によって軸が
変わることがあります。たとえばゼルダなど良い例です。
ゼルダはカメラ主義というか、リンクが離れるかフレームアウトするか、
自分が壁にめり込みそうになるまでカメラが動きません。
注意してみると面白いほどよくわかるのですが、ゼルダなどは
カメラの腰がが非常に重いのです。しかし、この不自然な現象も、
プレイヤーからすると自然に見えるのですから、勉強が必要です。
今では多くの 3D ゲームがこうなっています。
サルゲッチュシリーズやぐるみんなどなど…
■ if 文の登場順番を考える
ゲームには分岐が不可欠と言うことを以前メルマガで書きましたが、
実は分岐の順番も大切です。特に弾幕シューティングを作る場合、
当たり判定のクエリーをどうやって構築すれば少ない比較で済むかを
常に意識しながら遊ぶとノウハウがたまります。
基本はあり得ないそうな判定から先にやることです。
そうすると本当に必要な判定に行くまでに大半のクエリーを
消化することができるようになります。たとえば縦シューの場合は、
ほとんどの場合、弾<プレイヤーのはずです。
ですので、プレイヤー<弾を先に判定します。
そうするとほとんどの判定が終わります。
■ベクトルが先行するかアニメが先行するかを見る
これは私も研究段階なので色んなゲームを見たいのですが、
ゲームの世界ではベクトルが先行するかアニメが先行するかの
違いがあります。たとえば左スティックが倒されたのでプレイヤーを
動かすというのは、ベクトルが先行し、アニメが追従します。
逆に、敵から攻撃を受けてノックバックする時は、アニメが先行し、
ベクトルが追従します。この動きをプログラミングするのは
結構面倒なことだと思います。現在は、これをどうやれば効率よく
実装できるかを考えながらプレイしています。
あるいは、全くイメージの異なる実装になるかもしれません。
わかってきたらかみ砕いてメルマガでお伝えしようと思います。
■次の目的地を誰が決定しているか見る
これはプログラミングと関係ありませんが、お使いゲームにならないように
するためには重要な視点です。もしかするとプレイヤーの視点に立つ
という意味では最も重要な視点かもしれません。
RPG でお使いイベントほどしんどいものはありませんよね。
■キーの感圧を見る
これは PS 限定ですが、キーの感圧を常にチェックします。
結構、ゲームによっては普通の動きとは違うことをするものがあります。
ほぼ全てのゲームで、左スティックをそーっと倒すと
歩きになると思いますが、ゲームによっては攻撃ボタンをそーっと押すと
小さな攻撃になるものがあります。説明書にはないので笑いました。
■ビルボードを探す
ビルボードとは 3D ゲームにおけるテクスチャの入った1枚ポリゴンの
ことです。これを探して自分でゲームを作る際の参考にします。
ビルボードを使うとゲームの質感はそのままにポリゴンを減らして、
処理を軽くすることができます。背景は特に重要なポイントです。
ビルボードを使うのが上手い会社などたくさん見つかります。
しかし、次世代機が出てからめっきり減りました。
PSP や NintendoDS などの携帯機ではまだ見られると思います。
■ホストが何をしているかを考える
携帯機は通信対戦ができるようになっていますが、
だれがホストになっているかを考えながら遊ぶと勉強になります。
たとえばモンハンなどではホストがどのような処理をし、
各携帯機にどのような情報を送受信すれば同時プレイゲームが成り立つか
考えながらモンスターを狩ります。できるだけ少ないバイト数で
フレームを更新できるようにするための工夫が必要です。
さて、いかがでしたでしょうか。
これらはほんの一部ですが、ゲームをプレイする際には
いろいろな視点があることがわかりました。
明日からでも遅くはありません。ゲームプログラミングを学ぶためにも
ゲームで遊びましょう。ゲ〜ムイズフリ〜ダム♪(ヒロシ風)
今回も最後まで読んでいただきましてありがとうございます!
それでは!
Byerkut.
┌┬───────────────────────────────┬┐
││ 重要記事のダイジェスト ││
└┴───────────────────────────────┴┘
■C++ は計算と記憶しかできない
■外部の機能(関数)を借り受けるには #include を使う
■#include で借り受けた機能を使うには関数を呼び出す
http://archive.mag2.com/0000240151/20080203171350000.html
■Windows プログラムには必ず WinMain() 関数から開始する
http://archive.mag2.com/0000240151/20080209215231000.html
■プログラムは関数の集まり
■プログラムは関数を増やしてソフトウェアを作る
■関数には次の要素がある(名前・機能・引数・戻り値)
http://archive.mag2.com/0000240151/20080216090000000.html
■関数を作には次の要素を決める(名前・機能・引数・戻り値)
http://archive.mag2.com/0000240151/20080608200909000.html
■プログラムはソースコードを分散させて大きなソフトを作る
http://archive.mag2.com/0000240151/20080525121425000.html
http://archive.mag2.com/0000240151/20080531212858000.html
■ゲームを作るためには「入力」「出力」「条件分岐」が必要
http://archive.mag2.com/0000240151/20080301221623000.html
■画像ファイルの絵を画面に表示する際にはメモリに読み込む
http://archive.mag2.com/0000240151/20080406202024000.html
■LoadImage() 関数はコピペで使い回せる
■LoadImage() 関数の第2引数は
メモリに読み込みたい画像ファイルの名前を渡す
■LoadImage() 関数で読み込むファイルは
プロジェクトディレクトリにおいてある必要がある
http://archive.mag2.com/0000240151/20080413174135000.html
┌┬─────┬─────────────────────────┬┐
││ あとがき │ 発行者のつぶやきです ││
└┴─────┴─────────────────────────┴┘
インフィニットアンディスカバリー発売ッッッッッッ!!!
いやっほぉぉぉぉぉぉおおおおおおお!!!!!!
きゃああああああああああああああああああ!!!!!!
この日を4年待ち続けました。4年ですよ。
まえだまえだは何歳ですかっつー話です。
まだ、上村愛子と本気で結婚しようと考えていた時期です。
現在、ハイパーオ○ンチンタイムのごときテンションです。
面白いです。面白い。しかしながら難易度がべりー高いです。
ヌルゲーマーの私は最初のダンジョンで死にました。
最初のダンジョンって New Game して最初のチュートリアルですよ?
この難易度はなんであろうか… orz
どうやら押してダメなら引いてみるという感じで、
カウンターを狙わないとダメのようです。
ですから、今、必死に防御の練習をしています。
最初に出てくるでっかい敵相手に防御防御の連続です。
しかしなんでまた、防御が左トリガーなのでしょうか…
押しづらい…
インフィニットアンディスカバリーはローグギャラクシーに似て
移動と戦闘の区別がありません。しかし、シームレスさは FF12 と
同じくらいあります。抜刀の時に攻撃できる点はゼルダ風です。
ですので、リアルタイムゲームが好きな人なら楽しめると思います。
ただ、普段ヌルいゲームしか遊んでいない人は要注意です。
最初のブタとオオカミに失禁させられます。
┌┬───────────────────────────────┬┐
├┘ └┤
│ 購読の解除はこちら↓ │
│ http://www.game-create.com/contents/gp_beginners_ml │
├┐ ┌┤
└┴───────────────────────────────┴┘
- Ads space -
┌┬───────────────────────────────┬┐
├┘ └┤
│ 「挫折不可能!初級ゲームプログラミング完全マニュアル」は、 │
│ 「いちばんやさしいゲームの作り方」が運営しています。 │
│ │
│ サイト : http://www.game-create.com/ │
│ 発行元 : http://www.game-create.com/menu/about │
│ 発行者 : http://www.game-create.com/menu/profile │
│ 問い合わせ : http://www.game-create.com/menu/contact │
│ 利用規約 : http://www.game-create.com/informations/agreement │
├┐ ┌┤
└┴───────────────────────────────┴┘
POWERED BY LIBERTIASTER GAME STYLE.


