Skip to content
ゲームプログラミング演習・実習B 2019 @IA-SD-TMU
C#
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
PbdLesson
.gitignore
BeltMesh.fbx
GPB最終作品レポート.docx
ParticleCollider.cs
README.md

README.md

ゲームプログラミング演習・実習B (2019)

  • 水4-5@2-501
  • 首都大学東京システムデザイン学部インダストリアルアートコース 2019年度後期
  • 担当教員: 向井智彦(email: mukai@tmu.ac.jp, 日野1号館2階247室)

アナウンス

  • [2019/10/01] Unityの授業標準バージョンは、演習室環境に合わせて「2018.3.12f1」とします。

スケジュール

第1回:ガイダンス・3次元幾何学

第2回:剛体物理シミュレーション

第3回:バネ-マス系シミュレーション

  • 課題: 3つの質点のバネ-マスシミュレーションの実装

第4回:質点クラス設計

  • 課題1: 質点クラスの設計と実装(要カプセル化)
  • 課題2: バネクラスの設計と実装(要カプセル化)
  • ポイント
    • 初期値はコンストラクタで設定
    • フィールドの値を取得するだけならgetter(プロパティ)にする
    • 散らかった状態でも構わないので、とりあえずメソッドにする。そして見直して書き直す。
  • いずれの課題も本レポジトリ内の「PbdLesson」を起点としてもよい
  • どうしても良い設計が思いつかない場合は、一部のカプセル化を割愛してもOK

休講

第5回:位置ベース物理モデル

  • webページ [ https://matthias-research.github.io/pages/publications/publications.html ]
  • 課題: DynamicParticle2.UpdateからPositionBasedBound.Updateへ、床面限定の衝突処理を移植
    • ポイント
      • goalPosition, goalVelocityのフィールド化
      • 移植すべきコード、移植せざるべきコード(修正の可否含め)の判断
    • アドバンスな機能に興味がある人は「C#のdelegate」に挑戦(?)

第6回:柔軟体シミュレーション

  • 課題: ベルト状のポリゴンメッシュの柔軟体シミュレーションを完成させる(再来週〆切)
    • ポイント
      • 頂点の番号とバネの番号の間の関係性を導き出す
      • DynamicSpringの設計を見直すことで単純化できる可能性アリ
    • 余力がある人向け
      • Mayaで2次元長方形シートをモデリング→FBXファイルをエクスポート→布シミュレーションに拡張

第7回:Shape Matching Dynamics法

第8回:柔軟体シミュレーションにおける衝突処理

第9回:極分解を用いた回転推定

第10回:Shape Matching Dynamicsの実装

第11回:Shape Matching Dynamicsの実装

  • 実装結果の提出〆切: 1月15日(水) 14時30分(4限開始前)まで
  • たとえ実装が未達であっても、その時点までのプログラムコードを必ず提出すること

第12回:応用制作

  • Shape Matching Dynamics/バネシミュレーションのいずれかを応用したグラフィクス/ゲーム作品の制作
    • 自作モデルの変形アニメーション制作(想定ベースライン)
    • 自作のモデルの変形操作(ex. つまんで伸ばせるようにする)(難易度低)
    • alpha&betaパラメータの時間変化表現(モーフィングのような効果の再現)(難易度低)
    • モデル内の硬さの表現(ex. やわらかい部分と硬い部分を表現する)(難易度高)
  • Shape Matching Dynamicsの各種不具合の改善
    • さらなる高速化(いくつかの頂点のみを対象として重心位置&回転を算出することで計算時間短縮:難易度中)
    • めり込みの改善(難易度高)
    • 論文4.3章「Quadratic Deformation」の追加実装(最高難易度)
    • C++で書き直し(最高難易度)
  • 実装したShapeMatchingDynamicsの性能評価
    • ShapeMatchingDynamics vs バネシミュレーションの比較
    • スマートフォンでの動作確認(問題点の確認と解決)
    • 向井の実装のバグ指摘、リファクタリング提案(レポート加点)

第13回:応用制作

第14回:制作発表会

  • 2020年1月29日(水) 15時開始
  • 発表形態は自由(スライド、動画、実機デモ、など)、発表時間は5~10分程度(目安)
  • 最終レポート提出〆切は2020年2月7日(金・厳守)
  • レポートテンプレート

参考書籍・Webサイト

  • Computer Graphics Gems JP 2012:「Chapter 11 Shape Matching Dynamics:形状制約を用いた柔軟物体表現手法」にアルゴリズムが丁寧に解説されています。
  • コンピュータ・グラフィクス関連の最新論文紹介(CEDEC 2011):発展技術も含めてスライドにわかりやすくまとめられています。要無料登録。
  • Position Based Dynamics Omelette(CEDEC 2014):Position Based Dynamicsについて俯瞰的にまとめられています。要無料登録。
  • Unity C# ふりがなプログラミング: とても平易に書かれたUnityC#の解説書です。基礎的事項から丁寧に解説されています。
  • Unityの教科書: わかりやすいチュートリアル形式でUnityの基本を学べます。
  • UnityではじめるC# 基礎編: こちらもチュートリアル形式でUnityの基本を紹介していますが、C#についての解説にも比重が置かれています。
  • C#のガイド: Microsoft公式のC#言語リソース集。C#の文法や使い方については最初にこちらを参照し、わからない用語をweb検索するようにすると確実でしょう。
  • Unity User Manual: Unityの公式マニュアル。Unityの機能やスクリプトの書き方についてはこちらを参照し、わからない用語をweb検索するようにすると確実でしょう。
  • Unity - Learn: Unity公式の学習リソース。動画形式のチュートリアルも充実しています。
You can’t perform that action at this time.