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

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

スポンサーサイト

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

麻雀GUIについて考える

当初 OpenGL ES で予定していたが、今後の期待を込めて Unity 3D を考えている。

【選ぶ理由】
・移植性
Windows/Web/iPhone/iPad/iPodなど、同時開発できる。
おそらく解像度に合わせて、それぞれシーン(カメラ)やレイアウトを用意すればよい。
プロジェックトはプレハブやスクリプトならばそのまま持っていけるのではないか?
操作に関しては、クリック(タッチ)のみなら共通で使えるみたい。(iPhoneサンプルのタッチアプリがWindowsで遊べた)

・デバッグ
Windows 上で進めることができれば、配布して遊んでもらえばゲームの部分はある程度デバッグできる。
とは言ってもそれぞれの環境で開発するのが望ましい。

・グラフィック
パーティクルシステム、シェーダー等が簡単に使え画面ですぐに確認できる。
メモリに余裕があるならテクスチャのクオリティを上げたり、ポリゴンを増やしたり、プラットフォームに応じて対応できる。

【問題点】
・Unity の探究
形になるまでは時間がかかりそうだ…

・データ
テクスチャ。2D・3Dに関係なく必ず必要になる。
3Dデータは、FBXという汎用フォーマットを使用している。
なにかしら3Dソフトを扱える必要があるが、モデリング・ボーン・アニメーション等を含むソフトは高額…また、そう簡単ではない。
スポンサーサイト
  1. 2010/09/01(水) 08:06:59|
  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

麻雀で最多役はどんな手?

最多役とは、役の数が最も多くなるアガリ。
いろいろ考えた結果、下記になった。
役満より難しいと思うけど…

東場・東家、ハイテイ牌でロンアガリ。
・手牌
東東 白白     九九九九 發發發發 中中中中
    アガリ   暗カン 暗カン 暗カン
・役
1飜 
1飜 
河底撈魚 1飜 
ダブルリーチ 2飜 
連風牌 2飜 
対々和 2飜 
三暗刻 2飜 
三槓子 2飜 
混老頭 2飜 
小三元 2飜 
混一色 3飜 

合計 140符  20飜 

上記を考慮して、リザルト画面のレイアウトを考える。

麻雀点数計算機 開発: Athena
Mahjong
この計算機で上記の手牌を入力し、結果に進むとアプリが落ちる
ダブルリーチをOFFにして確認すると、最大で8つの役までしか対応できていない。 小三元は發・中を含んでいるようだ。
ダブルリーチを含めると9つの役になり予想GUYの領域にアクセスしているのかも。
このようにならない為にも可能な最多役を考えてみた。
続きを読む
  1. 2010/09/03(金) 05:17:44|
  2. 麻雀
  3. | トラックバック:0
  4. | コメント:0

「プレイステーション3」3D立体視ゲーム

ソニーの3D対応の液晶テレビ〈ブラビア〉を購入し、「プレイステーション3」3D立体視ゲームが無料でダウンロードできる!キャンペーン

ダウンロード対象タイトル
WipEout HD (全ステージ)
 スターウォーズに出てきそうな飛行船で未来都市を巡るレースゲーム。
 雰囲気やステージが立体視に一番合っている気がする。

STAR STRIKE HD (全ステージ)
 惑星(球面)上を移動しながら、迫る隕石や敵を倒す全方向シューティング。
 通常と比べるとやはり奥行きがありパーティクルは激しく迫ってくる。

Mr.PAIN (2D基本ステージ+一部3D立体視対応)
 いろいろな人型キャラクタを、巨大パチンコで砲ってダメージを競う自虐的的当てゲーム。
 1回のアクションが短く、そんなに立体視である必要性を感じない。

MotorStorm2 (体験版1ステージ)
 オフロードのコースをさまざまな車種で激走するレースゲーム。
 通常版でも面白いが立体視版はもっと楽しい。
 カメラ視点が2種あり、俯瞰視点の方が立体視の感覚を強く感じる。
 オブジェクト単位に立体視処理を行っているためか?
 静止状態だとビルボードのようなペラペラに見える部分が目立つ。



立体視を体験してみが、思っていた以上に面白い。
手前にというよりは奥行きの感覚を強く感じた。
これからのタイトルに期待大!!

メガネと裸眼の立体視には処理に違いがあるのだろうか?
どちらにせよ通常版と立体視版と…開発には負担がかかる。
  1. 2010/09/06(月) 07:22:19|
  2. テレビ
  3. | トラックバック:0
  4. | コメント:0

Unity 3d チュートリアルを体験してみた(1)

Unity 3D for Windows チュートリアル『3DPlatformTutorial
このチュートリアルは、3人称視点をもつ、完全な3Dプラットフォームゲームの開発プロセスを体験します。プレイヤ操作、衝突判定、スクリプト、ブロブシェーダ、基本AI、ゲームHUD、シーン切り替え、スポットオーディオ効果が含まれます。

学習できること
このチュートリアルはUnityでのゲーム開発における技術的な面に注目しています。次のことが学べます:
• キャラクタの操作
• プロジェクタ
• オーディオリスナー、オーディオソース、オーディオクリップ
• 複数カメラ (を、どのように切り替えるか)
• UnityGUI スクリプトシステム
• 衝突物
• メッセージとイベント
• ライティング
• パーティクルシステム
• ブロブシャドウ
• スクリプト (AI、ステートマシン、プレイヤ操作)

結構なボリュームがありそう…
圧縮ファイルを展開しプロジェクトを読み込ませるも、マニュアルが英語でサッパリ(`Д´≡`Д´)??

何も進まないので検索してみたら、どこかの豪い方々が日本語のドキュメントを作成されているようです。
非常にありがたい(TдT) 感謝のしようがありません。

日本語チュートリアルを見ながらでも、しばしば戸惑う…
殆ど用意されたものを配置やらリンクするだけの作業なのだが、英語なのでどこに何があるかをすぐに見つけることが出来ない。
細かいところで分かりにくいところがあったけれど、プレイヤーを動かしてアイテムを取得するところまで進めた。

  1. 2010/09/07(火) 17:12:52|
  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

Unity 3d チュートリアルを体験してみた(2)

Unity 3D for Windows チュートリアル『3DPlatformTutorial

Unity はエディタ上で編集した設定が、即時プレイで確認できる。
また、プレイ中の変化したパラメータも視覚的に確認できる。

チュートリアルをなんとか一通り終えることができた。
指示通りに設定しても思ったとおりに動作しない箇所がいくつかあった…

例えば、シーン切り替え(Cut Scenes) ドキュメント96ページ
アイテムを集めてシールドを解除すると、別カメラのカットシーンが流れる。
何度も設定を繰り返したが、プレイで思うように動作しない(表示されない)…
いろいろ試した結果、下記の設定で動作確認できた。

CutSceneCamera1 -> Inspector -> Camera にチェックを入れて有効にしておく。
※ドキュメントにはチェックを外しておくとある。

LevelStatus スクリプトの Awake() に下記を追加
unlockedCamera.active = false;
上記で Camera にチェックを入れていたのでここで無効する。


指示通りに CutSceneCamera1 -> Inspector -> Camera のチェックをはずすと、なぜか表示されない。
UnlockLevelExit() の unlockedCamera.active = true; が働いていない?

プレイ中はパラメータの変化が視覚的に確認できるはずなのだが、Camera のチェックマークは変化がない。
これは Unity のバグなのだろうか?


まだある。カメラの Smooth Look At の Target 設定。
1度目は失敗する。割り当てた後に、プレイで確認するとカメラがターゲットの反対を向いている。
停止して、再度割り当てると成功する…


自分の操作が悪いのか?
仕様なのか?
バグなのか?
分からない…
  1. 2010/09/09(木) 21:45:02|
  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ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。