日々の色々

そのときやってることはまってることについて書いてくよ

物理演算エンジンについて

SLP Advent Calendar 2014

今年もこの時期がやって来ました。そうSLP Advent Calendarの季節です!!

去年の記事を書いて1年がたったと思うと嘘のようです。てか、1年たつの早くねぇかオイ!!やりたいこと全然やれてないぞ …本当に大学入ってからは時が過ぎるのが早い……それでは、今年もAdvent Calendarの1枠分を頂いて、ポーカーとかrailsとかテストとかやること色々あるけど物理エンジンについての記事を書いていきます。

物理演算エンジンとは

 物理演算エンジン(ぶつりえんざんエンジン、Physics engine)は、質量・速度・摩擦・風といった、古典力学的な法則をシミュレーションするコンピュータのソフトウェアである。 略して物理演算、物理エンジン、Physicsとも言う。エンターテイメント分野や科学技術計算分野に利用されている。GMV所属の人やゲームを作ってみたいと思っている人は、今後触ることもあると思う。もし気合のある物理とプログラム大好きっ子は物理演算エンジンの計算なんかを理解して教えて欲しい。俺には何をどうしてそうなるかが全くわからない……

物理演算エンジンの凄さ

物理演算エンジンは、現実世界ではやることが出来ないことや実行するとしても多くのお金がかかることを、リアルに再現できるシステムである。今日では映画やゲームの3DCGや、飛行機や車のシミュレータなどにも使用されている。昔は物理演算エンジン搭載の3DCGソフトウェアはとても高額だったそうだが、現在では安価なものやフリーなものなども出てきている。

素晴らしいソフトUnity

物理演算エンジン搭載の3DCGを扱える、ゲームエンジン"Unity"についてちょこっと紹介する。Unityに関しては他の方がAdvent Calendarでやるようなのでそちらをお楽しみに!正直説明するのも難しいので実際にやっている画像を載っけていく。

f:id:ucchi_in:20141207233006p:plain

図1.跳ねるボール

 

 f:id:ucchi_in:20141207233018p:plain

図2.跳ねながら飛んで行くボール

f:id:ucchi_in:20141207233912p:plain

図3. 複数のボールを転がす

 

やっては見たが画像だけだとなんじゃこりゃって感じですね(笑) 

本当はもっと視覚的に見て面白いものをお届けしたかった orz

このくらいのことならUnityを使用すれば簡単に行うことが出来るので、興味がわいたら是非試してみてください。 

最後に

今までの過程で物理演算エンジンスゲーってなってる人は少ないと思うので、最後に私がこの題材について書こうと思うきっかけとなった記事を紹介させていただきます。

映画トランスフォーマーで使われる物理エンジン!遺伝的アルゴリズムとの融合 - NAVER まとめ

【CG】ディズニーが開発した、雪の動きのシミュレーション映像がもはや実写レベル - よっちーの小屋

それでは、堅苦しい題材&拙い内容ではありましたがここまでお付き合い頂き本当に有難うございました。私はこれから明日のテスト勉強を始めたいと思います(白眼)

 

 参考文献:Wikipedia 物理エンジン 

                   Wikipedia Unity

GMVでの活動

  私はSLPという香川大学工学部のサークルに所属している。SLPの1年は今年度の後期からプロジェクトチームに分かれて活動している。プロジェクトチームにはGMV、CEM、ETR、WSPの4つのチームがある。私が所属しているのはその4つのチームの内の1つ、GMVである。GMVとは主にゲームやVRについて研究しているプロジェクトチームである。

  GMVに入って初めての活動はオセロの戦術AIを作るというものでした。いきなりAIを作成するということだったので、初めは想像もつかずできるわけがないと感じました。しかし、配列と関数について先輩方に教えていただた後、B1の友人や先輩方からオセロの基本的な考え方などを聞いたりしながら、なんとか中間発表までに動くだけのプログラムが完成しました。その後、最終発表までに評価値表と呼ばれる、盤面に点数をつけて高い点数の場所を優先して自分の手を置くというプログラムを作ることができました。しかしもう1つ実装しようと考えていた、とれる数を調べるプログラムが未完成のまま最終発表を迎えてしまいました。今現在、Javaを使用してオセロゲーム自体を作成するというプロジェクトが始まったので、機会があればとれる数を調べるプログラムを実装したいと考えています。 

  二つ目の活動としてポーカーの戦術AIを作成しています。ポーカーでは扱うオセロに比べて、扱う値が増えたので難しくなりましたが、オセロで学んだことを生かしながらAIを作成していきました。現在、役の判定はペアとフラッシュは実装することができました。しかし今ストレートの判定の実装にてこずっています。せめてストレートの判定だけは実装させて終わらせたいと考えています。 

  前述の通り現在は、Javaを使ってオセロを作成しています。これは1年と先輩でチームを組んでのプロジェクトで、先輩と協力しながらオセロを作成しています。まだ、機能や仕様を決めただけで本格的に作成にはとりかかっていませんが、これから決定した機能、仕様にできるだけ近づけていきたい。また将来的にはVRについて研究したいと考えていきたいのでGMVでのキネクトを使った研究に参加したいと思います。