X-shot akinori quno yuta 親 tomo acco プレゼンの流れ モチベーション アプリケーション概要 設計 実装 デモビデオ モチベーション 実世界指向インタフェース X-Bar プラットフォームに依存しないゲーム Java , Java3D プログラミングスキルの向上 アプリケーションの概要 3Dシューティング ゲーム 位置情報を3D空間に マッピング ディスプレイにJava3Dで 表示 ユーザ 位置情報センサ GUI 使用するハードウェア PC 1台 X-Bar タグ2個 システム構成図 位置情報 (X,Y,Z) X-Bar polaris (位置情報 サーバ) 銃の向き情報 銃 タグ 位置情報 (X,Y,Z) Position Information Client 大砲の発射 キーボード Java3D 弾丸を 飛ばす 実装 Java3DによるGUI シーングラフ 弾と対象物の当たり判定 Java3Dの衝突判定 銃口の向き計算 座標系について IS-600から送られてくる値の誤差 シーングラフ例 仮想空間 移動 ボディー 自動車 視点 シャーシ エンジン 前車軸 右タイヤ 回転 後車軸 左タイヤ 右タイヤ 左タイヤ 実際のシーングラフ SimpleUniverse createStage athletics もの setting 背景・照明 createGameObject createPlayer createEnemy PlayerController CollisionBounds 銃の動き 当たり判定 敵を作る createCamera ユーザの動き 弾の当たり判定 Java3Dの衝突判定機能を使用 ■弾 ・影響範囲 ・動き ・変更許可 ■対象物 ・影響範囲 ・消す処理 ・変更許可 銃の照準方向を計算 IS-600 2つのタグの位置情報 → 照準のベクトル 注意した点 座標系の違い 取得した値の誤差 IS-600の座標系とJava3Dの座標系 y x z y x z IS-600 IS-600 北から南を向いている時 Java3D ディスプレイ方向 IS-600から得られる値の誤差 IS600はおかしな IS-600から0.01秒毎に値をとって 値を送ってくること カーソルのアニメーション がある!! これを解決するアルゴ リズムを考えなくては ならなない 誤差を緩和するアルゴリズム(1) IS-600から0.01秒毎に値を得る 一つ前の値との 差が0.2m以上の場合 no yes はずれ値と判断して 切捨て、変わりに一つ 前の値を代入 この作業を値が10個 たまるまで続ける 保存 10個たまった時点で平均を出す。 信頼性の高い 値が0.1秒間 隔で得られる 誤差を緩和するアルゴリズム(2) 値が10個たまった時点で平均を出す * 二つの平均の値の間を10等分する ◆信頼性が高い値 ◆比較的滑らかな アニメーション 2 誤差を緩和するアルゴリズムの限界 平均する値や分割する値を無限にすれば 限りなく信頼性の高い滑らかなアニメーションが実現可能 処理に時間がかかると 描画にディレイがかかる 分割する値を増やすと JAVA3Dでの描画が増える ため重くなる。 実際の動作 デモのビデオ
© Copyright 2024 ExpyDoc