project17.pdf

プロジェクト報告書(最終) Personal Final Report
提出日(Date) 2011/01/19
クリスタルプロジェクト
Crystal
Project
b1008100 似鳥文香 Ayaka Nitori
A グループリーダー
B グループリーダー
b1008079 野口 よしの Yoshino Noguchi
A グループメンバー
b1008047 尾崎 弘尭 Hirotaka Ozaki
Bグループメンバー
b1008086 池田尚美 Naomi Ikeda
b1008013 根上 洋輔 Yousuke Negami
b1008088 大下つかさ Tukasa Ooshita
b1008099 新妻 愛海 Narumi Niizuma
b1008207 大原 直人 Naoto Oohara
b1008100 似鳥 文香 Ayaka Nitori
b1008221 村上 拓弥 Takuya Murakami
b1008124 安永 航 Wataru Yasunaga
1. 背景と目的
クリスタルプロジェクトの目的は、自然の物理的なシミュレーショ
ルテープ「Congratulation」画面が出てゲームクリアに、ゴー
ルまで一定量障害物にあたってしまうと「GAMEOVER」画面が
ンを用いて現実に存在するような風景、光の反射、屈折を物理
出てゲームオーバーとなる。
モデリング 3DCG で表現することである。
このゲームを作成するため、川(波の動き、水の透過、飛沫)
どのようなものを作りたいかという話し合いをした結果、美しい
の実装と、船や障害物(岩、流木)のモデリング、オールに使用
風景にこだわりたいという意見とゲーム性を加えたいという意見
する Wii リモコンの解析と実装を課題とした。
が出て、2 つのグループに分かれることになった。前者が A グ
ループ、後者が B グループである。
3. 課題解決のプロセスとその結果
まず、両グループ合同で C++ 言語に慣れるため、DirectX
のサンプルを参考にし、TA による課題をプロジェクト全体で話
2. 課題の設定と到達目標
グループ毎に設定した。
A グループでは、滝の水しぶきをメインとした、リアルな背景を
し合いながら理解することで学習した。DirectX は Microsoft
社が Windows シリーズのマルチメディア機能を強化するため
実装することを目標とした。滝の周りにある木々や岩、太陽光に
に提供している拡張 API 群である。直接ハードウェアを制御す
よる水の反射、岩にぶつかったときに起こる川の流れの
ることが可能になるため、高度なマルチメディア処理をパソコン
変化などを実装する。
場で実現することができるため、使用した。開発言語に C++を
これを作成するために川の流れを実装すること、透明感を出
使用したのは DirectX のプログラムの参考文献が多いからで
して、綺麗な映像を見せること、実際の水の流れの計算式を取
り入れること、反射の実装を行うことを課題とした。
B グループでは、光の反射を取り入れた川下りゲームをつく
ある。
その後 A グループ、B グループの課題解決のためそれぞれ
の作業に移った。
ることを目標とした。このゲームは Wii リモコンを付けたオール
を傾け、船を左右に動かし、前から流れてくる岩や流木といっ
3.1. A グループ
た障害物を避けてゴールを目指す。一定時間避け続けるとゴー
まず A グループについて説明する。
プロジェクト報告書(最終) Personal Final Report
提出日(Date) 2011/01/19
滝、水しぶき、川の流れ、背景と各々担当分野を決め、インター
これらを合わせることで、川下りゲームの川の流れ、船と障害
ネットから情報を集めたり、参考書をに載っているサンプルや
物の岩の CG を実装することができた。
数式を使ってみるなどまずは自分たちがやりたいことがどのよう
な仕組みで行われているかを理解した。中間までにそれぞれ
をどういう技法でやるかの候補をすでに決めていたため、それ
らの技法を深く掘り下げて勉強し、どの技法が一番適している
かを決める。技法について勉強し、それらの技法を使ってまず
は形にしてみることで学習した。個人の担当箇所がある程度形
になったら、次にそれらを統合してうまく動作するかを確認する。
それら単体ならきちんと動作していてても実際に統合してみる
と期待した動きをしていなかったり、周りとの調和が取れていな
かったりすることもあったため、期日までの間それらの調整に時
間を多く割くことになった。
次に最終発表までのそれぞれの班のプロセスとその結果に
ついて説明する。中間発表でのアンケートと学んだことを参考
に、最終目標を再度考え、設定した。また、その目標達成のた
めに必要な手順を考え、どの時期にどこまで解決すればいい
かを考え、計画を立てた。
プログラミング班は、まず、飛沫のプログラムを作成した。飛沫
のテクスチャを作成し、船を動かした場合、それらを飛ばすプロ
グラムを作成した。次に、当たり判定の設定をした。障害物と船、
それぞれの中心を調べ、そこからそれぞれのCGを覆う円の半
径を求める。船の中心から障害物の中心までの距離が、船と障
害物の半径を足した距離より小さくなった場合、船が当たったと
し、木に当たった場合は僅かに、岩に当たった場合は大きく船
3.2. B グループ
次に B グループについて説明する。Bグループ内では各々
の得意分野と興味のある分野を考え、『プログラミング班』、
『Wii リモコン班』、『メタセコイア班』の三つの仕事に分担した。
プログラミング班では、まず、中間発表までに川の流れるプロ
グラムを作成した。DirectX の波のサンプルプログラムを参考
に、川が波打つよう実装ができた。川の波の下には砂利のテク
スチャでできている川底が存在する。川のテクスチャに α 値を
が沈むプログラムを作成した。
Wii リモコン班は、Wii リモコンの傾きをの値を調べ、プログラム
した。前期に学んだ Wii リモコンの傾き(重力加速度)を認識し
て画面上の対象物を動かすプログラムを書き換え、船を Wii リ
モコンの傾きによって川上の船を左右に動かすプログラムを作
成した。また、船と障害物がぶつかった際、Wii リモコンを振動
させるプログラムも作成した。
メタセコイア班では、まず、背景の地面と木、障害物の木、ゴー
設定し、アルファブレンディング処理を行うことで川底が透ける
ルテープ、ゴール画面を作成した。地面を作成する際、メタセ
よう実装したことで川が半透明になり、川底が見えるようになっ
コイアでは地面の凹凸の細部まで作成できないため、3 DCG
たため、よりリアルに川を再現できた。
を簡単に作成できる terragen というソフトを用いて地面を作成
次に Wii リモコン班について説明する。 Wii リモコン班は、中
間発表までに Wii リモコンを PC につなぐため、Wii リモコンと
PC を接続する方法を調べ、Wii リモコンを C++言語でプログ
ラムする方法も調べた。文献「WiiRemote プログラミング[8] 」
し、メタセコイアに取り込んだ。また、Web サイト「めちゃセコイ
ア初心者の 3DCG[9]」を参考にメタセコイアを用いて背景の木
を作成し、地面と合成することで背景が完成した。障害物の木
はメタセコイアを使い形を作成し、木の皮のテクスチャを張るこ
に載っている C++言語のサンプルを作り一通り言語の書き方
とで完した。ゴールテープについては、平面の基本図形を縮小
を覚えた。そこからサンプルプログラムの使えそうな部分などを
し、形を作成、テクスチャを貼り作成した。ゴール画面も同様に
抜き取ったりしながら作成した。Wii リモコンの傾き(重力加速
ゴール画面も平面の基本図形を使用し、テクスチャをはること
度)を認識して画面上の対象物を動かすプログラムが出来た。
メタセコイア班では、船と障害物を作成するために、文献「メタ
セコイアからはじめよう!」を用いてメタセコイアをインストールし、
学習した。その後 Web 上のサイトを参考にし、船と障害物の岩
の形を作成。適したテクスチャを貼り完成させた。
で作成した。
最後に、それぞれの班で作成したものを一つに合成し、調整
した。そして、実際にプレイし、話あったところ、障害物の流れ
が速く、ゲームの難易度が高かったため、障害物の流れる速度
を少し遅くした。また、障害物に当たった際の Wii リモコンの振
動の長さが短くかったため、振動時間を長くした。障害物と背
プロジェクト報告書(最終) Personal Final Report
提出日(Date) 2011/01/19
景の流れが同じ速度だと違和感があり、背景の流れる速度より
・とても完成度の高いゲーム性であった。
障害物の流れる速度を速くした。
・ずっと左側でデモを流してくれていので、飽きずに聞くことが
これにより、課題としていた Wii リモコンを一つ使い、左右に
できた。
傾けることで船を左右に動かす川くだりゲームを作成することが
・水の表示はかなりすごいと思った。
できた。
・ゲームという身近なものが、実際の船と一緒に見れたので、よ
かった。
・何もないところからここ前絵の水の動きを再現でいていること
4. まとめ
に感動した。
・よくできたキレイなソフトだと思います。
・3DCG の仕組みがわかった。川下りの水しぶきがありよかった。
・数学的な部分と、プログラム的な部分、そして、デザイン的部
分とかなり複雑な成果なものが求
められてますが、非常にクオリティが高かった。
・オール型のコントローラは新しい。
悪かった点としては以下があげられる。
・川下りゲームは曲線のコースにして、もっと迫力のあるものが
図 1. A グループ完成作品
できたのでは?
・今年作った作品に対して、今後の課題が知りたかったです。
・ゲームのほうの発表で、美しさとその風景の動きは分かった。
・川の部分以外はモデリングして描いてあるのみだったのが残
念な気がした。
・直線以外に曲線とか、ゴールまでの距離がわかるマップとか
あったらマップとかがあったらいい
と思う。ゲームを要素を加えるもととなる現実要素に、リアル感
図 2. B グループ完成作品
が感じられませんでした。
・既存のゲームとの違いがまったく分からなかった。
A グループの完成作品が図 1、B グループの完成作品図 2
である。最終発表での評判もよく、実際に遊んでくれた人も多
発表技術面は、発表練習は明らかに不足していたので、厳し
かった。
い言葉もたくさんいただいた。
発表評価の集計結果の平均はこのようになった。
良かった点としては以下のものがあげられる。
発表内容
・わかりやすくまとめられていてとてもよかった。
教員 8.3 学生 6.9 全体 7.6
・Wii リモコンを使ったプレゼンはすばらしかった。
発表技術 教員 7.7 学生 6.9 全体 7.3
総数 学生63人 教員3人
発表内容について良かった点は以下のものがあげられる。
・ゲーム性を取り入れたことにとても興味を持ちました。
・ポスター、PPT が要点がしっかりまとめられていて、すばらし
い。
・成果物の展示、体験も効果的であった。
・質問がたくさんできたのですばらしい。それに対する受け答え
が非常にしっかりしていた。
・スライドの構成はすばらしかった。
プロジェクト報告書(最終) Personal Final Report
提出日(Date) 2011/01/19
・はじめに作ったものを見せてもらえたのは、とてもイメージをつ
D3DXMatrixLookAtLH 関
かみやすくてよかった。
数,http://msdn.microsoft.com/ja-
・2 つの画面を上手に使い分けていた。
jp/library/cc372877.aspx,2010 年 7 月 6 日
・1つ1つのことがらについて詳しく説明されていた。
[6] Randima Fernando GPUGems2 日本語版ハイパフォー
・映像の構成要素の説明が細くて、分かりやすかった。
・ゲームを実際に実演していく方法がいい。
マンスグラフィックスと GPU のためのプログラミングテクニック-.
・CG の製作をわかりやすく述べていた。
株式会社ボーンデジタル,2005.
といったように、発表スライドと完成作品を 2 画面同時に見せて
[7] 原田大輔. メタセコイヤからはじめよう!無料で作る 3D キャ
発表することが好評だった。
ラクター. 株式会社技術評論者,2005.
[8] 白石暁彦・小坂崇之・くるくる研究所・木村秀敬.
悪かった点としては以下があげられる。
WiiRemote プログラミング. 株式会社オーム社, 2009.
・全体を通した段取りが悪い。
[9] めちゃセコイア初心者の 3DCG - Yahoo!ブログ,http://
・声が聞こえづらい。
・アイコンタクトが一切行われていなかった。
blogs.yahoo.co.jp/mn6x847w/archive/
・発表者がゲームをやらせているだけではなく、見ている人に
2007/10/24?m=lc,2010 年 10 月
やらせていればよかった。
[10] メタセコイア初心者講座- KT 爺メタセコイア指南
・目標と手法が適切に説明されていない。
書,http://ktg.xii.jp/mqo/,KT 爺,2010 年 6
・専門用語が多すぎて分かりづらかった。
・原稿を読んで発表していた。
・少し声が聞きづらかった
・発表練習をしていないように思えた。
・まとめのスライドの字が小さい。
・少し発表の流れが止まったところがあった。
といったように練習不足の結果、テンポや流れが悪くわかりにく
い発表となってしまった。改善するには、もっと発表練習に時
間をかけるべきである。
参考文献
[1] N2Factory. DirectX ゲームグラフィックスプログラミング
Ver.2.1Vista. ソフトバンククリエイティブ株式会社,2003.
[2] Randima Fernando. GPU Gems. 株式会社ボーデンデ
ジタル,2004
[3] 林晴比古. C++ ビギナー編. 明快入門.
[4]越塚誠一. 計算力学レクチャーシリーズ�粒子法. 丸善株式
会社,2005
[5] MSDN オンライン(microsoft 社),
月