挫折不可能!初級ゲームプログラミング完全マニュアル  RSSを登録する

「ゲームが作りたいけどプログラミングなんて全然知らない」「文系だし数学や物理が苦手だけどゲームが作れるだろうか?」そんなアナタのためのメールマガジンです。PCの電源を入れてからどうすればいいのか?から自分のゲームが完成するまでを応援します!

最新号をメルマガでお届けします    
登録 解除

規約に同意して

登録した方には、まぐまぐの公式メルマガ(無料)をお届けします。
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.
最新号をメルマガでお届け
登録 解除

規約に同意して

登録した方には、まぐまぐの公式メルマガ(無料)をお届けします。

最近の記事

上へ戻る