スケルトン とは、 スケルトン メッシュ の ボーン (ジョイント も呼ばれる) を定義するために使用される階層構造です。いろいろな意味で、これらのボーンは、ボーンの位置とキャラクターが変形する方法の制御により、実際の生物学的な骨格を模倣しています。
Unreal Engine では、スケルトンを使用して、アニメーション データ、スケルタル階層全体、および アニメーション シーケンス を格納して、関連付けています。スケルトン アセットは、さまざまな方法で共有することができ、異なるスケルトン間で追加のアニメーションやデータを共有することができます。
このドキュメントでは、スケルトンの作成および使用方法の概要について説明します。
前提条件
- プロジェクトに スケルタル メッシュ アクタ が含まれているか、Unreal Engine にインポートするスキン FBX キャラクターがある。
スケルトンを作成する
スケルトンを作成する主な方法は、スキン キャラクターの FBX を インポート し、Unreal Engine で スケルタル メッシュ に変換する方法です。スケルタル メッシュをインポートするときに、 [FBX Import Options (FBX のインポート オプション)] ウィンドウで [Skeleton (スケルトン)] フィールドを空のままにすると、インポートされたスキン キャラクターに基づいてスケルトン アセットが自動的に作成されます。

キャラクターをインポートすると、他のスケルタル メッシュ アセットとともに スケルトン アセット が作成されます。

また、任意のスケルタル メッシュからスケルトンのコピーを作成することもできます。これには、コンテンツ ブラウザ でスケルタル メッシュを右クリックし、[Skeleton (スケルトン)] > [Create Skeleton (スケルトンを作成)] を選択します。これにより、既存のメッシュに関連付けられている新しいスケルトンが作成されます。そのメッシュに別のスケルトンが関連付けられている場合は、新しいスケルトンにリンクし直され、アニメーションはすべて新しいスケルトンにリンクされます。

スケルトン アセットをダブルクリックして、 スケルトン エディタ を開きます。

スケルトン ツリー情報
スケルトン ツリー に表示されるボーンやその他のアイテムは、複数の要因によって異なって表示されることがあります。
アイコン | 説明 |
---|---|
![]() |
スケルタル メッシュの頂点に影響する法線ボーン。 |
![]() |
スケルタル メッシュの頂点に影響しない現在のスケルトンにあるボーン。これらのボーンは、通常、武器やプロップをアタッチするためなど、補助的に使用されますが、引き続きボーンとしてアニメート可能です。 |
![]() |
ソケット。ボーン用のオフセット アタッチメント ポイントとして機能するスタティック ポイントです。 |
![]() |
仮想ボーン。別のボーンのトランスフォームに追従するものの、別のボーン空間内にあるボーンです。仮想ボーンは、不要なジョイントの動きをロックするうえで役立ち、 IK と組み合わせて使用されます。 |
![]() |
スケルトンに存在するものの、現在のスケルタル メッシュで使用されていないボーン。これは、スケルトンを マージ した場合や、特定のボーンを使用していないこのスケルトンで異なる LOD をプレビューしている場合に発生する可能性があります。 |
アニメーション データ ストレージ
Unreal Engine のスケルトンは、アニメーションを制御するだけでなく、アニメーション固有のデータの格納も行います。アニメーション シーケンスで アニメーション通知 を作成するなど、これらのソースからデータが作成されると、共有データとしてスケルトンに追加されます。
スケルトンは次のタイプのアニメーション データを格納します。
このデータは、スケルトン エディタ メニューの [Window (ウィンドウ)] をクリックし、これらのパネルを 1 つ以上有効にすると、専用のツール パネルで表示することができます。

スケルトンを共有する
スケルトン アセットの重要な機能は、スケルタル メッシュが同一の一般的なリグ階層を使用している限り、単一のスケルトン アセットを複数のスケルタル メッシュで使用できることです。つまり、共有を正しく機能させるためには、ボーンの名前と階層順が一貫している必要があります。
たとえば、スケルタル メッシュに 3 つのボーンを備える手足について考えてみましょう。ボーンには「1」、「2」、「3」という名前が付いています。

このスケルトンを別のスケルタル メッシュと共有したい場合、これらのボーンを同じ順序で、同じ名前のまま維持する必要があります。ただし、2 つ目のスケルタル メッシュには、その階層の追加ボーンまたは周辺ボーンを含めることができます。スケルタル メッシュに含まれないボーンに対してアニメーション データを受信した場合、そのアニメーション データは無視されます。
その場合、新しい階層は次の図のようになります。ここでは、2 つ目のスケルタル メッシュに追加のボーンがありますが、1 つ目のスケルタル メッシュの元の階層は保持され、影響はありません。

ただし、両方のスケルタル メッシュが同一のスケルトン アセットを使用するためには、階層の順序を変更したり、ボーン名を変更したりすることはできません。2 つ目のスケルタル メッシュが異なるボーン階層と命名構造を使用している場合、新しいスケルトン アセットを作成する必要があります。

順序を変更することなく階層にボーンを挿入すると、問題なく共有することができます。ただし、ほとんどの場合、追加のボーンはスケルトンに意図しないトランスフォームのオフセットをもたらす可能性があります。できればこの状態は回避することをお勧めします。

これらの共有ルールを考慮すると、Unreal Engine のスケルタル メッシュ間でスケルトンを共有できる方法がいくつかあります。これらの詳細については、以下で説明します。
インポート時にマージする
スケルトンを共有する最初の方法は、FBX インポート処理時に実行されます。新しいスケルタル メッシュ (上記のルールに準拠した追加ボーンおよび周辺ボーンを含む) をインポートする際に、プロジェクト内にすでに存在するスケルタル メッシュからスケルトンを選択することができます。その後、Unreal Engine ではスケルトンをマージし、新しいボーンを階層に追加します。さらに、スケルトンのプロポーションは、作成元のスケルタル メッシュによって定義されます。

マージしようとしているスケルトンと大きく異なるスケルトンをインポートし、共有ルールが順守されなかった場合は、次のエラー メッセージが表示されます。

この場合、既存のスケルトンにマージするのではなく、インポートするスケルタル メッシュ用に新たなスケルトン アセットを作成する必要がある場合があります。
マージされたスケルトンを確認すると、階層にこれらの追加ボーンがリストされますが、追加ボーンは意図されたスケルタル メッシュに対してのみ表示され、アクティブになります。
![]() |
![]() |
---|---|
スケルタル メッシュのバリアント 1 | スケルタル メッシュのバリアント 2 |
互換スケルトン
また、スケルトン エディタの Compatible Skeletons プロパティを使用することで、スケルトンを非破壊的に共有することができます。これにより、異なるスケルトンをマージと同じように動作させることができますが、引き続き個別のスケルトン アセットが維持されます。
スケルトンを他のスケルトンへの互換性を持たせるには、 スケルトン エディタ を開き、メインメニューから [Window (ウィンドウ)] > [Asset Details (アセット詳細)] を選択して [Asset Details] パネルを開きます。[Asset Details] パネルで、Compatible Skeletons プロパティを特定します。

追加 (+) ボタンをクリックしてスケルトンのエントリをリストに追加し、使用する別のスケルトンを選択します。

これで、互換リストに追加されたスケルトンからアニメーションを共有することができます。

スケルトンの互換性は双方向ではありません。スケルトン 1 が スケルトン 2 に対して互換性を持つように設定しても、スケルトン 2 がスケルトン 1 に対する互換性を持っているわけではありません。完全に双方向で共有したい場合は、スケルトン 2 が スケルトン 1 に対する互換性を持つように設定する必要があります。
スケルトンの機能
Unreal Engine のスケルトンは、アタッチ、ブレンド、およびその他の設定に関するさまざまな機能をサポートしています。これらの機能の詳細については、以下のページを参照してください。