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)を用いてスキンメッシュをアニメーションさせる最低限の処理を実装する手順を解説。これまでAnimatorやAnimator 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でスキンメッシュをアニメーションさせる

関連記事

どんなパーツ構成でも物理制御できるシステムを開発。ガラクタから未知の生物を作るシミュレーションゲーム『Legacy Code』試遊&インタビュー【TGS2026】
2026.10.06
ゼロから3Dオープンワールドゲームづくりを学べる!Unity 6.3 LTS対応のゲーム制作入門書、10/15(木)に翔泳社が発売
2026.10.05
ゲームのWLや販売本数をド派手にアピール!カウントアップ演出制作ツールが無料でリリース。今週のゲーム開発関連ツールまとめ
2026.10.03
ブラウザでエフェクト用メッシュを作れる無料ツール「MeshCreate」リリース。Unity向けに出力も可能
2026.09.29
Unity 6.7 Betaがリリース。Netcode for Entitiesのパフォーマンス向上、シェーダーのビルドが高速化
2026.09.29
携帯動画変換君やVRMのMIRO氏、「POPOPO」の一部技術をオープンソースで公開。今週のゲーム開発関連ツールまとめ
2026.09.26

注目記事ランキング

2026.09.30 - 2026.10.07
VIEW MORE

連載・特集ピックアップ

イベントカレンダー

VIEW MORE

今日の用語

プロパティ(Property)
プロパティ 英語で「資産」や「属性」を意味する。 一般的に対象の持つ属性・性質などを表す。例えば、画像ファイルにおける、容量やファイル形式、解像度などの情報。 3DCGツールやゲームエンジンにおいては、各オブジェクトのふるまいを決める個別の設定項目を示すことが多い。
VIEW MORE

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