3DCGについてまとめてみました

3DCG（3次元コンピュータグラフィックス）とは、コンピュータを用いて3次元空間における物体や環境を作成し、描画・表示する技術です。3DCGは、映画、アニメ、ゲーム、建築、医療などさまざまな分野で活用されており、物体やキャラクターを現実的に表現するための多くの技法が存在します。ここでは、3DCGの主要な技法やプロセスについて説明します。

---

## 1. **モデリング（Modeling）**
モデリングは、3Dオブジェクト（キャラクター、建物、乗り物など）を作成するプロセスです。モデリング技法には、以下のようなものがあります。

### **ポリゴンモデリング**
- **概要**: ポリゴン（多角形）を組み合わせて3Dオブジェクトを構成する手法です。ポリゴンの最小単位は三角形で、これを多数組み合わせて物体の形状を作ります。
- **特徴**: ゲームやアニメーションで広く使用される基本的なモデリング技法です。ポリゴンの数が増えると、より詳細で滑らかな形状が作成できます。

### **スカルプティング（Sculpting）**
- **概要**: デジタルクレイを彫刻するように3Dオブジェクトを作り出す技法です。形状を細かく変形させながら、複雑なディテールを作成します。
- **特徴**: 人物の顔や複雑なキャラクターなど、細かなディテールが求められるモデリングに向いています。ZBrushなどのソフトウェアで使用されます。

### **NURBSモデリング**
- **概要**: NURBS（Non-Uniform Rational B-Splines）は、曲線や曲面を使って形状を定義する技法です。滑らかな曲面を作りやすいため、車のボディやインダストリアルデザインで使われます。
- **特徴**: ポリゴンでは表現しにくい滑らかな曲線を容易に作成できるため、工業デザインやプロダクトデザインに適しています。

### **プロシージャルモデリング**
- **概要**: 数学的なアルゴリズムや手続きに基づいて自動的にオブジェクトを生成する技法です。特に自然物（木、山、海など）や大規模なシーンを作成するのに役立ちます。
- **特徴**: 手作業でモデリングするのが難しい、複雑で大規模な環境を効率的に作成できます。

---

## 2. **テクスチャリング（Texturing）**
テクスチャリングは、3Dオブジェクトの表面に画像や模様を貼り付けて、質感やディテールを表現する技法です。リアルな物体表現には欠かせません。

### **UVマッピング**
- **概要**: 3Dモデルの表面を2D空間に展開（フラット化）し、その上にテクスチャ（画像）を貼り付ける手法です。UVとは、2D空間の座標系を指します。
- **特徴**: 物体の表面にテクスチャを正確に配置でき、細かい模様や表面の質感を表現できます。

### **バンプマッピング**
- **概要**: テクスチャの一種で、物体の表面の凹凸を擬似的に表現する技法です。実際のジオメトリ（形状）は変化させず、光の当たり方を変えることで凹凸をシミュレートします。
- **特徴**: 計算リソースを抑えつつ、ディテールを高めることができ、壁の粗さや皮膚の質感などに使用されます。

### **ノーマルマッピング**
- **概要**: バンプマッピングの進化形で、物体表面の法線情報を利用して詳細な凹凸を再現する技法です。通常、低ポリゴンモデルに対して、詳細な高ポリゴンモデルの情報を投影することで使用されます。
- **特徴**: リアルな凹凸感を効率的に表現できるため、ゲームやリアルタイムレンダリングでよく使われます。

### **ディスプレイスメントマッピング**
- **概要**: バンプマッピングやノーマルマッピングとは異なり、実際に物体のジオメトリを変形させて凹凸を作る技法です。高度なディテールを表現したい場合に使用されます。
- **特徴**: 高品質なレンダリングが可能ですが、計算負荷が大きいため、リアルタイムアプリケーションではあまり使われません。

---

## 3. **リギング（Rigging）**
リギングは、3Dモデルをアニメーションさせるために**骨組み（スケルトン）**や**ジョイント**を設定するプロセスです。リギングによって、キャラクターやオブジェクトに動きが与えられます。

### **スケルトンリギング**
- **概要**: キャラクターの内部に「骨格」を設定し、その骨格に基づいてモデルを動かす技法です。キャラクターの関節や体の動きを定義します。
- **特徴**: キャラクターアニメーションの基本であり、手足や胴体などの動きを自然に制御できます。

### **スキンウェイティング**
- **概要**: スケルトンが動いたときに、モデルの表面がどのように変形するかを決めるプロセスです。各頂点に対してスケルトンの影響度（ウェイト）を設定します。
- **特徴**: 人物の体の動きや表情を自然に表現するために重要な技法です。

### **ブレンドシェイプ**
- **概要**: 異なる形状（シェイプ）の間を補間して、表情や細かな形状変化を表現する技法です。複数の形状を「ブレンド」して新しい形を作り出します。
- **特徴**: キャラクターの顔の表情変化（喜び、怒り、驚きなど）や口の動きを表現するのに適しています。

---

## 4. **アニメーション（Animation）**
アニメーションは、時間軸に沿ってオブジェクトやキャラクターに動きを与えるプロセスです。3DCGにおけるアニメーション技法は、多岐にわたります。

### **キーフレームアニメーション**
- **概要**: 動きの開始位置と終了位置を「キーフレーム」として設定し、その間をソフトウェアが自動で補間して滑らかな動きを作り出します。
- **特徴**: 手動で動きを指定でき、キャラクターや物体のアニメーションで最も一般的な方法です。

### **モーションキャプチャ（Mocap）**
- **概要**: 実際の人間や動物の動きをセンサーやカメラで記録し、そのデータを元に3Dキャラクターに動きを反映させる技法です。
- **特徴**: 現実的で複雑な動きを簡単に再現できるため、映画やゲームでよく使用されます。実写の動きを忠実にキャプチャできるため、リアルな動きが表現可能です。

### **プロシージャルアニメーション**
- **概要**: スクリプトやアルゴリズムによって自動的に生成されるアニメーションです。歩行、風による木の揺れなど、反復的で自然な動きを表現する際に使用されます。
- **特徴**: 自然現象や大量の物体が動くシーンで便利です。物理法則に基づく動きをリアルタイムで生成できます。

---
## 5. **レンダリング（Rendering）**
レンダリングは、3Dシーンを最終的な画像や映像に変換するプロセスです。光の反射や影、透明度、反射などのエフェクトを計算し、現実的なシーンを生成します。

### **レイトレーシング（Ray Tracing）**
- **概要**: レイトレーシングは、光の挙動をシミュレートし、光線が物体に当たって反射、屈折、影、反射光などを計算することで、非常に現実的なレンダリングを実現する技法です。
- **特徴**: 高品質でリアルな画像が得られるため、映画や静止画のレンダリングでよく使用されます。ただし、計算負荷が高いため、レンダリング時間が長くなることがあります。
- **使用例**: 高品質な映画のCGや、フォトリアルな建築ビジュアライゼーションなどで使用されます。

### **ラスタライズ（Rasterization）**
- **概要**: ラスタライズは、3Dシーンを2D画面に変換するための最も基本的な技法で、ポリゴンをピクセルに変換して画面に描画します。レンダリングが非常に高速で、リアルタイム処理に向いています。
- **特徴**: レイトレーシングよりも速度を優先するため、主にリアルタイム3Dゲームやインタラクティブなアプリケーションで使用されます。現実的な照明や影、反射の表現は制限されますが、GPUを効率的に使用できます。

### **グローバルイルミネーション（Global Illumination）**
- **概要**: グローバルイルミネーションは、光が物体に反射し、他の物体に間接的に影響を与える現象をシミュレートする技法です。これにより、光が直接当たっていない部分にも、周囲の光が拡散して現実的な照明が再現されます。
- **特徴**: 照明効果がリアルになり、光の反射や影の柔らかさが現実的に表現されますが、計算負荷が高いです。映画や建築ビジュアライゼーションで多く使われます。

### **アンビエントオクルージョン（Ambient Occlusion）**
- **概要**: アンビエントオクルージョンは、物体の接触部分や光が届きにくい箇所に影を落とすことで、シーン全体に陰影の深さを加える技法です。これにより、現実感が高まり、物体の立体感が強調されます。
- **特徴**: 高品質なレンダリングにおいて、微妙な陰影を付け加えるために使われます。リアルタイムゲームでも簡易的に使われることが多いです。

---

## 6. **ライティング（Lighting）**
ライティングは、シーンの照明を設定するプロセスで、光の強さ、色、方向、種類をコントロールします。ライティングはシーンの雰囲気やリアリズムを大きく左右する重要な要素です。

### **ポイントライト**
- **概要**: 一点から全方向に光を放射するライトです。電球のように、特定の場所から四方八方に光が広がります。
- **特徴**: 照明がシーン全体に均等に行き渡るため、シンプルで広く使われる光源です。

### **スポットライト**
- **概要**: 特定の方向に向かって円錐状に光を照射するライトです。懐中電灯のように、ある範囲だけを照らします。
- **特徴**: シーンの一部を強調したり、特定の焦点を当てたい場合に使用されます。

### **ディレクショナルライト（平行光源）**
- **概要**: 太陽光のように、一定方向からシーン全体に均一な光を投影するライトです。光の出発点は無限遠にあり、すべての光線が平行になります。
- **特徴**: 主に屋外シーンや、広い範囲を照らす場合に使われます。

### **エリアライト**
- **概要**: 面積を持つ光源から光を放つライトです。特定の面積から拡散する光をシミュレートすることで、リアルな光の表現を可能にします。
- **特徴**: ソフトな影や、現実的な光の反射を再現するために使われます。

### **環境光（アンビエントライト）**
- **概要**: シーン全体に均一に当たる弱い光をシミュレートするもので、光がどこから来るかは特定されません。背景照明として機能し、全体の明るさをコントロールします。
- **特徴**: 全体の明るさを調整し、影の部分が完全に暗くならないようにします。

---

## 7. **物理ベースレンダリング（PBR: Physically Based Rendering）**
- **概要**
物理ベースレンダリング（PBR）は、現実世界の物理法則に基づいて、光と物体の相互作用をシミュレートする技法です。PBRでは、物体の材質（メタリック、ラフネス、反射率など）を正確に表現するため、リアルな見た目を実現します。

- **特徴**
  - **リアルな材質表現**: PBRは、現実の光と物質の相互作用を考慮するため、金属、ガラス、布などの素材が非常にリアルに表現されます。
  - **一貫した結果**: 光源やカメラの位置に関わらず、物体が一貫した見た目を持つようにレンダリングされます。
  - **使用例**: ゲーム、映画、建築ビジュアライゼーションなど、あらゆる3Dシーンで使われています。

---

## 8. **シミュレーション（Simulation）**
シミュレーションは、物理現象をリアルに再現するために、動力学や流体力学などを利用して動きを生成する技法です。

### **布や衣類のシミュレーション**
- **概要**: 布や衣類がどのように動くかをシミュレートする技法です。風や重力の影響をリアルに再現します。
- **特徴**: 人物のアニメーションや映画で、現実的な動きが必要なときに使用されます。

### **流体シミュレーション**
- **概要**: 水、煙、炎などの流体の動きをシミュレートします。特に、リアルタイムで変化する動きが要求されるシーンで使用されます。
- **特徴**: CG映画やゲームでの水面の描写、煙の立ち上る様子など、自然な動きを再現します。

### **破壊シミュレーション**
- **概要**: 物体が破壊される様子をシミュレートします。建物が崩れるシーンや、ガラスが割れる様子などが含まれます。
- **特徴**: アクションシーンや爆破シーンでリアルな破壊表現を行います。

---

## **まとめ**
3DCGの技法には、モデリング、テクスチャリング、リギング、アニメーション、レンダリング、ライティング、PBR、シミュレーションなどが含まれ、各技法が連携してリアルで魅力的な3Dシーンを作り出します。それぞれの技法が持つ特徴と利点を理解し、適切に使い分けることで、非常に高品質な3DCG作品を作成することが可能です。