プロジェクト
■ プロジェクトとは
各自で後述された課題内容を満たすプログラムを今週を含め、演習4週分を使って完成させる 演習のことを言います。 この演習の採点は最後に行われますが、プロジェクト毎によって予想される 作業量に差があるため獲得できる最高点が違います。 この点について注意し、自分のプロジェクトを選んで下さい。なお、自分がどのプロジェクトを 選択したのかは最後の演習で聞きますので,それまでは自由に取り組むプロジェクトを変更しても 構いません。

また、今回はテンプレートも存在しませんので、今まで演習の課題として出された内容を総合的に活用して下さい。

■ 各プロジェクトの説明と採点基準
下記の5つの課題から任意に1つ選んでください。 テーマは下記の通りですが、これに則していれば良いだけなので実装や表現は自由です。 ぜひオリジナリティに重点を置いて、各自の思う楽しい作品を作ってみて下さい。
  • 惑星
    採点 10 点

    授業や演習で行ったことをそのまま利用すれば実現できる簡単なプロジェクトです。惑星は最低でも5つ、その内、太陽、地球、月にあたる関係で回転をする惑星を少くとも3つ用意してください。

    +1 depth buffer が利用されている
    +1 惑星にテクスチャが貼られている
    +1 ライトが正しく機能している
    +1 球が半透明で描画されている
    +1 半透明が正しい手順で描画されている
    +1 球にマテリアルが適応されている
    +1 太陽、地球、月の関係にあたる回転をする物体がある
    +1 カメラの位置、向きが変化させられる
    +1 キー操作に反応してアニメーションが変化する
    +1 マウス操作に反応してアニメーションが変化する


  • 流星
    採点 12 点

    流星の様子を表現するプロジェクトです。

    +1 ランダムな方向で流星が降る
    +1 空間に各々ランダムな方向で流星が大量に降る
    +1 流星は、点だけではなく、線、テクスチャーでも表現できる
    +1 流星は突然ではなく、滑らかに尾を引いて消滅する
    +1 風景が描かれている (多分夜空になると思うので、星、雲の2つは必要とする。)
    +1 半透明が使われており、その効果を確認できる (例えば、流星、雲、星など)
    +1 色の違う流星が出現させられる
    +1 流星の出現量がリアルタイムに調整できる
    +2 マウス操作で空間を自由に移動できる(カメラ位置と向きが変化する)
    +1 各機能はキー操作で行える
    +1 芸術性


  • 景観シミュレーション
    採点 14 点

    OpenGL のレンダリング能力を利用して、簡単な景観シミュレーションを行います。映像をリアルに表現することを第一目的としていますので、表示速度は問いませんが、ウォークスルータイプのアプリケーションですので、移動するに困らない速度はある程度確保しておいて下さい。具体的には大学の中にある建造物、ないしはその内部の部屋の1シーンを、題材として下さい。演習室、体育館、図書館、食堂、などなど。

    +1 ライトが8つ設定されている
    +1 それぞれのライトの On/Off が可能になっている
    +1 半透明のマテリアルが適応されている
    +1 テクスチャが使われている
    +2 キー操作やマウス操作で自由に空間を歩ける
    +2 衝突判定ができている
    +1 ベジエ、または NURBS を利用した曲面が利用されている
    +1 視点のパターンをいくつか変更できる
    +2 3Dオブジェクトを扱うデータの工夫 (ファイルへの保存/読み出しなど)
    +2 芸術性


  • ドライブゲーム
    採点 16 点

    自由に運転可能な車を用意し、敵車を回避してコースを回るゲームです。マウスのクリックをアクセルにしたりすることで、前進と停止が実現できます。あとは、クリックした場所を、ステアリングの量に繁栄させることで、曲がり具合をスムーズに調整できます。操縦する際には、ラジコンのように客観的に操縦を見る視点と、運転手と同じ視点が必要です。この視点はキー入力やマウスのボタンで切替えられるようにしておいて下さい。

    +1 depth buffer が利用されている
    +1 ある程度複雑なコースが描画出来ている。
    +1 自分の操縦する車が描画されている
    +1 テクスチャが貼られている
    +1 敵の操縦する車が最低でも3台は描画されている
    +2 敵車が走る。自分の車との衝突も検出される。
    +2 マウス操作だけで、発進、停止、スムーズなステアリングが実現されている
    +2 コース上で乗物を操作できる。衝突も検出される。
    +2 最低2つのカメラモードを持っている(車載カメラ、定点カメラ等)
    +1 半透明を使っており、その効果が確認できる (例えば、エンジンの排気や、雲、乗物のガラス窓、など)
    +1 ライトが使われている
    +1 芸術点


  • ロボット犬を踊らせる
    採点 18 点 (最高点)

    ロボット犬の関節アニメーションが重要な課題です。 関節は最低でも、首に1つ、それぞれの腕に2つ、それぞれの足に2つの9関節必要です。尻尾は任意でどうぞ。そしてそれらの関節はキー入力やマウス入力に反応し、自由に動かせるようになっている必要があります。これによって新しいポーズを作れるようにしておいて下さい。また、ポーズは最低5種類、あらかじめ準備しておくなり、作ったポーズを保存できるようにしておくなりして、登録されている必要があります。キー入力などでポーズを切替えられるようにしておくと良いでしょう。また、切り替わる際に、各関節は次の関節角に至るまでの補間を行えるようにしなくては行けません。要するに次のポーズになるまでの中間パターンを計算して、スムーズに変化させて下さい。

    +1 ロボット犬は最低9個以上の関節を持っていなくてはいけない
    +2 ロボット犬の関節がソースコードの中で構造化されており、表示されている
    +2 キー操作やマウス操作の組合せで、各関節が動作し、新しいポーズが作れる
    +1 ポーズは最低5つ準備されなければいけない (もしくは、作った新しいポーズが追加できるようになっている。)
    +1 キー操作やマウス操作の組合せで、ポーズが切り替わる。
    +2 ある決まったポーズから別なポーズへスムーズに変化させる事ができる (それぞれの関節角を次の角度に推移させる手法は、線形補間で良い。)
    +1 ロボット犬にはテクスチャーが貼られている
    +1 風景が描かれている (ロボット犬が踊る舞台、何かしらのイルミネーションの2つは必要とする)
    +1 半透明が使われており、その効果を確認できる (例えば、舞台ライトの光(フレア)など)
    +2 マウス操作で空間を自由に移動できる(カメラ位置と向きが変化する)
    +2 自動的に踊る機能がある
    +1 自動的にカメラワークを変化していく機能がある
    +1 芸術性 (AIBOなどを模した動作をするなどでも可)

  • 以上の課題に配分された点数に加え、面白い作品や、努力の跡が多分に見られる作品については、更なるボーナスポイントをあげます。


    [ 戻る ]

    Written by Yasuhiro Yamazaki, 2001.
    Modified by Youhei Nishidate, 2003.