物理エンジンとは?ゲームにおける役割や代表的なプラットフォームを解説。使い方の一例も
ゲームづくりをするにあたって欠かせないプログラムの1つが「物理エンジン」です。物理エンジンを用いることで、よりリアリティがあって違和感のないゲームが完成します。
この記事ではそんな物理エンジンについて、ゲームにおける役割やできること、代表的なプラットフォームを解説。また、最後に物理エンジンプラットフォームの使い方も簡単にご紹介します。
ゲームづくりに興味がある方はぜひご覧ください。
物理エンジンとは?
物理エンジンとは、物理運動法則に則った物の動きをコンピュータ上でシミュレーションする「物理演算」を行うためのプログラムのことです。
物理運動法則とは衝突や摩擦、質量、重力等のこと。分かりやすく例えると、地球と同じ環境下を想定した場合にりんごが木から地面へ落ちる時、「どのくらいのスピードで落ちるのか」「地面に衝突した時にどのような挙動が起こるのか」等をシミュレーションします。
ゲームにおける物理エンジンの役割
ゲームにおいて物理エンジンは、物のさまざまな動きを現実の物理法則に則って再現するための役割を担っています。前述したりんごの例のようにさまざまなシミュレーションを行い、それを物に対して反映させることで、私達の脳内に自然とインプットされている“当たり前の現象”をゲーム内で発生させることが可能です。
例えば武器が壊れた時に破片が周囲へ飛び散る様子、爆弾を設置した時にそれが爆発して発火する様子等、ゲームでよく見るこれらの現象は物理エンジンによって再現されています。
物の様子だけではなく、キャラクターの状態や背景にも物理エンジンは活用されています。
キャラクターの髪や服の裾が風になびく様子、背景の川が流れる様子、火災によって煙が立ち上がる様子等も、物理エンジンによって再現されている現象の一例です。
加えて現実では起こり得ないような現象も、物理エンジンによるシミュレーションを用いることでリアルに表現することができます。
物理エンジンでできること
ここではゲームにおける物理エンジンの役割をより細分化し、「どのような処理ができるのか」をまとめました。
衝突判定(コリジョン) | 物体同士が衝突した時の挙動や反発の程度、摩擦の程度をシミュレーションする機能です。
物の硬度で細分化されることがあり、硬い物同士の衝突をみる場合は「剛体演算(リジットボディシミュレーション)」、軟らかく弾力のある物同士の衝突をみる場合は「軟体演算(ソフトボディシミュレーション)」と呼ばれます。 |
ダイナミクス (動的シミュレーション) |
一点から作用する力の影響とその結果のみをみるのではなく、現実と同様、物の動き全体をシミュレーションする機能です。
風になびくもの(シーツや服の裾)等をみる「クロスシミュレーション」や、持ち主・本体の動きに合わせて揺れる動きをみる「ヘア(髪)/ファー(毛)」等が内包されます。 |
流体シミュレーション | 海や川、水、空気等の流れのある液体・気体をシミュレーションする機能です。
応用することで雲や蒸気、煙等の環境や発火、爆発等の変化を再現することができます。 |
破壊シミュレーション | 物が壊れる時の様子をシミュレーションする機能です。
粉々になった場合を再現するパターンもあれば、切断された場合を再現するパターンもあります。 |
代表的な物理エンジンプラットフォーム
以上で解説したような物理演算を忠実に行うためのプログラムを一から組むのは困難を極めるため、ゲーム制作にはあらかじめ物理エンジンを組み込んだプラットフォーム(ゲームエンジン)を利用するのが一般的です。
そんな物理エンジンを組み込んだゲームエンジンのうち、代表的なものを簡単にご紹介します。
Unity
家庭用ゲーム機はもちろんPCやスマートフォン等、あらゆる主要プラットフォームに対応しているゲームエンジンです。
プログラミング初心者でも気軽にゲーム開発ができることから注目されていて、ゲームに限らず映像作品やメタバース等の産業にも使われています。
ゲーム分野においてもトップシェアを誇り、とりわけスマートフォンのゲームに関しては、「ポケモンGo」「ドラゴンクエストウォーク」「白猫プロジェクト」等Unityで開発された作品が多いです。
Unreal Engine
3D技術においてUnityを上回る程の性能を持ちながら、すべての機能を無料で利用できるゲームエンジンです。3DゲームやVRの制作に強みを持っていて、「FINAL FANTASY VII REMAKE」や「Fortnite(フォートナイト)」等の制作に使われています。
これから個人でゲーム開発を始める方が、少ないリスクで試しやすいゲームエンジンでもあります。
物理エンジンプラットフォームの使い方
物理エンジンを使ってゲームがつくられているといっても、どんなふうにつくられるのか想像するのは難しいと思います。そこで、どのような使い方がされているのかの一例を簡単にご紹介します。
なお、この記事ではUnityでの操作を参考にしています。
1.オブジェクトを出現させる
始めに、画面上にオブジェクトを出現させます。オブジェクトとは動かしたい物のことで、練習の際には球体や立方体等がよく選ばれます。
Unityの場合、「右クリック>3D Object 」から任意のオブジェクトを選ぶことで出現させることが可能です。
2.コンポーネントを追加する
コンポーネントとは、オブジェクトに付与するさまざまな設定のことです。例えば「Rigidbody(リジッドボディ)」を付与することで、オブジェクトが重力に従い、画面外へと落下するようになります。
Unityの場合、まず1で出現させたオブジェクトを選択して画面右側の欄(インスペクタービュー)下部にある「AddComponent」をクリックします。続いて表示された検索ウィンドウに「rigidbody」を入力し、絞り込まれたリストから同じく「Rigidbody」を選択しましょう。
3.当たり判定をつける
当たり判定とは、簡単に説明すると物同士の接触があるかどうかの判定です。当たり判定をつけることで、例えば1で出現させたオブジェクトが、他のオブジェクトに接触することで落下が止まるといった仕組みを付与することができます。
Unityの場合、2と同じく画面右側の欄(インスペクタービュー)にある「Box Collider」の文字と左側のチェックボックスが、当たり判定のオン・オフを切り替えるスイッチです。チェックを入れると当たり判定がつき、チェックを外すと当たり判定がなくなります。
4.下部に別のオブジェクトを出現させる
最後に、1で出現させたオブジェクトの下部に別のオブジェクトも出現させてみましょう。この時、2で解説したコンポーネントによるリジッドボディの設定は敢えて行いません。
以上を終えて一連の流れをみると、1で出現したオブジェクトが2で出現させたオブジェクトに向かって落下し、衝突するという現象が起こります。
後はつくりたいゲームの内容に応じて調整を加えるだけです。1のオブジェクトが接触と同時に消えるようにすれば物を拾うゲームが、積み重なるようにすればブロックゲームができます。
どんなゲームが完成するかはつくり手のアイデア次第。さまざまな機能や設定を試し、少しずつ物理エンジンに慣れていきましょう。
ゲーム制作の知識・技術を身につけるなら
物理演算・物理エンジンの理解は、ゲーム制作における第一歩です。しかし、実際にUnityやUnreal Engineを触ってみても、「なかなか理解できない」「思う通りのゲームづくりができない」と悩む方も少なくありません。それだけゲーム制作は難しく、納得のいくものをつくるためには相応の知識や技術が必要です。
本気でゲーム制作について学びたいならば、独学よりも専門学校へ入学するのがお勧め。専門学校デジタルアーツ東京のゲーム学科は、プロ仕様のコンピュータやソフトを使ったゲーム制作や実践的なカリキュラムを通し、業界の即戦力となる力を養えます。
趣味でゲーム制作をしたい方はもちろん、いずれはプロとしてゲーム制作に携わりたい方にもぴったりの専門学校です。
充実した環境で効率よくゲーム制作を学ぶなら、ぜひ専門学校デジタルアーツ ゲーム学科への入学をご検討ください。
まとめ
この記事では物理エンジンについて、ゲームにおける役割やできること、代表的なプラットフォームとその簡単な使い方を解説しました。
物理エンジンプラットホームの中には無料で利用できるものもあり、「試しにゲームづくりをしてみたい」という方でもチャレンジしやすくなっています。機能や使い方を覚えるまでは大変ですが、思い通りのゲームがつくれるようになればとても楽しいはず。ぜひ一度、実践してみてください。
>>ゲームの専門学校に通う3つのメリットとは?大学との違いや進路の選び方を解説
>>専門学校デジタルアーツ東京 体験入学
>>専門学校デジタルアーツ東京 説明会・学校見学