160 likes | 345 Views
3D ビリヤードゲームの開発. 和島研究室 ソ 17002 阿部幸司. http://www.aomori-u.ac.jp/staff/wajima/lab/GR_2008/abe/. 目次. 背景 創作ゼミでの成果と不満点 開発環境 Comp の思考アルゴリズム ショット 自動配置 結果 研究を通じて得られたスキル 改善案. 背景. 創作ゼミで達成したこと. 創作ゼミナールでは 表示 2D ・ 3D (DirectX) 画面効果が地味→ わかりやすく・派手に サウンド なし→ 効果音で臨場感を出す Comp の思考
E N D
3Dビリヤードゲームの開発 和島研究室 ソ17002 阿部幸司 http://www.aomori-u.ac.jp/staff/wajima/lab/GR_2008/abe/
目次 • 背景 • 創作ゼミでの成果と不満点 • 開発環境 • Compの思考アルゴリズム • ショット • 自動配置 • 結果 • 研究を通じて得られたスキル • 改善案
背景 創作ゼミで達成したこと • 創作ゼミナールでは • 表示 • 2D ・ 3D (DirectX) • 画面効果が地味→ わかりやすく・派手に • サウンド • なし→効果音で臨場感を出す • Compの思考 • 標的の中心を狙う • なかなか落ちない→ポケットに落とす • 壁を利用して当てる • ターン初めのボールの配置がない • プレイヤー側が有利→Compに配置させる 標的の中心を狙う 壁を利用して当てる プレイヤーがボールを置く
開発環境 • 素材の作成 • Metasequoia • GIMP2.6.3 • ペイント • プログラム開発 • MicroSoftVisualStudio • Visual C++ • DirectXSDK
Compのショットの思考アルゴリズム 直接当てると手玉は止まり、標的は青の方向に進む 標的:落としたい的球
Compのショットの思考アルゴリズム ずらして当てると標的の進行方向が変わる
Compのショットの思考アルゴリズム 標的が落ち、手玉が落ちない方向を探してショットする
Compによる自動配置 • 標的に近いポケットを狙う • なるべく標的の近く • なるべくポケットの反対側 ポケットの中心 標的 交代した次のターンでは手玉を自由に置ける
Compによる自動配置 ポケットの中心 ボールの半径×5 標的 0.1radian回転 だめなら
Compによる自動配置 ポケットの中心 標的 10mm外へ
結果 • ルールの実装 • ローテーション・8ボール・9ボールの3タイプのルールの実装 • Compの思考 • 標的をポケットに落とすショット • 戦略的に有利になる位置に手玉を置く • 物理的挙動の再現 • ボール同士・壁との衝突の処理 • 視覚・聴覚的効果 • 3次元表示 • 効果音の使用 • ボール番号・ガイド線・マーカー表示 • ボールの再配置のアニメーション表示 • プレイ状況ごとの操作方法表示
研究を通じて得られたスキル • 剛体の運動のシミュレーション • 摩擦による減速 • 完全弾性衝突 • Visual C++のプログラミング • ゲーム以外のアプリケーション開発にも役立つ • DirectXの機能の使い方 • キーボードやパッドからの入力の処理 • 3D表示 • サウンドの再生 • 素材制作のためのツールの使い方 • Metasequoia • GIMP2.6.3
改善案 • 回転をかけたショット • 棒でボールの中心から外れた位置を撞くことができるようにする • ボールはカーブを描いて移動する
改善案 • ボールの転がる様子の再現 • 中断・セーブ機能 • 連鎖を考慮した打ち方 9 現時点のアルゴリズムではこのようなショットをしない 1 9番を落とすと勝ち 当ててもいいのは1番小さい番号のボール
改善案 • カメラ・注視点の平行移動ができるようにする 注視点がカメラとともに移動 注視点固定