UnityのECSでスキンメッシュアニメーションを実装。GameObjectのデータを変換する仕組みなど、QualiArtsがブログで解説

UnityのECSでスキンメッシュアニメーションを実装。GameObjectのデータを変換する仕組みなど、QualiArtsがブログで解説

2026.07.03
ニュースUnity技術ブログ
この記事をシェア!
Twitter Facebook LINE B!
Twitter Facebook LINE B!

この記事の3行まとめ

  • Unityでスキンメッシュのアニメーション処理をECSによって実装する手法、QualiArtsがブログ記事で解説
  • GameObjectベースの実装においてAnimatorなどが暗黙的に担っていた処理を、ECSで置き替える最小限の仕組みを構築する
  • 処理に必要となるGameObject側のデータを変換してEntityに渡するといった一連の手順を解説している

QualiArtsは2026年6月30日(火)、『Unity ECSでスキンメッシュをアニメーションさせる』と題した記事を、自社ブログにて公開しました。

Unity上でECS(Entity Component System)を用いてスキンメッシュをアニメーションさせる最低限の処理を実装する手順を解説。これまでAnimatorAnimator Controllerといったコンポーネントが暗黙的に担っていた処理を、ECSで代替する方法を紹介しています。

なお記事中での実行環境は、Unity 6.5、Entities 6.5.0、Entities Graphics 6.5.0です。

(画像はブログ記事より引用)

ECSとは、実装単位をIDとなる「Entity」、データ構造を定義する「Component」、Component同士の振る舞いを定義する「System」に分離する設計手法。並列処理の活用により、大量のオブジェクトを高速に処理できるといった特徴を持っています。

Unityでは、ECSに基づいた開発を行うための公式パッケージが提供されています。

(画像は「Entities」パッケージの公式ドキュメントより引用)

GameObjectベースでスキンメッシュのアニメーションを実装する場合、Unityでは主にAnimatorやAnimator Controllerを用いた再生手法が採用されます。再生時間を進めて状態遷移を扱い、AnimationClipからボーンの姿勢を評価、それらの情報を元にメッシュをSkinnedMeshRendererへ反映するまでの工程を、システム側が自動で制御するというものです。

記事では、この工程をECS上の「データ」「System」に分類し、スキンメッシュをアニメーションさせるための最小限の仕組みを構築する流れを解説しています。

(画像はブログ記事より引用)

ECSではGameObjectを直接扱えないことから、情報を扱うにあたり「Baking」と呼ばれる変換処理が必要となります。ランタイムのSystemが直接データを参照するのではなく、必要な情報だけをBaker」で変換します。

記事では大きく分けて「AnimationClip」「SkinnedMeshRenderer」「サンプリング設定の3つのデータを取得・変換しています。

Authoring ComponentがもつGameObject側の設定を「Baker」が読み取り、ランタイムで扱う「BlobAsset」「DynamicBuffer」「IComponentData」へ変換し、Entityに入力します。

(画像はブログ記事より引用)

実行中に変化しないアニメーションデータ(AnimationClipをECSで扱うにあたり行うサンプリングの間隔や、Clipの長さ、各ボーンにおける時刻ごとのローカル姿勢など)は「BlobAsset」として持たせます。

一方、Clip内の再生時刻や再生速度といった、Entitiyごとに変化する実行時の状態は「IComponentData」として持たせ、Systemで更新します。

またSkinnedMeshRendererから「どのボーンがどの順番でメッシュに対応しているか」といった情報を抽出し、Entityに紐づく配列のようなデータとして保持します。このような可変長データは「DynamicBuffer」で取り扱います。

データの変換に使用したAuthoring Componentの例。それぞれの名前は記事用に整理されている(画像はブログ記事より引用)

最後に、作成したデータを使用して、Systemによる実行時の更新処理を実装します。ここでは「各Entityの再生時間を進める」「ボーンの姿勢を反映する」「描画用のSkinMatrixを更新する」といった処理を行うようにします。

そのほかにも、Componentの処理をECSで実装した例などがコードサンプルとともに紹介されています。

詳細はブログ記事をご確認ください。

Unity ECSでスキンメッシュをアニメーションさせる

関連記事

Unityの規約改定で外部AIツール連携が制限。AI学習・スクレイピングの阻止が目的で、「サードパーティーMCP自体は禁止しない」との説明も
2026.07.03
Unityでアプリ内課金を実装・管理できるパッケージ「Unity IAP 5.4」リリース。D2Cに対応したほか、ノーコードでオンラインストアを自作可能に
2026.07.01
Unityの次期LTS版「Unity 6.7」、Alpha版がリリース。今後予定された破壊的変更についてもアナウンス
2026.06.26
モデルとテクスチャのパーツを組み合わせ、エフェクトを作成。Unity向けのゲームエフェクトの制作手法とレシピを解説した書籍が翔泳社より7/13(月)に発売
2026.06.25
ゲーム開発関連ツールのリリース・アップデートまとめ【2026/6/20】
2026.06.20
Android XR対応のグラス型デバイス「XREAL AURA」、今年秋に発売予定。Unityでのサポートも併せて発表
2026.06.17

注目記事ランキング

2026.06.26 - 2026.07.03
VIEW MORE

連載・特集ピックアップ

イベントカレンダー

VIEW MORE

今日の用語

リグ(Rig)
リグ 3Dモデルを動かす場合に、すべてのボーンを編集するのではなく、少ない編集箇所で直感的に動作などを付けるために作られたコントローラーやコントロールする仕組み。 またスケルトン自身をリグと呼ぶ場合もある。
VIEW MORE

Xで最新情報をチェック!