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勉強会「CA.unity #11」、講演動画が公開。AIによる自律的な開発支援を行う「Unity CLI Loop」の活用事例など全4講演
2026.07.17
Epic Gamesのマーケットプレイス「Fab」、7/28(火)までの期間限定で無料コンテンツを公開。スタイライズな村を作れる環境アセットなど3製品
2026.07.15
UE5.7でMoverとMotion Warpingを併用する手法、アドグローブがブログで解説。C++/ブループリント双方での実装例を紹介
2026.07.13
ゲーム開発関連ツールのリリース・アップデートまとめ【2026/7/11】
2026.07.11
オンラインマルチプレイ機能を実装できるUnity向けSDK「Photon Fusion 2.1」リリース。CPU負荷の低い「Forecast Physics」などが実装
2026.07.07
Cygames、『GRANBLUE FANTASY: Relink』サウンド実装技術をブログで解説。多数のSEを動的に制御する内製システムなどを紹介
2026.07.06

注目記事ランキング

2026.07.11 - 2026.07.18
VIEW MORE

連載・特集ピックアップ

イベントカレンダー

VIEW MORE

今日の用語

パッケージ化
パッケージカ ゲーム開発において、ゲームの実行に必要なデータのみを、実行ファイルとそれに付随するデータの形式に変換すること。プラットフォームに合わせたファイルフォーマットに変換するほか、この段階でアセットファイルを再利用や改ざんすることができないように暗号化することが多い。
VIEW MORE

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