リアル卓球 B2 Ryo
背景 ビデオゲームの普及 体を動かさなくなってきた
動機 現実世界に近い感覚でできるゲームがしたい センサー等のデバイスを使ったプログラミングをしてみたい 実際身体を動かして行うゲーム 複数人が手軽にできるゲーム センサー等のデバイスを使ったプログラミングをしてみたい
リアル卓球とは? 卓球のネットワーク対戦ゲーム ラケットの動きをモーションプロセッサで読み取る
ハードウェア構成 プレイヤー モーションプロセッサ コンピュータ ネットワーク コンピュータ モーションプロセッサ プレイヤー
システム構成 PC PC Java Java 描画 描画 ボールの移動 ボールの移動 軌道演算 得点判定 通信 通信 VB VB モーションプロセッサからの 情報取得 モーションプロセッサからの 情報取得 モーションプロセッサ モーションプロセッサ
画面描画 光源による陰影 半透明化 視点変更
Java3Dとは… JavaからDirect3Dなどを利用できるライブラリ 3D描画のために独自の時間やイベントのクラスを作成できる
Java3Dとは…(描画) グラフィックカードによる表示の違い 描画がマシン性能依存
得点判定 様々な状態を表すフラグをたてバウンド毎に判定 現在バウンドした場所はどこか 1つ前にバウンドした場所はどこか サーブであるかないか 最後に打ったのは誰か
軌道計算 軌道を違和感ないように調整し作成 跳ね返せる条件 空気抵抗 跳ね返り係数 重力 打つ強さ 打つ方向 自分のコートのボールで自分の方向に向かってくるボールのみ打てる
跳ね返り計算 XZ平面とYZ平面の2D上での計算結果ででるベクトルの合成により計算 Y X Z
跳ね返りのベクトル XZ、YZ平面で跳ね返りのベクトル(1)をベクトルの回転で求める ラケットの動きのベクトル(2)と(1)の合成ベクトル(3)に飛ぶ 3 1 2
感想 Ryo Javaのプログラムで共同開発するとき注意することとか学習できた 跳ね返りの計算とか苦労した