詳細な例と擬似コード
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/10/16 15:33 UTC 版)
「コンピュータアニメーション」の記事における「詳細な例と擬似コード」の解説
2次元コンピュータアニメーションでは、動く物体を「スプライト」と呼ぶ。スプライトは対応する位置を持つ画像である。スプライトの位置をフレーム毎に微妙に変化させ、それによって動きをつける。以下の擬似コードは、スプライトを左から右に移動させるものである。 var int x := 0, y := screenHeight / 2;while x < screenWidthdrawBackground()drawSpriteAtXY (x, y) // 背景上に描画するx := x + 5 // 右に動かす 最近のコンピュータアニメーションでは、動きをつけるのに別の技法を使っている。最も多いのは、複雑な3次元ポリゴンを数学的に操作し、それにテクスチャマッピングを施し、照明などの効果を与え、最終的な完全なイメージをレンダリングする。アニメーションの動きを作成するのに洗練されたグラフィカルユーザインタフェースを使うこともある。別の技法として、規則的な形状にブール演算を実施するCSG表現で物体を定義する方法があり、任意の解像度でも正確なアニメーションを生成することができる。 木製の平らな壁で囲まれた部屋の真ん中に灰色のピラミッドがあるという単純なイメージを考えてみよう。ピラミッドには照明が当たっていて、表面に輝いている点がある。壁、床、天井はそれぞれ単純なポリゴン(この場合は矩形)である。矩形の頂点の位置は X、Y、Z の3つの値で定義される。X は左右の位置、Y は上下の位置、Z は奥行きを表す。視点に最も近い壁は4つの点(それぞれに X, Y, Z の値がある)で定義される。以下はその壁の定義を表現したものである。 (0, 10, 0) (10, 10, 0)(0,0,0) (10, 0, 0) 視点から最も遠い壁は次のようになる。 (0, 10, 20) (10, 10, 20)(0, 0, 20) (10, 0, 20) ピラミッドは5つのポリゴンで構成される。矩形の底辺と4つの三角形の側面である。このイメージを描くため、コンピュータは3次元のデータで定義されたものを2次元の画面に投影するための計算をする。 まず、どの地点から見た情景を描くか、すなわち視点を決める。ここでは部屋の中の床より若干高い位置に視点を設定し、正面にピラミッドがくるようにする。コンピュータはまず、どのポリゴンが見えるかを計算する。近い壁は視点の後ろにあるため、全く表示されない。またピラミッドの反対側の面は隠れていて見えない。 次に各点を画面上に遠近法を考慮して投影する。遠くにある壁は画面上では近い壁よりも小さくなる。壁が木製に見えるように木目のテクスチャをその上に描く。このときに使う技法としては「テクスチャマッピング」が一般的である。木目のパターンを壁の見た目の形状に合わせて変形した上でタイル(または壁紙)のように並べる。ピラミッドは灰色なので、その表面は単に灰色にする。しかし、照明の効果を再現する必要がある。照明が当たっている面は明るくし、影になっている部分は暗くする。 以上のようにして完全な情景を画面上に描く。ピラミッドの位置を表す値を徐々に変化させると、ピラミッドが動いているように見せることができる。
※この「詳細な例と擬似コード」の解説は、「コンピュータアニメーション」の解説の一部です。
「詳細な例と擬似コード」を含む「コンピュータアニメーション」の記事については、「コンピュータアニメーション」の概要を参照ください。
- 詳細な例と擬似コードのページへのリンク