この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:2
ページ更新者:atom
更新日時:2026-05-17 14:48:25

タイトル: Skinned Mesh Renderer
SEOタイトル: Skinned Mesh Renderer とは?Unity のボーンアニメーション

本稿は Unity の Skinned Mesh Renderer コンポーネントに関する記事です。

Skinned Mesh Renderer の設定例

Skinned Mesh Rendererボーン (Bone) アニメーションを描画するために使われるレンダラーコンポーネントです。キャラクターや生物のように、内部のボーンに合わせてメッシュが変形するモデルで利用します。

当コンポーネントを使用する場合、通常の静的メッシュで使う Mesh FilterMesh Renderer は不要です (Skinned Mesh Renderer が両方の役割を兼ねます)。

Skinned Mesh Rendererの主な役割

  • スキニング — 各頂点に最大4本のボーンの影響度 (BoneWeight) を持たせ、ボーンの動きにメッシュが追従
  • ブレンドシェイプ (BlendShape) — 表情や形状の段階的変形 (笑顔 0%〜100% など)
  • ルートボーン管理 — メッシュ移動の起点となるボーンを指定
  • カリングモードの選択 — 画面外で更新を止めるかどうか
  • マテリアル管理 — 他のレンダラー同様にマテリアルを複数割当可能

主なプロパティ

プロパティ役割
Boundsカリング・選択判定に使われる AABB (軸並行バウンディングボックス)。動きに対して小さすぎるとカリングで消える
Quality1ボーンあたりの影響頂点本数。1〜4 で品質と負荷のトレードオフ
Update When Offscreen画面外でも姿勢更新を続ける。アタッチエフェクト等で必要なら ON
MeshSkinned Mesh のリファレンス (FBX等からインポートされたメッシュ)
Root BoneBounds の追従元・基準ボーン
BlendShapes定義されているブレンドシェイプの数値。スクリプトから動的に変更可能
Materialsサブメッシュごとに割り当てるマテリアル
Cast/Receive Shadows影の投影・受光
Light Probes / Reflection Probesライティング情報の取得方式

Mesh Renderer との違い

項目Skinned Mesh RendererMesh Renderer
用途キャラクター等のスキニング/ボーン変形静的・剛体メッシュ (壁・建物・小物等)
必要コンポーネントこれ1つ (Mesh Filter 不要)Mesh Filter + Mesh Renderer
ブレンドシェイプ対応非対応
負荷毎フレーム頂点を CPU/GPU で変形 (重め)軽い (頂点はそのまま転送)
典型的なソースFBX のリグ付きキャラFBX/Mesh の静的モデル

典型的な使い方

  1. リグ付き FBX を Unity にインポートする (Humanoid または Generic のリグ設定)
  2. シーンに配置すると、自動的に Skinned Mesh Renderer 付きの子オブジェクトが作成される
  3. Animator コンポーネントを親に付与し、Animation Controller を設定
  4. 必要に応じて Bounds を手動で広げる、Update When Offscreen を ON にする
  5. マテリアル・シェーダを割り当てる

スクリプトからのブレンドシェイプ操作例

using UnityEngine;

public class FaceController : MonoBehaviour
{
    public SkinnedMeshRenderer face;
    void Update() {
        float v = Mathf.PingPong(Time.time * 50f, 100f);
        face.SetBlendShapeWeight(0, v);  // 0 番目を 0〜100 で動かす
    }
}

よくある落とし穴

  • カリングで急に消える — ルートボーンの位置から離れてアニメする場合、Bounds が小さすぎる。手動で Bounds を広げるか、Update When Offscreen を ON
  • 影が出ない/逆に重い — Cast Shadows のモード確認。複雑キャラ多数なら影オフを検討
  • マテリアル数の増加で Draw Call が増える — マテリアル統合・SRP Batcher 対応シェーダの活用
  • Animator 非アタッチで姿勢が更新されない — Animator・Animation Controller の付与漏れ
  • GPU Skinning ON/OFF — Player Settings の「GPU Skinning」「Graphics Jobs」で性能が変わる
  • Bake された別メッシュBakeMesh を使えば現在の姿勢を静的メッシュとして取り出せる (パーティクル等の連携で便利)

パフォーマンス上のポイント

  • 遠景キャラはLOD Group で簡略メッシュへ切り替え
  • 大量に並べるならGPU SkinningまたはAnimation Instancingを検討
  • 影をたくさん描く場合はシャドウキャスタの数を減らす設計
  • 不要な BlendShape はインポート時にオフにできる

関連

  • 親カテゴリ: Mesh Renderer
  • 関連: Animator / Animation Controller / LOD Group / BlendShape