サードパーティのモデリングソフトウェア(BlenderやMayaなど)を使用して、アニメーション可能なヘッドをサポートする既存のモデルを作成または変更できます。ヘッドを作成する際、キャラクターモデルは以下の要件を満たす必要があります。
- モデルは標準のモデリング要件に従い、目、口、歯などのヘッドジオメトリを含んでいます。
- モデルのヘッドにはリグまたは内部ボーン構造が含まれている必要があります。これらのボーンは、顔の表情を作成するために頂点のさまざまな変形を駆動します。コントロールシステムを作成してポージングプロセスを簡素化できます。
- モデルには、アニメーションタイムラインに保存された顔のポーズがあり、ヘッドメッシュにマッピングされています。典型的なアニメーション可能なヘッドには、さまざまな表情を可能にする50の標準ベースポーズが含まれています。
これらの要件を満たすために、独自のヘッドを設計しポーズを取る際にこのガイドの手順を適用できます。このガイドでは、Blenderでの顔のボーンの追加、ポージング、5つの基本的なFACSポーズのマッピングの基本プロセスを、簡略化されたリファレンスキャラクター(Cubie)を使用して説明し、その後モデルをエクスポートします。
リファレンスファイル
以下は、すべての例ファイルを含むヘッドリファレンスファイルです。
| リファレンスファイル | 説明 |
|---|---|
| Cubie-Model-Only.blend | 顔データなしのR15 Cubieキャラクターモデルを含むBlenderプロジェクトファイル。 |
| Cubie-Eye-Bones-Skinned.blend | ポージングやマッピングデータなしのスキンされた目のボーンを含むCubieキャラクターモデルのBlenderプロジェクトファイル。 |
| Cubie-Eye-Poses-Mapped.blend | 5つの例ポーズが保存され、マッピングされたCubieキャラクターモデルを含むBlenderプロジェクトファイル。 |
| Cubie-Complete.fbx | 完全にリグされた顔と50以上のポーズが保存され、マッピングされたCubieキャラクターモデル。Studioにこのファイルをインポートするか、お好みの3Dモデリングソフトウェアでファイルを開くことができます。 |
| Cubie-Texture_ALB.png | Cubieテクスチャ画像ファイル。CubieモデルをStudioにインポートした後、このファイルをヘッドパーツのTextureIDとして追加できます。 |
| Cubie-Complete.ma | 追加のリファレンスとして提供されるCubie Mayaプロジェクト。 |
モデリング要件
多くのキャラクターモデルにはすでに明確な顔の特徴を持つヘッドが含まれていますが、ヘッドの互換性のために小さなモデリング調整が必要な場合があります。ヘッドを持つキャラクターをモデリングする際は、ヘッドメッシュがStudioインポートのためのアバターキャラクター仕様を満たし、以下の要件を満たしていることを確認してください。
- 顔のパーツ - 目、上の歯、下の歯、舌などの明確な顔の特徴を含めることを確認してください。
- 唇の頂点 - キャラクターが口を使う場合、口が開くように唇の頂点を分離してください。
- 内部コンポーネント - キャラクターに舌や歯などの内部口コンポーネントがある場合、これらの特徴を含む口袋をヘッドメッシュ内にモデリングしてください。キャラクターが目のくぼみを使用する場合、これらの特徴を含む同様の目袋をモデリングしてください。
- 余分なデータなし - Head_Geoのすべての子供の顔のパーツに履歴や凍結された変換が含まれていないことを確認してください。
- 外部ケージ - キャラクターモデルには、顔のアクセサリーや重ね着をサポートするための外部ケージが必要です。詳細については、ケージメッシュ要件を参照してください。
これらのモデリング要件を満たすリファレンスモデルのリグ付きCubieキャラクターを使用して、残りのヘッド作成プロセスを進めることができます。このバージョンには顔のリギングやポーズデータは含まれていないため、このガイドのリファレンスとして使用できます。
リギング
キャラクターには、顔のジオメトリの頂点を駆動し、顔のポーズを作成するための内部ボーン構造が必要です。ヒューマノイドモデルのリギングとは異なり、Studioではヘッドのための特定のボーン階層は必要ありません。ただし、顔のリグが正しく機能するためには、リグにはRootFaceJointボーンと追加の顔のボーンが含まれている必要があります。
RootFaceJoint
RootFaceJointは、標準のR15ヘッドボーンの下に親子関係を持つボーンです。このルートボーンは、他のすべての顔のボーンを親にする必要があります。Blenderでは、ヘッドボーンから子ボーンを押し出すことでボーンを迅速に追加し、ボーン名をHead_Geoメッシュのプロパティとしてマッピングできます。RootFaceJointボーンオブジェクトは、リファレンステンプレートや例では一般的に「DynamicHead」と名付けられていますが、カスタムプロパティでルートボーンをマッピングする限り、任意の名前を使用できます。
RootFaceJointボーンを追加するには:
BlenderでCubie-Model-Only.blendプロジェクトを開きます。

任意のボーンをクリックしてアーマチュアを選択し、編集モードに切り替えます。
アウトライナーでヘッドボーンをクリックします。
ビューポートでEを押し、マウスを上にドラッグしてヘッドボーンから追加の子ボーンを押し出します。
アウトライナーでこのボーンの名前をDynamicHeadに変更します。このボーンは後でマッピングセクションで名前で参照します。
顔のボーン
顔のボーンは、顔のジオメトリの曲げや変形を駆動します。ヘッドの各ポーズ可能な顔の特徴には、通常、少なくとも1つのボーンが必要です。目や口などの複雑な特徴には、特定のポーズを可能にするために複数のボーンが必要な場合があります。
リギングとスキニングのプロセスはキャラクターモデルによって異なり、ツールやモデラーによって異なります。後でヘッドボーンに追加の調整を避けるために、キャラクターが必要とする顔のポーズの全範囲を計画することが重要です。
以下の手順では、リファレンスモデルの目とまぶたに顔のボーンを追加し、影響をスキニングする基本的なプロセスを説明します。この技術をキャラクターの口、頬、顎など、可動が必要な他の顔の特徴にも適用できます。ボーンを追加し、影響を適用した後、次のポージングプロセスをより効率的にするためのコントロールを作成できます。
顔のボーンを追加
キャラクターに必要な特定のヘッドボーンは、使用するポーズによって異なります。以下の例では、各目に1つのボーンを追加し、まぶたに4つのボーンを追加して、まばたき、ウインク、視線の方向を可能にするプロセスをカバーします。
顔のリグを作成する際は、可能な限り50未満の顔のボーンを使用し、ボーンを整理し、関連する顔の特徴に特化させてください。一般的に、高い数の頂点やジョイントは、ゲームのパフォーマンスに影響を与える可能性があります。
目
各目には1つのボーンが必要ですが、後で両方の目を同時に制御できるコントローラーボーンを作成することもできます。ボーンを対称に配置するために、ビューポートの右上でX軸ミラーを有効にできます。これにより、同じ名前を持つボーンがX軸に沿って反対の接尾辞で移動します。
キャラクターの目にボーンを追加するには:
オブジェクトモードで、アーマチュアを選択し、編集モードに切り替えます。
追加をクリックし、次に単一ボーンを選択します。これを2回行います。
1つのボーンの名前をLeftEyeに変更し、もう1つのボーンの名前をRightEyeに変更します。
X軸ミラーを有効にします。
左または右のボーンをモデルの目の中心に配置します。
ボーンを水平方向に調整し、前面を向けます。ボーンを水平方向に設定するための簡単な方法:
- ビューポートの右上で、ツールパネルを変換セクションに拡張します。
- ボーンを選択した状態で、Head Yの位置をTail Yの位置にコピーします。
- Tail Zを0.2センチメートルに設定します。これにより、Tail Z座標がHead Z座標から0.2センチメートルオフセットされます。
Shiftを押しながら両方のEyeボーンをクリックします。
Shiftを押し続けながら、Faceボーンをクリックします。
ビューポートで右クリックします。コンテキストメニューが表示されます。
親子関係を選択し、作成、次にオフセットありを選択します。
まぶた
ボーンを追加する際、既存の顔のボーンを選択して複製することで、まぶたのボーンを迅速に作成できます。これにより、まぶたのボーンが自動的に顔のボーンの下に親子関係を持つようになります。
キャラクターのまぶたにボーンを追加するには:
編集モードで、Shiftを押しながら両方の目のボーンをクリックして選択します。
ShiftDを押し、同じ位置にボーンを複製します。これを4回行い、合計8つの新しいボーンを作成します。
X軸ミラーを有効にした状態で、各ボーンを目の角に配置します。
アウトライナーで、すべてのボーンの名前を特定の位置を反映するように変更します。以下の名前を使用します:
- LeftUpperOuterEyelid
- RightUpperOuterEyelid
- LeftLowerOuterEyelid
- RightLowerOuterEyelid
- LeftUpperInnerEyelid
- RightUpperInnerEyelid
- LeftLowerInnerEyelid
- RightLowerInnerEyelid

顔のボーンをスキニング
キャラクターリグにスキニングを適用するには、いくつかの方法があります。以下の例では、Blenderのウェイトペイントモードを使用して、単一のボーンが制御できる頂点をペイントします。スキニングは通常、複雑なキャラクターにとって時間のかかるステップであり、スキニングと顔のポージングの背景が推奨されます。
複雑なモデルに対して詳細または共有の影響を適用する場合、ボーン間の影響の競合を防ぐために自動正規化を有効にすることをお勧めします。
目
例のプロジェクトでは、両方の目が目のジオメトリ内の瞳孔に完全な影響を必要とします。目のデザインによっては、リアルな目のポーズを作成するために影響を調整する必要があるかもしれません。
LeftEyeに影響を追加するには:
オブジェクトモードで、ヘッドメッシュをクリックし、Shiftを押しながら任意のボーンをクリックしてアーマチュアを選択します。
ウェイトペイントモードに切り替えます。
頂点をよりよく視覚化するために、X線表示モードまたはマテリアルプレビューモードに切り替えます。
Shiftを押しながらLeftEyeボーンをクリックして選択します。現在選択されているボーンの名前がビューポートの左上に表示されます。
目の中の頂点に影響をペイントします。この例では、瞳孔が赤く、選択したボーンによって完全に影響を受けていることを確認してください。
オブジェクトモードに切り替え、任意のボーンをクリックしてアーマチュアを選択します。
アーマチュアが選択された状態でポーズモードに切り替えます。
目のボーンの影響をテストするために、ボーンを掴んで動かします。下のメッシュが追従するはずです。
右目についても同様の手順を繰り返します。
まぶた
まぶたのボーンには、それぞれ独自の影響が必要です。例のポーズでは上まぶたのみを操作しますが、下まぶたの角を制御できることは、LeftCheekRaiserやRightCheekRaiserなどの他のポーズにとって重要です。
左まぶたに影響を追加するには:
オブジェクトモードで、ヘッドメッシュをクリックし、Shiftを押しながら任意のボーンをクリックします。
ウェイトペイントモードに切り替えます。
頂点をよりよく視覚化するために、X線表示モードまたはマテリアルプレビューモードに切り替えます。
ボーンに最も近い頂点に影響をペイントします。
完了したら、Shiftを押しながら別のボーンをクリックして、最も近い頂点に影響を適用し始めます。この手順を各まぶたのボーンに対して実行します。
オブジェクトモードに切り替え、キャラクターメッシュを選択し、ポーズモードに切り替えてテストします。
この時点までボーンがスキンされたこのプロジェクトのバージョンをダウンロードできます。
コントロールを追加
ヘッドを作成するには、複数のポーズを連続して保存する必要があるため、必須ではありませんが、コントロールを使用するとボーンを迅速かつ効果的にポーズできます。外部コントローラーボーンを追加して内部のボーンに影響を与えることで、アクセスしやすくポーズを取ることができ、ニュートラルな変換にリセットすることも容易になります。
コントロールを作成する方法は多岐にわたります。以下の例では、ボーン制約とリファレンスBlenderプロジェクトに含まれる単純な幾何学的形状を使用して、キャラクターの顔のボーン用のアクセスしやすいコントローラーボーンを迅速に設定します。リギングと制約に関する詳細については、Blenderのドキュメントでキャラクターリギングやオブジェクト制約の追加情報を参照してください。
顔のボーンコントロールを作成するには:
- オブジェクトモードで、Jointsアーマチュアを選択し、ShiftDを押してJointsアーマチュアオブジェクトを複製します。
- 新しいアーマチュアの名前をControllerに変更します。
- 編集モードで、すべての非顔ボーンを選択し、右クリックして選択したボーンを削除を選択します。
- ボーンの名前を**_Con**を含むように変更し、コントロールボーンとして示します。以下のプロセスで一括して名前を変更できます:
- アウトライナーで、Shiftを押しながらすべてのコントロールボーンをクリックします。
- 編集 > 一括名前変更に移動します。名前変更モーダルが表示されます。
- 選択したに設定し、ドロップダウンを使用してボーンに設定します。
- タイプを名前を設定に設定します。
- メソッドを接尾辞に設定します。
- 名前に**_Con**を追加します。
- OKボタンをクリックします。
- オブジェクトモードに切り替え、元のJointsアーマチュアオブジェクトを選択します。
- ポーズモードに切り替えます。
- 元のジョイントボーン(例:LeftEye)をクリックし、ボーン制約プロパティパネルに移動します。
- 位置をコピーと回転をコピーを追加し、各元のボーンの制約を対応するコントローラーボーン(例:LeftEye_Con)をターゲットに設定します。
- 回転をコピー制約で、以下のプロパティを設定します:
- 軸で、X、Y、Zを無効にします。
- 反転軸で、X、Y、Zを有効にします。
- ミックスをオフセット(レガシー)に設定します。
- コントローラが必要な各顔のボーンについて、手順7-9を実行します。
コントロールボーンへのアクセスを容易にするためにカスタムボーン形状を作成するには:
オブジェクトモードに切り替え、Controllerアーマチュアオブジェクトを選択します。
ポーズモードに切り替えます。
コントローラーボーン(例:LeftEye_Con)を選択します。
ボーンプロパティパネルに切り替え、ビューポート表示セクションを展開します。
プロジェクトに含まれるカスタム形状の1つを選択します。リファレンスプロジェクトでは、形状オブジェクトは顔のボーンと似た名前を共有しています。
X回転を**-90**に設定します。必要に応じて追加のスケーリングを設定します。
すべてのコントロールボーンに対して手順3-6を実行します。この時点で元の顔のボーンを非表示にできます。
- オプションボーングループを設定してコントロールボーンに色を割り当てます:
オブジェクトデータプロパティパネルに移動します。
新しいボーングループを作成します。
カラーテーマをお好みの色に変更します。
現在選択されているコントローラーにその色を割り当てるために割り当てをクリックします。この手順を一括で実行できます。
ポーズモードでコントロールをテストします。
ポーズ
ポージングは、アニメーションフレームごとにヘッドメッシュのボーンを特定の位置に操作するプロセスです。モデルのヘッドがリグされた後、ポーズをタイムラインに保存するプロセスを開始できます。このデータにより、Studioは各顔の動きをアクセスし、アニメーションまたはブレンドして動的な表情を作成できます。
キャラクターのヘッドメッシュのボーンを新しい位置にポーズする際は、顔の表情ポーズの参考として顔のアクションコーディングシステム(FACS)に従ってください。FACSは、視覚的に識別可能なすべての顔の動きを記述するための包括的で解剖学的に基づいたシステムであり、すべての顔のアニメーションをキャラクター間で共有可能にします。つまり、一度顔のアニメーションを作成すれば、FaceControlsインスタンスを持つ任意のアニメーション可能なヘッドに再利用できます。
モデリングソフトウェアのアニメーションタイムライン内の各フレームには1つのユニークなFACSポーズを含めることができるため、複数のFACSポーズを作成したい場合は、各FACSポーズを異なるフレームに保存する必要があります。また、キャラクターがニュートラルな顔を持ち、顔のコントローラーとボーンがデフォルト値に設定されているフレームも含める必要があります。これにより、Studioはキャラクターのニュートラルな表情と各FACSポーズ間のボーン位置の違いを計算できます。このため、フレーム0をキャラクターのニュートラルな表情として設定し、フレーム1からFACSポーズを保存します。
以下の画像は、5フレームのBlenderのアニメーションタイムラインの例です。フレーム0にはキャラクターのニュートラルな表情があり、フレーム1-4にはFACSポーズデータがあります。

Robloxで使用できる50のベースポーズがあり、キャラクターの幅広い顔の感情を表現できます。どのポーズが必要かを決定する際は、FACSポーズ名は常にキャラクターの向きに基づいており、カメラではないことを覚えておいてください。たとえば、LeftEyeClosedはキャラクターの左目を閉じますが、これはカメラビューの右側にあります。
キャラクターにすべての50のベースポーズが必要なわけではありません。たとえば、口を開けてまばたきするシンプルなロボットは、JawDrop、LeftEyeClosed、RightEyeClosedだけで済むかもしれません。したがって、キャラクターをより表現豊かにしたい場合は、アニメーションタイムラインに含めるFACSポーズが多くなる必要があります。ヘッドで使用する予定のベースポーズをアルファベット順に保存し、その後のフレームを組み合わせポーズに使用することをお勧めします。
以下の手順は、リファレンスで作成した顔のボーンを使用して5つのポーズをポーズするプロセスを概説していますが、より表現豊かなヘッドのために追加のポーズに対してもこれらの手順を適用できます。Blenderで顔のボーンをポーズするには:
アニメーションタイムラインのプレイヘッドが正しいフレームに設定されていることを確認します。
- キャラクターのニュートラルポーズを設定する場合は、フレーム0に設定します。
- EyesLookLeftをポーズする場合は、フレーム1に設定します。
- EyesLookRightをポーズする場合は、フレーム2に設定します。
- LeftEyeClosedをポーズする場合は、フレーム3に設定します。
- RightEyeClosedをポーズする場合は、フレーム4に設定します。
ポーズモードで、ポーズを現実的に使用したい最大の位置に設定します:
- キャラクターのニュートラルポーズを設定する場合は、顔のコントローラーとボーンをデフォルト値に設定します。
- EyesLookLeftをポーズする場合は、両方の目のコントローラーボーンを選択し、キャラクターの左に目をドラッグします。
- EyesLookRightをポーズする場合は、両方の目のコントローラーボーンを選択し、キャラクターの右に目をドラッグします。
- LeftEyeClosedをポーズする場合は、両方の目のコントローラーボーンを選択し、左まぶたを下にドラッグして下まぶたに合わせます。
- RightEyeClosedをポーズする場合は、両方の目のコントローラーボーンを選択し、右まぶたを下にドラッグして下まぶたに合わせます。
ビューポートでAを押してすべてのボーンを選択します。
右クリックしてキーフレームを挿入 > 位置と回転を選択します。これにより、各フレームにすべてのボーンの位置と回転情報が含まれます。
すべてのポーズがタイムラインに保存されたら、アニメーションタイムラインの開始と終了を保存されたポーズのフレーム数を表すように設定します。常に開始を0に設定し、この特定の例では、4つの非ニュートラルな例ポーズのみをマッピングする場合、終了を4に設定できます。

組み合わせポーズ
2-3のベースFACSポーズを単一のアニメーションフレームで組み合わせて複雑な顔の表情を表示できます。ただし、同じ顔の領域を制御するFACSポーズを組み合わせると、顔の特徴が衝突したり、キャラクターが変形したりする可能性があります。
たとえば、LeftEyeClosedとLeftCheekRaiserは、キャラクターの左目の周りの動きを制御します:LeftEyeClosedは目を閉じ、LeftCheekRaiserは頬を持ち上げて下まぶたを押し上げ、細めたような効果を引き起こします。両方のポーズを100%の値で1つ以上組み合わせると、下まぶたが上まぶたと衝突します:
組み合わせポーズまたは補正は、単一のアニメーションフレーム内で同じ顔の特徴を制御する2-3のFACSポーズの組み合わせであり、デフォルト値の100%からの補正差があります。組み合わせポーズをヘッドに定義してマッピングすることで、2つ以上のFACSポーズがどのように組み合わさるかを修正できます。たとえば、前述の各使用例に対して補正を追加すると、下まぶたと上まぶたが衝突することなく接触します:
インポート時に、StudioはヘッドのFaceControlsインスタンス内で組み合わせポーズの補正差を計算して保存し、FaceControlsインスタンスはアニメーションエディタ内で組み合わせる際にベースポーズの値を修正します。
マッピング
キャラクターに必要な各FACSポーズのポーズが完了したら、各アニメーションフレームをポーズ名にマッピングまたはリンクする必要があります。マッピングは、ヘッドのMeshPart内にボーンの位置と変換を保存し、アニメーションエディタ内でヘッドをアニメーション化し始めると、FaceControlsインスタンスはこの保存されたデータを使用してキャラクターの顔の特徴を適用可能なFACSポーズに変換します。
各ポーズを適切なポーズ名にマッピングすることに加えて、RootFaceJointもマッピングする必要があります。そうしないと、Studioはそのジョイントを正しく見つけられず、インポート時にFaceControlsインスタンス内のすべての子ジョイントとそのボーンを隠すことができません。
保存したポーズとRootFaceJointをマッピングするには:
オブジェクトモードに切り替えます。
Head_Geoメッシュを選択します。
プロパティエディタのオブジェクトプロパティタブで、カスタムプロパティセクションに移動し、新規ボタンをクリックします。新しいカスタムプロパティが新規ボタンの下に表示されます。

新しいカスタムプロパティの右側にあるギアアイコンをクリックします。プロパティの編集ポップアップが表示されます。

タイプドロップダウンをクリックし、文字列を選択します。
プロパティ名フィールドに:
- ポーズをマッピングしている場合は、マッピングしているフレーム番号を入力します(例:Frame0)。
- RootFaceJointをマッピングしている場合は、RootFaceJointを入力します。
デフォルト値と説明フィールドは空のままにします。
OKボタンをクリックします。新しいカスタムプロパティが新しいプロパティ名で更新されます。
カスタムプロパティ名の右側のフィールドに:
- ベースポーズをマッピングしている場合は、対応するFACSベースポーズまたは組み合わせポーズ名を正確に入力します。
- 組み合わせポーズをマッピングしている場合は、組み合わせている各ベースポーズをアンダースコアで区切って入力します(例:Funneler_JawDrop_Pucker)。
- RootFaceJointをマッピングしている場合は、顔のルートボーンの名前(一般的にはDynamicHead)を入力します。
Enterを押します。
このプロセスを繰り返すと、作成した追加のカスタムプロパティは、プロパティエディタ内のオブジェクトプロパティタブのカスタムプロパティセクションに表示されます。

この時点までポーズが保存され、マッピングされたこのプロジェクトのバージョンをダウンロードできます。保存されたアニメーションデータを持つヘッド.fbxをBlenderにインポートする場合、タイムラインのフレーム0を含めるために.FBXインポートウィンドウでアニメーションオフセットを0に設定してください。

エクスポート
キャラクターのヘッドのポーズとマッピングが完了したら、キャラクターモデルを.fbxとしてエクスポートし、Studioにインポートして、Studio内のFaceControlsインスタンスを使用して4つの目のポーズにアクセスできるようにします。また、すべての50以上のベースポーズにアクセスするために完全に構成されたCubieヘッド.fbxを参照することもできます。
アニメーション可能なヘッドのエクスポート設定は、標準のサードパーティモデリングエクスポート設定とは若干異なります。基本的なヘッドモデルを.fbxとしてエクスポートするには:
- 上部バーでファイルをクリックします。ポップアップメニューが表示されます。
- エクスポートを選択し、次に**FBX (.fbx)**を選択します。Blenderファイルビューウィンドウが表示されます。
- 含めるを展開し、アクティブコレクションに制限を有効にします。このステップは、Blenderプロジェクトに追加のコレクションがない場合はオプションです。
- 含めるセクションで、カスタムプロパティを有効にします。
- アーマチュアセクションを展開し、リーフボーンを追加のチェックを外します。
- アニメーションをベイクを有効にします。
- アニメーションをベイクを展開し、NLAストリップ、すべてのアクション、および強制開始/終了キーフレームのチェックを外します。
- FBXをエクスポートボタンをクリックします。FBXをお好みのディレクトリに保存します。
この時点で、.fbxをStudioにインポートして、サポートされているアニメーション可能なヘッドを持つキャラクターとして使用できます。モデルのインポートと使用に関する指示については、Studioでのテストヘッドを参照してください。