ざんないプログラマァのアプリ開発日記

ゲームエンジンUnityを使って何か創る

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

ローポリ スーパーテクニック

ローポリ スーパーテクニック


【CHAPTER1 キャラクターのデザインを考えよう】
 既存のイラストを3D化させるケース
  欲しいデザイン画と与えられるデザイン画
  欲してはいけないデザイン画
 オリジナルキャラクターのデザインを考える
  デザイン画を描こう!
  キャラクターを作る
 仕様を設計しよう!
  ローポリにセオリーはない!
  アクションRPGを想定したキャラクターを作ろう!
  3Dゲームを魅力的にする要素

【CHAPTER2 ゲームで使えるキャラクタを作ろう:モデリング】
 Metasequoia でキャラクターを作る!
 頭のモデリングからはじめよう
  まずはテンプレートを作る
  顔の輪郭をなぞる
  頭部の面の作成
 前髪と後ろ髪のモデリング
  前髪のモデリング
  後ろ髪のモデリング
 ボディを作る
  ボディのシルエットを描く
  腕を作る
  肩の関節
  股の関節
  Metasequia での関節テスト方法
  ディテールアップのコツ
 靴と手を作る
  手のモデリング
  キャラクターの身長設定
 衣装のモデリング
  ハットを作る

【CHAPTER3 ゲームで使えるキャラクタを作ろう:UV展開&テクスチャ】
 UV展開とテクスチャ
  テクスチャフィルタリング
  UVとテクスチャの関係
  UVを開こう!
  UVのレイアウト
  テクスチャ分割
 Photoshop と SAI でのテクスチャドロー
  ボディを塗る
  仕上げ
  表情を作る 

【CHAPTER4 1体目をベースに2体目のキャラクターを作る】
 旅の仲間を作ろう
  再びキャラクターのデザインを考える
 2体目のモデリング
  UV作業
  テクスチャ作業
  法線編集 

【CHAPTER5 ヴネットモデリングで世界観を作り上げる】
 ヴネット風に仕上げる
 ヴネットのモデリング
  画面の方向
  台座を歪ませヴィネットらしさを出す
  葉のベースを作る
  時間の演出
  エフェクトと影
  キャストシャドウ
  頂点カラー
  ループテクスチャの作成
  葉を生やす

【COLUMN】
  見極め
  アニメ版権モノ
  デッサン力とドローイング力
  キャラクターデザインとは?
  ローポリの正体
  ゲームって何だろう
  無駄な構えでした・・・
  レゾリューション・トラップ
  ハードによって得意とする規格が違う
  Metasequoia のビュー操作
  輪郭トラップ
  魔法の数字 89.5
  ローポリ屋にしか作れないポリゴン
  ポリゴン数を多く見えるようにするコツ
  背景色などの環境設定
  両面ポリゴンと両面表示
  モデルチェック



≪レビュー≫
本書は、キャラクターの作成に特化した内容となっています。
ローポリゴンモデリング、UV展開やテクスチャの描き方など一つの例として参考になります。
モデリング方法などはソフトに限定されずに応用できると思います。

解説には Metasequoia というモデリングソフトを使用しています。
フリーで配布され多くのユーザーに使用しており、解説サイトも多数です。

付属の CD-ROM には mqoファイル(Metasequoiaサンプル)や 3ds Max9 でのセットアップ済みのシーンデータが収録されています。
maxファイルは、最新の 3ds Max 体験版でデータを確認することができます。
3ds Max は非常に高額なソフトですが、キャラクタアニメーションがどのような方法で動いているのか参考になるかもしれません。
  1. 2010/10/05(火) 16:40:56|
  2. 書籍
  3. | トラックバック:0
  4. | コメント:0

ローポリモデリング 3DゲームのためのCG制作入門

ローポリモデリング 3DゲームのためのCG制作入門


【Chapter 1 ローポリモデリングとは】
 1-1 ローポリモデルの正体と使われ方
 1-2 ローポリのすすめ
 1-3 ローポリモデルの利点と欠点
 1-4 ローポリモデリングの心得
 
【Chapter2 LightWave 3D基本情報】
 2-1 LightWave 3Dの基本
 2-2 LightWave 3D ver7.5の画面の説明
 2-3 とりあえず何か形を作ってみる
 
【Chapter3 ポリゴンモデルの基本】
 3-1 ティーセットをモデリング
 3-2 立体を読み取る
 3-3 プリミティブから胴体を作る
 3-4 ポイントから形を作る
 3-5 UVマップの設定
 3-6 テクスチャの描画
 3-7 サーフェイスの設定~完成
 3-8 カップやソーサーなどを作る
 
【Chapter4 簡単なキャラクターを作る】
 4-1 キャラクターデザインの基本
 4-2 モンスターをデザインする
 4-3 モンスターのモデリング
 4-4 UVマッピング
 4-5 テクスチャ
 4-6 ボーン
 4-7 ウェイトマップ
 4-8 キャラクターモデルの完成
 
【Chapter5 人間型キャラクターのモデリングのポイント】
 5-1 キャラクターをデザインする
 5-2 モデリングのポイント
 5-3 顔のモデリング
 5-4 手足のモデリング
 5-5 髪の毛の表現
 5-6 ウエイトマップとボーン
 5-7 テクスチャとUVマップ
 5-8 小物のモデリング
 5-9 テクスチャで明暗を表現する
 
【Chapter6 背景】
 6-1 背景モデルの作り方
 6-2 木や植物はどのように出来ているか
 6-3 建造物の制作ポイント
 6-4 背景のブロック化
 
【Chapter7 応用Tips よりよく見せるために】
 7-1 キャラクターの関節の考え方
 7-2 ローポリモデルはテクスチャのためのキャンバスである
 7-3 ローポリの難点、曲面の扱い方
 7-4 ポリゴン減らしのテクニック
 7-5 テクスチャとポリゴンのディテール配分
 7-6 少ないテクスチャを有効活用する
 7-7 テクスチャ解像度の少なさを隠すUVテクニック
 7-8 小さいテクスチャを塗るときの注意点
 7-9 ポリゴン数とテクスチャサイズ
 7-10 バランスの取り方
 7-11 ゲームのためのローポリモデリング
 
【Chapter8 3DCG制作雑記】
 8-1 あなたの欲しい絵柄は?
 8-2 実は背景の方が目立つ?!
 8-3 ローポリで映えるデザイン
 8-4 なんでも作れる方がいい
 8-5 楽しむためか、仕事のためか
 
【Appendix ローポリモデリングでよく使うLightWave3Dの機能】
 A-1 ポイント、ポリゴンを作る、消す
 A-2 ポイント、ポリゴンを操作する
 A-3 ポイントを追加、ポリゴンを分割する
 A-4 ポイント、ポリゴンをまとめる
 A-5 その他のポイント、ポリゴン操作
 A-6 UVマップの操作
 A-7 ウェイトマップの操作
 A-8 スケルゴンの操作
 A-9 主なコマンド位置



≪レビュー≫
近年では、PCやPS3などといったマシンの性能向上と共にハイポリゴンが使用される機会が多くなりました。
しかし、DSやPSPなど限られた資源のなかで、スムーズかつクオリティを向上させるにはローポリゴンの技術が求められるかと思います。
オリジナルでゲームを作成するうえでもローポリゴンの技術は有効ではないでしょうか。

解説には LightWave 3D を使用していますが、考え方やモデリング方法などはソフトに限定されずに応用できると思います。
細かなデティールなどはテクスチャで表現したり、キャラクタの関節の考え方などポリゴンを減らすためのノウハウが詰め込まれています。
  1. 2010/10/04(月) 15:25:54|
  2. 書籍
  3. | トラックバック:0
  4. | コメント:0

OpenGLで作るiPhone SDKゲームプログラミング

OpenGLで作るiPhone SDKゲームプログラミング

【序章 iPhoneゲームプログラミングに向けて】
0-1 iPhoneゲームプログラミングの面白さ
 0-1-1 CoreGraphicsとOpenGL
 0-1-2 iPhoneにおけるOpenGLプログラミング
0-2 本書の使い方
 0-2-1 本書を読む上で必要となる知識
 0-2-2 本書で扱う内容
 0-2-3 本書で扱わない内容
 0-2-4 その他の注意事項

【第1章 OpenGL(2D)】
1-1 iPhoneにおけるOpenGL
 1-1-1 OpenGL ES Applicationの全体像
 1-1-2 render関数の流れ
 1-1-3 レンダラーの設定
 1-1-4 ビルドして実行
1-2 座標系
1-2-1 座標系の変更
1-2-2 ビルドして実行
1-3 ポリゴンの描画
 1-3-1 ポリゴンの描画の流れ
1-4 ライブラリの作成
 1-4-1 下準備:Objective-C++の有効化
 1-4-2 モジュール、ヘッダファイルの追加
 1-4-3 正方形のポリゴン描画関数の作成
 1-4-4 OpenGLの設定部分と描画部分の分離
 1-4-5 色付きの正方形の描画関数の作成
 1-4-6 指定した座標へ正方形を描画する関数の作成
 1-4-7 長方形を描画する関数の作成
 1-4-8 円を描画する関数の作成
1-5 アルファブレンディング
 1-5-1 アルファブレンディングの使い方
 1-5-2 さまざまなアルファブレンディング
1-6 テクスチャ
 1-6-1 テクスチャ描画の流れ
 1-6-2 テクスチャを使用するための下準備
 1-6-3 テクスチャの生成
 1-6-4 テクスチャの描画
 1-6-5 テクスチャマッピング
 1-6-6 テクスチャ描画関数の作成
1-7 数字の描画関数の作成
 1-7-1 1桁の数字を描画する
 1-7-2 複数桁の数字を描画する
1-8 マトリクス変換
 1-8-1 マトリクス変換とは
 1-8-2 OpenGL ES Applicationテンプレートにおけるマトリクス変換
 1-8-3 マトリクス変換の使い方
 1-8-4 平行移動(glTranslatef)
 1-8-5 回転(glRotatef)
 1-8-6 拡大縮小(glScalef)
 1-8-7 マトリクス変換の適用される範囲
 1-8-8 組み合わせて使う場合の注意

【第2章 ハエたたき】
2-1 プロジェクトの設計
2-2 プロジェクトの作成
 2-2-1 新しいOpenGL ES Applicationの作成
 2-2-2 座標系の設定
 2-2-3 グラフィック用ライブラリの追加
2-3 背景画像の表示
 2-3-1 テクスチャの読み込み
 2-3-1 テクスチャの描画
2-4 標的の表示
 2-4-1 テクスチャの読み込み、描画
 2-4-2 標的の回転
 2-4-3 標的の移動
 2-4-4 標的の拡大縮小
2-5 標的を動かしてみる
 2-5-1 直線移動
 2-5-2 ワープ処理
 2-5-3 旋回処理
 2-5-4 方向転換処理
2-6 当たり判定
 2-6-1 レンダラーとビュー
 2-6-2 タッチイベントの補足
 2-6-3 ビューとレンダラーとの連携
 2-6-4 タッチされたポイントと標的の座標との当たり判定の計算
 2-6-5 タッチされた後の処理
2-7 標的の追加
 2-7-1 標的クラスの作成
 2-7-2 MyTargetクラスへの置き換え
 2-7-3 リファクタリング
 2-7-4 標的を増やす
2-8 点数の付け方
 2-8-1 点数のカウント
 2-8-2 点数の描画
2-9 制限時間の設定
 2-9-1 経過時間の計算
 2-9-2 残り時間の表示
 2-9-3 ゲームオーバー後の処理
 2-9-4 リファクタリング
 2-9-5 リトライボタンの追加
2-10 サウンド
 2-10-1 AVAudioPlayer
 2-10-2 効果音の再生
 2-10-3 BGMの再生
 
【第3章 パーティクルシステム】
3-1 パーティクルシステムとは
 3-1-1 パーティクルシステムのメリットとデメリット
 3-1-2 パーティクルシステムの原理
3-2 パーティクルシステムの実装
 3-2-1 新しいOpenGL ES Applicationの作成
 3-2-2 パーティクルの大量表示
 3-2-3 パーティクルのライフサイクル
 3-2-4 パーティクルの動的追加
 3-2-5 リファクタリング
 3-2-6 パーティクルを動かす
 3-2-7 パーティクルの破棄
 3-2-8 時間に応じた変化
3-3 パーティクルシステムの高速化
 3-3-1 描画の高速化
 3-3-2 パーティクルの最大数の指定
 3-3-3 パーティクルシルテムのバリエーション
3-4 ハエたたきゲームへの応用
 3-4-1 パーティクルシステムの追加
 3-4-2 標的の動きの軌跡
 3-4-3 攻撃時のエフェクト

【第4章 レースゲーム(2D)】
4-1 プロジェクトの設計
4-2 プロジェクトの作成
 4-2-1 OpenGL ES Applicationの作成
 4-2-2 ランドスケープモード
4-3 ゲームクラスの導入
 4-3-1 ゲームクラスを導入する理由
 4-3-2 MyGameクラスの作成
 4-3-3 MyGameクラスとビュー、レンダラーの連携
 4-3-4 レンダラーとゲーム情報の分離
4-4 インターフェースの作成
 4-4-1 ボタンの作成
 4-4-2 アクセルのオンとオフ
4-5 ゲームの進行部分の作成
 4-5-1 ゲーム進行用メソッド
 4-5-2 車の移動
 4-5-3 車の左右旋回
4-6 リファクタリング
 4-6-1 車を扱うMyCarクラスの導入
4-7 コースの実装
 4-7-1 コース画像の表示
 4-7-2 車のサイズとスピードの調整
 4-7-3 チェックポイント
4-8 周回とラップタイム
 4-8-1 周回を管理する
 4-8-2 ラップタイムの計測
4-9 見た目の改良
 4-9-1 パーティクルシステムで軌跡を表示する

【第5章 衝突判定と衝突応答】
5-1 衝突判定と衝突応答とは
5-2 衝突判定と衝突応答の実装
 5-2-1 新しいOpenGL ES Applicationの作成
 5-2-2 ゲームクラスの作成
 5-2-3 ボールの描画と移動
 5-2-4 慣性力のコントロール
5-3 ベクトルの導入
 5-3-1 ベクトルとは
 5-3-2 ベクトルの実装
 5-3-3 graphicUtilのVector2D対応
 5-3-4 Vector2Dへの置き換え
5-4 ベクトルの計算
 5-4-1 ベクトルの加算
 5-4-2 ベクトルの減算
 5-4-3 ベクトルの乗除
 5-4-4 ベクトルの長さの計算
 5-4-5 単位ベクトル
 5-4-6 内積を求める関数
5-5 外枠との衝突
 5-5-1 枠の上の部分との衝突
 5-5-2 残りの3辺との衝突
5-6 円同士の衝突
 5-6-1 円を扱うCircleクラスの作成
 5-6-2 円同士の衝突の判定
 5-6-3 衝突応答
 5-6-4 円の可能性
5-7 レースゲームへの応用(Vector2Dクラス、Circleクラスの導入)
 5-7-1 MyCarクラスの変更
 5-7-2 外枠との衝突
 5-7-3 円形障害物の追加
 5-7-4 グリップ感の演出
5-8 グラフィックの改善
 5-8-1 衝突時のエフェクト
 5-8-2 ドリフト中のパーティクル発生
 5-8-3 自車の中央表示
 5-8-4 ピットボードの作成

【第6章 レースゲーム(3D)】
6-1 3Dの基礎
 6-1-1 座標系
 6-1-2 OpenGLにおける2Dと3D
 6-1-3 射影
 6-1-4 深度テストと深度バッファ
6-2 見た目の3D化
 6-2-1 視野の設定
 6-2-2 3D部分と2D部分
6-3 3Dのポリゴン
 6-3-1 3D座標の表現
 6-3-2 コースの壁
 6-3-3 タイヤバリアの描画
 6-3-4 高速化
6-4 頂点バッファオブジェクト(VBO)
 6-4-1 頂点バッファオブジェクトの使い方
 6-4-2 頂点バッファオブジェクトの使用
6-5 車の描画
 6-5-1 タイヤの描画
 6-5-2 ボディの描画
6-6 仕上げ



≪レビュー≫
iPhone で本格的なゲームを作りたいなら2Dから3Dまで高速かつ豪華なグラフィックス描画を実現できる OpenGL ライブラリが効果的です。
OpenGL は iPhone に限らず Windows や Mac 家庭用のゲーム機など多くのプラットフォーム上で動作するライブラリです。

ゲームの基本となる知識が詰め込まれていますが、初心者の方には本書だけでは難しいかもしれません。ゲーム製作の経験があるなら進みやすい内容となっています。
サンプルの「ハエたたき」「3Dレース」は綺麗に出来ていて良い動きをしています。さらなる改良を加えることで理解が深まります。

iPhone で OpenGL を導入したいと考えている方には面白い内容だと思います。
ソースコードは Web 上からダウンロード可能です。


Unity 3D を知る前に、iPhone で OpenGL の導入にと購入。
Unity 3D のチュートリアルを体験しながら思うことは、この「ハエたたき」ゲーム…チュートリアルの知識で作成できてしまうのではないか?!
チュートリアルが一通り終わったらどこまで出来るかチャレンジしてみよう。
  1. 2010/09/08(水) 22:18:21|
  2. 書籍
  3. | トラックバック:0
  4. | コメント:0

アクションゲームアルゴリズムマニアックス

アクションゲームアルゴリズムマニアックス

【Stage 00 序章 Introduction】
・アクションゲームの基本構成
・アクションゲームの進行
  フレームとは
・当たり判定処理とは
  当たり判定処理の例
・タスクシステムとは
・アクションゲームを作るには
・プラットフォームと開発環境
  プラットフォーム/開発環境
・サンプルプログラム
・サンプルプログラムの実行方法
・開発環境の準備
【Stage 01 移動 Move】
・レバーダッシュ
・ボタンダッシュ
・レバー2段ダッシュ
・連打ダッシュ
・スピードアップアイテム
・氷ですべる
・泳ぐ
・ライン移動
・画面端ワープ
・移動するとライフが減る
・入力と逆の方向へ動く
・ループ
  ループの応用
【Stage 02 ジャンプ Jump】
・固定長ジャンプ
・可変長ジャンプ
  固定長と可変長
・2段ジャンプ
・三角跳び
・飛び降り
  床の端から落ちる
・ジャンプ飛行
・ジャンプ角度調整
・床アタック
・踏みつけ
・踏み切り板
【Stage 03 仕掛け Gimmick】
・ロープ
・はしご
・トランポリン
・抜ける床
・回転ドア
・ドア飛ばし
・ドア閉じ込め
・エレベーター
・動く足場
・ベルトコンベア
・上昇気流
・ワープゲート
・切り替わる通路
・壁を壊して通路を作る
【Stage 04 地形利用 Land Features】
・壁や天井に張り付く
・岩落とし
・ものを押して動かす
・氷を押す
・自動穴
・手動穴
・ロープを張る
・足場を作る
・壁を倒す
・地面を落とす
【Stage 05 特殊行動 Special Motion】
・スケートボード
・自動車
・動物
・シーソー
・振り子
・しゃがむ
・丸まる
・巨大化
・複数キャラクターの操作
【Stage 06 武器 Weapon】
・剣
・ムチ
・跳ねるボール
・手榴弾
・時限爆弾
・爆煙
・マシンガン
・誘導ミサイル
・ブーメラン
・リモコン武器
・盾
・煙幕
・泡
・武器切り替え
【Stage 07 アイテム Item】
・アイテムで無敵になる
・アイテムを拾って投げる
・舞い落ちるアイテム
・特定の場所を通るとアイテム出現
・特定の場所を攻撃するとアイテム出現
【Stage 08 ミッション Mission】
・すべての敵を倒す
・すべてのアイテムを取る
・味方を助ける
・ペイント
・目的地へいく
・待ち行列の処理
・ものを撃ち合う
【Bonus Stage 付録 Appendix】
  デモプログラム一覧/引用ゲーム一覧/索引
【Extra Stage 攻撃 Attack(CD-ROM収録)】
・体当たり攻撃
・ジャンプ攻撃
・つかみ攻撃
・足止め攻撃
・罠
・全範囲攻撃
・ため攻撃
・突き飛ばし攻撃
・落下物攻撃
・コンボ
・間合いで攻撃が変わる
・背後攻撃
・レバガチャで敵を振りほどく



≪レビュー≫
アルゴリズム マニアックス シリーズは、様々な場面で使える豊富なサンプルが用意されています。
サンプルは簡潔にまとめられており分かり易く、組み合わせることでオリジナルのゲームを作成できます。
あのゲームのあの動き!!というのが見つかる。「動き」の仕組みが満載なのとても参考になります。
サンプルのパラメーターをいじったり、改良を加えて動作を確認することで動かしながら学べる。
  1. 2010/09/02(木) 14:50:45|
  2. 書籍
  3. | トラックバック:2
  4. | コメント:0

パズルゲームアルゴリズムマニアックス

パズルゲームアルゴリズムマニアックス


【Stage00 序章 Introduction】
 ・パズルゲームの基本構造
 ・パズルゲームを作るには
 ・サンプルプログラムの紹介
  サンプルプログラムの実行方法/サンプルプログラムのビルド方法

【Stage01 動かす Move】
 ・迷路を歩く
  セルの管理/キャラクターを移動させる/クラスの構成
 ・荷物を押す
 ・滑る荷物を押す
 ・重力で落ちる荷物を押す
  荷物を細かく動かす
 ・自律的に動くキャラクター
  歩行キャラクター/掘削キャラクター
 ・遅れて追随するカーソル
  ボールの入れ替え

【Stage02 落とす Drop】
 ・ブロックを落とす
  落下速度を変化させる/ブロックの接触判定/セル座標の更新
 ・ブロックを左右に移動する
 ・ブロックを回転させる
 ・ブロックを1段揃えて消す
 ・次のブロックを表示する
 ・落下予測位置を表示する
 ・宝石を落とす
 ・宝石の順番を変える
 ・縦横斜めに揃える
  連鎖的に宝石を消す
 ・ボールを落とす
 ・障害物をさけながらボールを回転させる
  下に障害物がある場合の処理
 ・着地したボールが2つに分かれる
 ・連鎖的に消す
 ・相手側にボールを降らせる
  攻撃ボールの数/ボールを降らせる
 ・一度では消えないボール
 ・3次元のブロックを落とす
  ブロックを移動させる
 ・3次元のブロックを回転させる
 ・3次元のブロックを1段揃えて消す

【Stage03 つなぐ Connect】
 ・線路をつなぐ
  カーソルを動かす
 ・線路に沿って進むキャラクター
  滑らかに線路の上を動かす
 ・キャラクターの進路を予測して表示する
 ・パイプをつなぐ
  パイプを配置する/液体の進路を予想する
 ・結合して形を作る
  物体を結合する/物体の移動と分離
 ・線で囲む
  新しい線を引く
 ・囲んだ領域を塗りつぶす
 ・囲まれた領域を避けて動く敵
 ・一筆書きでアイテムを回収する
  ステージ作成のポイント
 ・言葉を作る
  言葉ができたかどうかの判定

【Stage04 ブロック Block】
 ・ブロックを短形にして消す
  短形状に並んでいるかどうかを確認する
 ・ブロックを変形させる
 ・ブロックをぶつけて壊す
  衝撃を広げる
 ・ステージを回転させる
 ・エサのブロックを消す
 ・つながったブロックを消す
 ・ブロックを引き寄せて撃つ
 ・ブロックを突き落として集める
 ・落ちてくるブロックを拾って積む
 ・床をマークしてブロックを消す

【Stage05 ボール Ball】
 ・軌道に沿って進むボール
  軌道を表現する/ボールの位置を確認する/ボールの座標を計算する
 ・新しいボールを軌道状に追加する
 ・ボールを任意の方向に撃つ
 ・ボールを軌道に撃ち込む
  追加位置を決める
 ・軌道状に並んだボールを消す
  ボールを除々に消す
 ・ぶら下がったボール
  ボールの座標
 ・撃ったボールが跳ね返る
 ・撃ったボールがぶら下がる
 ・ぶら下がった同じ種類のボールを消す
 ・ボールの軌道を予測して表示する
 ・ボールを拾って集める
  ボールを拾う/ボールを戻す
 ・ボールを入れ替える
 ・ボールをヘビ状に動かす
 ・ばねでボールを撃つ
 ・転がる大量のボール

【Stage06 その他 Others】
 ・アイテムの位置を記憶する
 ・地図を頼りにアイテムを探す
 ・荷物を指定の場所に運ぶ
 ・床を作って進む
 ・サイコロを揃えて消す
 ・建物を建てる


≪レビュー≫
定番の倉庫番や落ちゲー、あれ?これ遊んだことある!覚えのあるゲームの仕組みを、そこに登場するさまざまなアルゴリズムを紹介しながら解説しています。実在のゲームに基づいた要素を引用しているので分かりやすい。
サンプルは Windows アプリケーションです。使用言語はC++。
グラフィック、入力には DirectX を使用しています。
  1. 2010/08/26(木) 06:29:50|
  2. 書籍
  3. | トラックバック:0
  4. | コメント:0

Effective C++ 原著第3版

Effective C++ 原著第3版


【第1章 C++に慣れよう】
  1項 C++を複数の言語の連合とみなそう
  2項 #defineより、const、enum、inlineを使おう
  3項 可能ならいつでもconstを使おう
  4項 オブジェクトは、使う前に初期化しよう
【第2章 コンストラクタ、デストラクタ、コピー代入演算子】
  5項 C++が自動で書き、自動で呼び出す関数を知ろう
  6項 コンパイラが自動生成することを望まない関数は、使用を禁止しよう
  7項 ポリモーフィズムのための基底クラスには仮想デストラクタを宣言しよう
  8項 デストラクタから例外をなげないようにしよう
  9項 コンストラクタやデストラクタ内では決して仮想関数を呼び出さないようにしよう
 10項 代入演算子は*thisへの参照を戻すようにしよう
 11項 operator=の実装では、自己代入に備えよう
 12項 コピーするときは、オブジェクトの全体をコピーしよう
【第3章 リソース管理】
 13項 リソース管理にオブジェクトを使おう
 14項 リソース管理クラスのコピーの振る舞いはよく考えて決めよう
 15項 リソース管理クラスには、リソースそのものへのアクセス方法を付けよう
 16項 対応するnewとdeleteは同じ形のものを使おう
 17項 newで生成したオブジェクトをスマートポインタに渡すのは、独立したステートメントで行うようにしよう
【第4章 デザインと宣言】
 18項 インターフェースは、正しく使うときには使いやすく、間違った使い方では使いにくいものにしよう
 19項 クラスのデザインを型のデザインとして考えよう
 20項 値渡しよりconst参照渡しを使おう
 21項 オブジェクトを戻すべき時に参照を戻そうとしないこと
 22項 データメンバはprivate宣言しよう
 23項 メンバ関数より、メンバでもfriendでもない関数を使おう
 24項 すべての引数に型変換が必要なら、メンバでない関数を宣言しよう
 25項 例外を投げないswapを考えよう
【第5章 実装】
 26項 変数の定義は可能な限り先延ばししよう
 27項 キャストは最小限にしよう
 28項 オブジェクト内部のデータへの「ハンドル」を戻さないようにしよう
 29項 コードを例外安全なものにしよう
 30項 インラインをよく理解しよう
 31項 ファイル間のコンパイリ依存性をなるべく小さくしよう
【第6章 継承とオブジェクト指向設計】
 32項 public継承はis-a関係を表すようにしよう
 33項 継承した名前を隠蔽しないようにしよう
 34項 インターフェースの継承と実装の継承の区別をしよう
 35項 仮想関数の代わりになるものを考えよう
 36項 非仮想関数を派生クラスで再定義しないこと
 37項 継承された関数のデフォルト引数値を再定義しない
 38項 コンポジションを使ってhas-a関係、is-implemented-in-terms-of関係を作ろう
 39項 private継承は賢く使おう
 40項 多重継承は賢くつかおう
【第7章 テンプレートとジェネリックプログラミング】
 41項 暗黙のインターフェースとコンパイル時ポリモーフィズムを理解しよう
 42項 typenameの2つの意味を理解しよう
 43項 テンプレート化された基底クラス内の名前へアクセス方法を知っておこう
 44項 パラメータに依存しないコードはテンプレートから外に出そう
 45項 「すべての互換型」を受け取るためにメンバ関数テンプレートを使おう
 46項 型変換をさせたいなら、メンバでない関数をクラステンプレートの中で定義しよう
 47項 型の情報に関してはtraitsクラスを使おう
 48項 テンプレートメタプログラミングを意識しよう
【第8章 newとdeleteのカスタマイズ】
 49項 new-handlerを理解しよう
 50項 どういうときにnewとdeleteの定義を自分で書くとよいか理解しよう
 51項 newとdeleteの定義を自分で書く場合は、コンベンションに従おう
 52項 プレースメントnewの定義を書いたらプレースメントdeleteの定義も書こう
【第9章 いろいろな事】
 53項 コンパイラの警告に注意を払おう
 54項 TR1を含む標準ライブラリになじもう
 55項 Boostに親しもう
 付録A Effective C++を超えて
 付録B 第2版と第3版の対応表



≪レビュー≫
初版から長い年月をかけて続くシリーズ第3版。
初版は未確認ですが、内容も進化しているようです。
第3版には不自然な訳がいくつかありましたが、第2版より内容が豊富になっています。
C++プログラマにとってもっとも重要な一般的ガイドラインが示された一冊。
  1. 2010/08/11(水) 16:30:09|
  2. 書籍
  3. | トラックバック:0
  4. | コメント:0

ゲームプログラマになる前に覚えておきたい技術

ゲームプログラマになる前に覚えておきたい技術


≪Part1 2次元のゲーム≫
【Chapter1 はじまりのゲーム】
 1-1 パズルゲームを作ってみる
 1-2 サンプルコードの解説
 1-3 ステージデータ読みこみ機能をつける
 1-4 C++について補足
 1-5 おまけ:フラグとビット演算
 1-6 おまけ:ポインタとメモリ
 1-7 おまけ:参照
【Chapter2 点から始める2Dグラフィックス】
 2-1 2Dグラフィックとは何か
 2-2 準備
 2-3 点を打ってみよう
 2-4 荷物君を移植する
 2-5 おまけ:終了処理
【Chapter3 描いた絵を使う】
 3-1 ファイルから画像を読みこむ
 3-2 画像付き荷物君のサンプルコード
 3-3 アルファチャネルを使う
 3-4 インクルード関係の決め方
 3-5 おまけ:アルファブレンドの高速化
 3-6 おまけ:加算ブレンド
【Chapter4 リアルタイムなゲーム】
 4-1 リアルタイムなゲームとは
 4-2 アニメーションさせる
 4-3 アニメーション付き荷物君サンプル
 4-4 フレームレートを取得する
 4-5 フレームレートの差に対応する
 4-6 おまけ:フレームレートに合わせてゲームの進行速度を変える方法
 4-7 おまけ:ティアリング問題
【Chapter5 かんたんなシーケンス遷移】
 5-1 ライブラリ追加機能
 5-2 素直なやり方
 5-3 シーケンスを増やしてみる
 5-4 コードをチェック
 5-5 サンプルコードの解説
【Chapter6 文字の書き方】
 6-1 フォント用画像
 6-2 文字描画関数
 6-3 使いやすく
 6-4 使ってみる
 6-5 サンプルコードの解説
 6-6 著作権に注意!
 6-7 サンプルライブラリの機能
【Chapter7 はじめてのアクションゲーム】
 7-1 使用するライブラリについて
 7-2 「爆弾人」を作る
 7-3 サンプルの解説
 7-4 とりあえず背景だけ出してみる
 7-5 動くオブジェクトを配置する
 7-6 いよいよゲームにする
【Chapter8 平面の衝突処理】
 8-1 衝突検出
 8-2 衝突応答
 8-3 複数衝突問題
 8-4 衝突応答と操作性
 8-5 動く物同士が当たる
 8-6 爆弾人の衝突処理
【Chapter9 いろいろな入力装置】
 9-1 入力装置インスタンスの取得
 9-2 キーボード
 9-3 マウス
 9-4 ジョイスティック
 9-5 爆弾人をジョイスティックで操作する
【Chapter10 少しマシなシーケンス遷移】
 10-1 そもそも何が問題だったのか
 10-2 継承を使う
 10-3 実際に使う
 10-4 おまけ:シーケンス移動コードを短くする
 10-5 おまけ:階層間シーケンス移動も短くする
 10-6 おまけ:継承についてもう少し
【Chapter11 音を鳴らす】
 11-1 サウンドライブラリについて
 11-2 おまけ:コンピュータで音を鳴らすということ
 11-3 おまけ:音の高さと音の大きさ
 11-4 おまけ:音色
 11-5 おまけ:音の重ね合わせ
 11-6 おまけ:ドレミの原理
 11-7 おまけ:楽譜を読みこんで演奏する
 11-8 おまけ:wavファイルの読みこみ
 11-9 おまけ:Soundモジュールを使った波の合成
【Chapter12 回す、伸ばす、動かす】
 12-1 回転
 12-2 ベクタと行列の導入
 12-3 頂点という考え方
 12-4 拡大縮小
 12-5 拡大縮小しながら回す
 12-6 行列の威力
 12-7 おまけ:回転の式は何故これで正しいのか?
 12-8 おまけ:ちゃんと回す
 12-9 おまけ:数学の中の行列
【Chapter13 ハードウェアのパワー】
 13-1 使うライブラリについて
 13-2 グラフィックスハードウェアで三角形を描いてみる
 13-3 三角形に画像を貼る
 13-4 アルファブレンド
 13-5 回転、拡大縮小、移動
 13-6 爆弾人を移植する

≪Part2 3次元のゲーム≫
【Chapter14 立体を描く】
 14-1 ライブラリについて
 14-2 3Dアクションゲーム「ロボファイト」を作るには
 14-3 三角形を描く
 14-4 手前のものを手前に描く
 14-5 遠くのものを小さく描く
 14-6 座標変換
 14-7 透視変換も行列に
 14-8 「ロボファイト」を作り始めよう
 14-9 おまけ:zバッファ精度問題
【Chapter15 ライブラリの作り方】
 15-1 全体設計
 15-2 リソースの内訳
 15-3 使ってみよう
 15-4 ファイルからロードする
 15-5 おまけ:ライブラリをゲームから分離する
【Chapter16 XMLモドキを読む】
 16-1 ファイルフォーマットを決める
 16-2 作る前の準備
 16-3 処理の流れ
 16-4 文字列の解釈
 16-5 コードにする
 16-6 使う
 16-7 サンプルコード
16-8 おまけ:書き出し
【Chapter17 遅くないコードを書くために】
 17 - アルゴリズムと計算量オーダー
 17-2 データ構造の基礎
 17-3 スループットとレイテンシ
 17-4 並列性
 17-5 メモリの問題
 17-6 STLとデータ構造
 17-7 遅いのはどこか
 17-8 おまけ:関数呼び出しそのものの重さ
 17-9 おまけ:速い計算と遅い計算
【Chapter18 立体の衝突処理】
 18-1 直方体での衝突処理
 18-2 浮動小数点数を使った衝突検出
 18-3 三角形と線分の交差判定
 18-4 これで実用になるのか?
 18-5 残された問題点
【Chapter19 ロボファイトの設計】
 19-1 シーケンス遷移
 19-2 操作系
 19-3 弾を撃つ
 19-4 一つにまとめる
 19-5 フロントエンド
 19-6 やっぱり足りないもの
【Chapter20 光が当たるということ】
 20-1 物が見えるということ
 20-2 光が減っていく過程
 20-3 計算してみよう
 20-4 ロボファイトに入れてみよう
 20-5 おまけ:高速化のヒント
 20-6 おまけ:もうちょっとマシな絵にするには
【Chapter21 キャラクターが動き出す】
 21-1 相対移動
 21-2 階層モデルクラス
 21-3 木構造構築の自動化
 21-4 アニメーションのデータ化
 21-5 補間法
 21-6 ロボファイトに入れる
 21-7 おまけ:連立方程式vs決められた傾き
 21-8 おまけ:足りないもの

≪Part3 売り物への道≫
【Chapter22 遅くない衝突検出】
 22-1 とりあえず総当たりの遅さを実感してみる
 22-2 高速化の基本
 22-3 ソートに基づいた方法
 22-4 分割による方法
 22-5 おまけ:均等分割のさらなる改良
 22-6 おまけ:高度な空間分割
【Chapter23 ローディング】
 23-1 何故ロード時間は延びるのか
 23-2 ファイルローダクラス
 23-3 ファイル結合による高速化
 23-4 圧縮による高速化
 23-5 おまけ:マルチスレッドによる非同期処理
 23-6 おまけ:符号化
 23-7 おまけ:中身を見せないための結合と圧縮
【Chapter24 floatの使い方】
 24-1 桁数に限りがあるということ
 24-2 floatの中身
 24-3 中途半端な数による誤差
 24-4 誤差はどれくらい出るのか
 24-5 誤差を飼いならす
 24-6 特別な数
【Chapter25 付属ライブラリ本番仕様】
 25-1 ライブラリのクラスについて
 25-2 起動設定
 25-3 Frameworkモジュール
 25-4 WindowCreatorモジュール
 25-5 FileIOモジュール
 25-6 Baseモジュール
 25-7 Mathモジュール
 25-8 Threadingモジュール
 25-9 Inputモジュール
 25-10 Soundモジュール
 25-11 PseudoXmlモジュール
 25-12 Graphicsモジュール
 25-13 Sceneモジュール
 25-14 アンチエイリアス
 25-15 最終版ライブラリにロボファイトを移植する
 25-16 Xファイル
【Chapter26 バグとの付き合い方】
 26-1 防火と消火
 26-2 バグの種類
 26-3 「予防」あるいは「防火」のこと
 26-4 「治療」あるいは「消火」のこと
 26-5 ロボファイト安全仕様
 26-6 おまけ:メモリあふれ検出の中身
【Chapter27 もっと先へ】
 27-1 何を学べばいいのか
 27-2 ツール
 27-3 AI
 27-4 ネットワーク
 27-5 シェーダ
 27-6 参考文献
 27-7 こんな本があったらいいのに



≪レビュー≫
最近読みました。
いきなりゲームの作成から始まり、
2Dから3Dの知識、ライブラリの作り方に触れたりと幅広く、
たくさんの方々の協力もあり内容の濃い一冊となっています。
まさに、教科書のような存在です。
分厚いですが、C言語やC++に慣れている方、
ゲーム製作に覚えのある方であれば読みやすいかもしれません。
まったくの初心者であってもいずれ読むべきかと思います。
過去にこのような良書があれば…と感じました。
ライブラリを自作するのは大変ですが、付属ライブラリは
まとめられていて非常に参考になります。
  1. 2010/08/07(土) 08:06:43|
  2. 書籍
  3. | トラックバック:0
  4. | コメント:0
前のページ 次のページ

ざんないブログへようこそ!

KOH

Author:KOH
【開発環境】
Win(XP/7)/Mac Mini
Unity Pro + iOS Pro
3ds Max 2011
VS2008

【iOSアプリ】

I-C (3D puzzle) - PETITDIGI2012/09/07
I-C (3Dパズル)

I-C (3D puzzle) Free - PETITDIGI2012/09/07
I-C (3Dパズル)無料

【Androidアプリ】
I-C (3D puzzle) Free - PETITDIGI2012/11/22
I-C (3Dパズル)無料

【サイト】
・Unity 3D Selfish Training
・Unity 3D でオリジナルキャラクターを表示させる
・サイトマップ

書籍

カテゴリ

開発日記 (68)
アプリ第1弾 (37)
iPhone (16)
麻雀 (15)
Unity 3D (82)
何か作ってみよう (10)
セーブデータ (5)
開発関連 (37)
その他 Unity (28)
3ds Max (11)
体験したみた (9)
その他 3ds Max (2)
Titanium (7)
Studio (4)
iPhone (1)
Android (2)
情報 (47)
書籍 (18)
iPhone (19)
PC (2)
テレビ (4)
コンシューマ (3)
その他 情報 (1)
3.11東日本大震災 (0)
未分類 (1)

RSSリンクの表示

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。