« W:ETソースコード朗読会 第五回 | メイン | キャビネットに関する質疑応答の和訳 »

April 15, 2005

■ W:ETソースコード朗読会 補足1

Reading the Source Code of W:ET Appendix #1

飛行機はどこへ行く

ETは三次元空間で多人数が入り乱れるシューティングゲームです。これを実現するコードには当然ですが3次元空間の処理、通信、描画、その他様々なものが必要になります。

三次元空間には高さ、幅、そして奥行きがありますよね。この三つを指定することで、空間上の位置を決めることが出来ます。数学的には、三次元直交座標系で1点の位置を一意に決める必要十分条件が満たされたといえます。

三次元空間に飛行機が飛んでいたとします。先述したとおり、飛行機がどこを飛んでいるという「位置」は3つの情報から決定できます。しかしながら、どちらに向かって、まではわかりません。なぜなら、飛行機は原則的に頭の向く方向へ進む乗り物なので、「向き」に関する情報がなと動く方向を判断できないからです。

「向き」に関する情報まで含めた物理は高校では扱わないかと思います。しかし、世の中のあちこちにある「もの」は、ある大きさを持っており、高校物理や数学で扱う「点」とは違います。そして「もの」には形があり、向きによって色々物性が変化するものです。

だからといってみなさんに物理を勉強してきてくださいというわけではありません。「向き」も大事な空間情報であることを認識してもらえれば結構です。兎角、プレイヤーの向きが武器の狙いそのものに相当するFPSゲームでは尚更、ということです。

向きを表現する

ここから本題に入ります。

三次元空間上で、ある形と大きさを持ったものの向きを一意に指定したい時、いくつの情報が必要になるでしょうか。とりあえず、自分自身で確かめてみるのが一番確実でしょう。

上下にに首を動かしてみてください。あなたのあたまの位置はほとんど動かず視野(見える範囲)が左右に大きく変わりましたよね。これが「向き」の大事さを体現しています。そして首を左右に振っても同じく見える範囲が変わるかと思います。

続いてあたまを左右に傾けてください。見える範囲は変わりませんが、水平位置の時よりも景色が傾いて見えますよね。当然ですよね。

さあ、これで物体の方向を決める3要素をすべて見てきました。

上下、左右、そして回転。これが三次元空間上の物体の方向を決める全要素です。より一般的には、姿勢角と呼ばれています。そして上下左右回転の角度は、それぞれピッチ、ヨー、ロールと呼ばれます。ロボットや飛行機が好きな人は知っていたかもしれませんね。

数学的な表現は次のようになります。最初に、まっすぐを向いている状態の視線方向をx軸、垂直右方向をy軸、上方向をz軸とした直交座標系を設定します。すると、この座標系をz軸中心に回転する操作が首を左右に振ることに相当します。このときの角度がヨーです。同様にy軸中心ではピッチ、x軸中心ならロールです。

実例

私よりも詳しく的確に解説してくれているところがあるのでそちらを紹介します。

http://www.geocities.jp/gthu1df564/FreeR.html 最初の部分に姿勢角(オイラー角)に関する説明があります。

マイクロソフトMSDNライブラリ さすがOS作っているところですね。解説から実例まで見事です。サンプルコードもあります。

空間ベクトルと複素数に関するどっかの大学教授の文章 もっと詳しく知りたい人はこちらへ。こちらは私の脳みそレベルを超えているためサポート対象外となります。

投稿者 ikanatto : April 15, 2005 06:36 PM

■ コメント

Combining debt through home equity loans can be your ticket to better FICO scores. Both here decorated gold bandsand there heart engagement tiffany style engagement ring [URL=http://google.btopenworld.com/dynamic/search/google_search.jsp?searchArea=All&query=natalia+rs+016] tiffany style engagement ring[/URL] http://google.btopenworld.com/dynamic/search/google_search.jsp?searchArea=All&query=natalia+rs+016 Interest Accrual Rate Prepayment Penalty First Mortgage

投稿者 tiffany style engagement ring : October 17, 2006 02:30 AM

Zero percent is the ultimate in great deals and zero-percent cards are great for consolidating debt by transferring balances from other cards into one. Employee-Assisted Housing http://oldweb.uwp.edu/academic/business/news/articles/debt-collection-letter.html Inflation Teaser Rate Judgment

投稿者 Employee-Assisted Housing : October 20, 2006 11:00 AM

Growing evidence that the economy is slowing is behind the decline in interest rates, which move in the opposite direction from bond prices. Joint and Several Liability http://oldweb.uwp.edu/academic/business/news/articles/debt-relief-usa.html Collateral Installment Chattel

投稿者 Joint and Several Liability : October 25, 2006 08:39 AM

First, you can refinance your original mortgage for a larger amount, basically trading in equity on the spot. debt insurance http://oldweb.uwp.edu/academic/business/news/articles/debt-insurance.html Interest Accrual Rate Mortgage Note Insurance Binder

投稿者 debt insurance : October 29, 2006 05:52 AM

Nice site!
[url=http://wzswzsvv.com/wmml/jhez.html]My homepage[/url] | [url=http://qhdppgji.com/dmgn/nnzx.html]Cool site[/url]

投稿者 Shelly : November 2, 2006 07:36 PM

Great work!
My homepage | Please visit

投稿者 Howard : November 2, 2006 07:42 PM

投稿者 Lane : November 2, 2006 07:43 PM

投稿者 Jody : November 6, 2006 01:54 AM

投稿者 Joan : November 7, 2006 04:32 AM

投稿者 Alice : November 8, 2006 03:58 AM

If you currently pay, say, 6 percent for the mortgage and can get a total refi at 6.5 percent, it might be a much better deal than keeping a small balance first mortgage at 6 percent and getting a second loan at a much higher interest rate. annaly mortgage http://www.cv.nrao.edu/~abridle/php/gallery/docs/Fast-Loans.html free mortgage calculator exchange-traded home mortgage rate

投稿者 annaly mortgage : November 8, 2006 11:45 PM

投稿者 Candice : November 9, 2006 04:03 AM

投稿者 Hayden : November 9, 2006 04:05 AM

投稿者 Zack : November 9, 2006 04:06 AM

投稿者 Fawn : November 9, 2006 09:30 AM

投稿者 Janice : November 10, 2006 07:18 AM

投稿者 Felix : November 10, 2006 07:19 AM

投稿者 Lee : November 10, 2006 07:22 AM

投稿者 Judy : November 10, 2006 07:23 AM

投稿者 Lisa : November 11, 2006 06:43 AM

投稿者 May : November 11, 2006 06:45 AM

投稿者 Ben : November 11, 2006 06:46 AM

投稿者 John : November 12, 2006 07:32 AM

投稿者 Roy : November 12, 2006 07:33 AM

投稿者 Gary : November 13, 2006 07:27 AM

投稿者 Jody : November 13, 2006 07:28 AM

投稿者 Irene : November 13, 2006 07:28 AM

投稿者 Victor : November 13, 2006 07:29 AM

投稿者 Naomi : November 13, 2006 07:31 AM

投稿者 Tonya : November 14, 2006 09:49 AM

投稿者 Dawn : November 14, 2006 09:50 AM

投稿者 Nancy : November 14, 2006 09:50 AM

投稿者 Ben : November 14, 2006 09:51 AM

投稿者 Samuel : November 14, 2006 09:53 AM

In Seattle it is illegal to carry a fishbowl or aquarium onto a bus because the sound of the water sloshing may disturb other passengers natalia diamonds http://grillz-swicki.eurekster.com/diamonds/ absolute mortgage company list of mortgage brokers today's mortgage rates

投稿者 natalia diamonds : November 15, 2006 03:19 AM

投稿者 Howard : November 15, 2006 01:46 PM

投稿者 Candice : November 15, 2006 01:46 PM

投稿者 Bruce : November 15, 2006 01:46 PM

投稿者 Rhonda : November 15, 2006 01:47 PM

投稿者 Joy : November 15, 2006 01:49 PM

投稿者 Gloria : November 16, 2006 03:53 PM

投稿者 Troy : November 17, 2006 01:07 AM

投稿者 Kimberly : November 17, 2006 01:11 AM

投稿者 Nathan : November 17, 2006 01:13 AM

投稿者 Dean : November 17, 2006 01:13 AM

投稿者 Adrianna : November 17, 2006 01:16 AM

投稿者 Gabriel : November 18, 2006 03:58 AM

投稿者 Caleb : November 18, 2006 03:59 AM

投稿者 Maggie : November 18, 2006 04:03 AM

投稿者 Brad : November 18, 2006 04:07 AM

投稿者 Abby : November 18, 2006 04:10 AM

投稿者 Joe : November 19, 2006 11:27 AM

投稿者 William : November 19, 2006 11:29 AM

投稿者 Tracy : November 19, 2006 11:32 AM

投稿者 Mary : November 19, 2006 11:36 AM

投稿者 Peggy : November 19, 2006 11:41 AM

投稿者 Frank : November 19, 2006 02:15 PM

投稿者 Joan : November 20, 2006 05:06 PM

投稿者 Naomi : November 20, 2006 05:07 PM

投稿者 Simon : November 20, 2006 05:07 PM

投稿者 Keith : November 20, 2006 05:08 PM

投稿者 Victor : November 20, 2006 05:09 PM

投稿者 Brad : November 21, 2006 05:13 PM

投稿者 Shelly : November 21, 2006 05:14 PM

投稿者 Rebecca : November 21, 2006 05:14 PM

投稿者 Ivan : November 21, 2006 05:15 PM

投稿者 Nancy : November 21, 2006 05:16 PM

投稿者 Austin : November 22, 2006 03:53 PM

投稿者 Nancy : November 22, 2006 03:53 PM

投稿者 Ethan : November 22, 2006 03:53 PM

投稿者 Cassie : November 22, 2006 03:54 PM

投稿者 Maggie : November 22, 2006 03:54 PM

投稿者 Brad : November 23, 2006 04:03 PM

投稿者 Timothy : November 23, 2006 04:03 PM

投稿者 Peggy : November 23, 2006 04:04 PM

投稿者 Marla : November 23, 2006 04:04 PM

投稿者 Tammy : November 24, 2006 04:09 PM

投稿者 Olga : November 25, 2006 03:45 PM

投稿者 Jean : November 25, 2006 03:45 PM

投稿者 Ian : November 25, 2006 03:45 PM

投稿者 Ida : November 26, 2006 04:52 PM

投稿者 Phyllis : November 26, 2006 04:53 PM