物理演算【physics calculation】
物理演算とは?

物理演算が導入される以前、画面上の物体の動きは制作者があらかじめ設定したアニメーションに依存していた。物理演算を用いることで、物体同士の衝突や重力による落下、風によるなびきといった現象を状況に応じてリアルタイムに算出でき、手作業では再現しきれない複雑で予測不可能な動きを、システムが自動的に生成できるようになった。
計算の基盤はニュートン力学である。物体の質量、速度、加速度、力の関係を微小な時間ステップごとに繰り返し数値的に解くことで、連続的な動きを近似的に表現する。この処理を担う専用のソフトウェアモジュールを「物理エンジン」(physics engine)と呼び、「Havok」「Bullet」「PhysX」などがよく知られている。物理エンジンの普及により、開発者が複雑な数式を一から実装しなくても高度な挙動をシステムに組み込めるようになった。
物理演算の対象は、変形しない剛体、布やゴムのように形が変わる軟体、水や煙のような流体の三つに大別される。剛体では衝突時の跳ね返りや摩擦を計算し、軟体や流体では細かな粒子や格子として物体を捉え、要素間の相互作用を膨大な計算でシミュレートする。対象物の性質によって計算手法は異なり、剛体より軟体、軟体より流体の方が処理の負荷が高くなる。
精度と処理速度は相反するトレードオフの関係にある。リアルタイム性が求められるゲームでは、見た目の自然さを損なわない範囲で計算を簡略化する手法が採られる。一方、自動車の衝突安全試験や建築物の耐震解析といった工学用途では、視覚的な再現性よりも数値的な正確さが優先され、より厳密な計算モデルが用いられる。近年ではGPUによる並列計算の活用が進み、かつては映画制作専用だった高品質な表現が市販のゲームなどでも実現できるようになっている。