プロジェクト演習III,V <インタラクティブ・ゲーム制作> プログラミングコース

Slides:



Advertisements
Similar presentations
画像処理・実習 第十四回:パターン認識 東海大学 情報理工学部 情報メディア学科 濱本和彦. 今回の内容 5. パターン認識 5.1 マッチングの原理 5.2 テンプレートマッチング 実習 相互相関とテンプレートマッチング.
Advertisements

1 微分・ベクトル解析 (4) 講師:幹 浩文( A314) TA :西方良太 M 1 ( A305 ) A 1 03 ( 10 : 50~12 : 20 ) 【金】 https://
1 運動方程式の例2:重力. 2 x 軸、 y 軸、 z 軸方向の単位ベクトル(長さ1)。 x y z O 基本ベクトルの復習 もし軸が動かない場合は、座標で書くと、 参考:動く電車の中で基本ベクトルを考える場合は、 基本ベクトルは時間の関数になるので、 時間で微分して0にならない場合がある。
プロジェクト演習III,V <インタラクティブ・ゲーム制作> プログラミングコース
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第3回 配列(1) 情報・知能工学系 山本一公
コンソールの利用 零点・極と時間応答の関係 安定性 過渡応答の特性
プロジェクト演習Ⅳ インタラクティブゲーム制作 プログラミング4
情253 「ディジタルシステム設計 」 (3)Constellation3
・力のモーメント ・角運動量 ・力のモーメントと角運動量の関係
プログラミング演習(1組) 第7回
伝達事項 皆さんに数学と物理の全国統一テストを受けても らいましたが、この時の試験をまた受けていただ きます。
ARToolkitをAndroidで動かす!
電子物性第1 第3回 ー波動関数ー 電子物性第1スライド3-1 目次 2 はじめに 3 電子の波動とは? 4 電子の波動と複素電圧
プロジェクト演習Ⅱ インタラクティブゲーム制作
円筒座標をやる前に 復習をします。 1.三角関数の復習(高校数学) 2.2次元極座標の復習(高校の数学B) 3.円筒座標の復習(前期)
平成23年8月 情報学群 岡田 守 このスライドは, 前川佳徳編著による「コンピュータグラフィックス」(オーム社)を基に作成されている.
第四回 VB講座 画像とタイマー.
エッジの検出 画像中に表示された物理の輪郭(エッジ(edge))や線では、一般的に濃淡が急激に変化しており、これらは画像中のなんらかの構造を反映していることが多い このようなエッジや線の検出処理は、画像理解や認識のための前処理として重要である   差分型によるエッジ検出   零交差法によるエッジ検出.
プロジェクト演習Ⅱ インタラクティブゲーム制作
第3章 重回帰分析 ー 計量経済学 ー.
第3章 重回帰分析 ー 計量経済学 ー.
伝達事項 試験は6/6 (土) 1限目の予定です。.
システム開発実験No.7        解 説       “論理式の簡略化方法”.
透視投影(中心射影)とは  ○ 3次元空間上の点を2次元平面へ投影する方法の一つ  ○ 投影方法   1.投影中心を定義する   2.投影平面を定義する
慣性モーメントを求めてみよう.
10.通信路符号化手法2 (誤り検出と誤り訂正符号)
3次元での回転表示について.
動力学(Dynamics) 運動方程式のまとめ 2008.6.17
精密工学科プログラミング基礎Ⅱ 第3回資料 今回の授業で習得してほしいこと: 2次元配列の使い方 (前回の1次元配列の復習もします.)
シミュレーション演習 G. 総合演習 (Mathematica演習) システム創成情報工学科
Lorenz modelにおける 挙動とそのカオス性
Handel-Cを用いた ちょっとレトロ な 「よけゲー」 の設計
リアル卓球 B2 Ryo.
二分木説明 点Cの座標を求めよ。.
CGプログラミング論 平成28年5月25日 森田 彦.
エッジの検出 画像中に表示された物理の輪郭(エッジ(edge))や線では、一般的に濃淡が急激に変化しており、これらは画像中のなんらかの構造を反映していることが多い このようなエッジや線の検出処理は、画像理解や認識のための前処理として重要である   差分型によるエッジ検出   零交差法によるエッジ検出.
3D散歩ゲーム 08A2043 谷口盛海 種田研究室.
マイケルソン・モーレーの実験の検証 マイケルソン・モーレーの実験ではもう一つの往復光を垂直方向に分けて行った。
電気回路学 Electric Circuits コンピュータサイエンスコース、ナノサイエンスコース4セメ開講 円線図 山田 博仁.
第10回関数 Ⅱ (ローカル変数とスコープ).
OpenGLライブラリを用いた3次元フラクタルの描画
垂直多関節ロボット 座標認識システムの構築
第6回:ラケットを動かそう! (キーボードによる物体の操作)
3次元での回転表示について.
知能システム論I(13) 行列の演算と応用(Matrix) 2008.7.8.
実習その2 銀河までの距離を求める 信州大学工学部情報工学科2年 村仲 渉.
有効座席(出席と認められる座席) 左 列 中列 右列.
プロジェクト演習Ⅱ インタラクティブゲーム制作
プロジェクト演習Ⅱ インタラクティブゲーム制作 イントロダクション2
プロジェクト演習Ⅳ・Ⅵ インタラクティブゲーム制作
パターン認識特論 担当:和田 俊和 部屋 A513 主成分分析
様々な情報源(4章).
9.通信路符号化手法1 (誤り検出と誤り訂正の原理)
情報処理Ⅱ 第2回:2003年10月14日(火).
第2回課題 配布した通り.氏名・学生番号を忘れないこと.
第3回 基礎作図 基本的な作図法をしっかりと学ぶ! 本日の課題.
わかりやすいパターン認識 第7章:部分空間法  7.1 部分空間法の基本  7.2 CLAFIC法                  6月13日(金)                  大城 亜里沙.
プロジェクト演習Ⅳ・Ⅵ インタラクティブゲーム制作
円線図とは 回路の何らかの特性を複素平面上の円で表したもの 例えば、ZLの変化に応じてZinが変化する様子 Zin ZL
プロジェクト演習III,V <インタラクティブ・ゲーム制作> プログラミングコース
大阪工業大学 情報科学部 情報システム学科 学生番号 B02-014 伊藤 誠
精密工学科プログラミング基礎 第7回資料 (11/27実施)
プロジェクト演習Ⅳ・Ⅵ インタラクティブゲーム制作
精密工学科プログラミング基礎Ⅱ 第2回資料 今回の授業で習得してほしいこと: 配列の使い方 (今回は1次元,次回は2次元をやります.)
情報処理Ⅱ 第2回 2004年10月12日(火).
3.1 シューティングゲームの当たり判定 当たったら死亡.
プログラミング基礎a 第5回 C言語によるプログラミング入門 配列と文字列
プロジェクト演習III,V <インタラクティブ・ゲーム制作> プログラミングコース
逆運動学(Inverse Kinematics) 2007.5.15
空間図形の取り扱いについて.
Presentation transcript:

プロジェクト演習III,V <インタラクティブ・ゲーム制作> プログラミングコース 第8回 ゲームで使えるベクトル演算

今日の資料構成 ベクトルの基礎についてはPDFを参照 それをゲーム的にどう使うかをPPTで解説

今日の知識でできること ベクトルが表しているものの区別 距離による判定 角度による判定 真横の方向をゲットできる

まず押さえたいこと ベクトルの演算規則 三角関数の存在 スカラー積・和・差 長さ(ノルム) 内積 外積 射影 これはちょっと上級編 三角関数の存在 さすったりこすったりは要りません

ごっちゃにしてませんか? ベクトルは時と場合によって、 「座標」を表したり「方向」を表したり「移動量」を表したりと、 その意味合いが変化します fk_Modelのメンバ関数もごっちゃになる人が多いので、もう一度整理しましょう

fk_Modelで扱う ベクトルの意味一覧表 とりあえずグローバル座標版のみ ローカル座標はまた後ほど getVec()、getUpvec()で得られる方向ベクトルは 常に長さが1である 正規化済み 方向が重要なので 長さは無意味 関数名 動作 得る物・与える物 getPosition() 取得 座標 getVec() 方向(モデルの-z方向) getUpvec() getVec()との垂直方向 (モデルの+y方向) glRotate() 設定 軸を通る座標 glRotatewithVec() 軸を構成する座標 glTranslate() 移動量付きの方向 glMoveTo() glFocus() 注視する座標 glVec() 方向 glUpvec() glVec()との垂直方向

意味ごとの ベクトル演算結果一覧表 今回の資料と合わせてよく確認しておくこと 位置+位置はありえない ただし、tA+(1-t)Bの形式で表した式は線分上の任意の点を表す これは次回以降取り扱う 計算式 得られる物 位置+位置 Perdon? 位置A-位置B BからAへの方向 位置A+方向B AからB進んだ位置 位置A-方向B AからB戻った位置 方向A+方向B 合成された方向 方向A-方向B 位置*実数 方向*実数 長さを実数倍した方向

ローカル座標版について ローカル座標とは モデルのいる位置を原点とし、モデルに取っての前方向を(0,0,-1)、上方向を(0,1,0)とする座標系 神の手が「動かす」のではなく、自分で「動く」処理を行う際に便利 関数名 動作 得る物・与える物 loRotate 設定 軸を通るL座標 loRotateWithVec() 軸を構成するL座標 loTranslate() L座標系での移動量 loFocus() L座標系で(0,0,-1)に したい方向 loUpvec() L座標系で(0,1,0)に したい方向

距離判定 もはや言うまでもあるまい 位置Aー位置Bで得られたベクトルの長さを求めて、条件判定に利用できる fk_Vectorではdist()関数が利用できる fk_Vector vecAB = posB – posA; double distance = vecAB.dist(); こんな裏技もあるよ (posB-posA).dist();

角度判定 プレイヤーモデルの位置(posP)と、 敵モデルの位置(posE)と方向(vecE)から 「一定の角度内にプレイヤーが入ると追いかけてくる敵の動き」が実現できる 敵モデルから見たプレイヤーモデルへの方向を求める(vecEP = posP-posE) それを正規化して(vecEP.normalize())、 vecEとの内積を取る 得られたcosθの値を使って条件判定

外積の使い方 前述した角度判定の結果が「左右どっち側に何度なのか」を調べるのに利用 真横の方向をゲット 実演します glVec()^glUpvec()で右方向のベクトルが 得られる

今日の課題 一定距離内に一定の角度で近づいた場合、 プレイヤーモデル(キー操作可能なモデル)を追跡してくる動きを実現しよう 上下左右キーによる移動方向がカメラの向きと連動するようにしてみよう