モーフィングでアバターの顔を自由にカスタマイズする

弊社で絶賛開発中のフィットネスゲーム「Joggle」に、今後キャラクターのカスタマイズ機能を導入予定です。今回の記事では、カスタマイズ機能の中心技術であるモーフィングについて解説します。まずは動画をご覧ください。
モーフィングとは
モーフィングは、一つの画像や形状を別の画像や形状に滑らかに変換する視覚効果の一つで、映画やビデオゲーム、アニメーションなどでよく使用されます。形状やテクスチャ、色などの視覚要素を変換する際に使用され、リアルタイムのキャラクターアニメーションや映像編集などで多くの用途があります。
モーフィングのプロセスは以下の通りです:
- 元となる形状(ソース)と最終的な形状(ターゲット)を定義します。
- モーフィングアルゴリズムは、ソース形状からターゲット形状への変換過程を計算します。この計算は、各頂点が時間の経過とともにどのように移動するかを決定します。
- モーフィングアルゴリズムは、各フレームにおいて形状がどのように見えるべきかを計算します。これは、ソース形状からターゲット形状への各頂点の移動パスに基づいています。
- 最終的な結果は、ソース形状がターゲット形状に滑らかに変形するアニメーションとなります。
モーフィングは、3Dモデリングとアニメーションだけでなく、2D画像の変換にも使用されます。また、この技術は、特殊効果、映画製作、ゲーム開発などの分野で広く使用されています。マイケルジャクソンの「ブラック・オア・ホワイト」のミュージックビデオのように、異なる人物の顔が滑らかに一つから次へと変わっていくシーンは、モーフィング技術の典型的な例です。
Blend Shapes
Unityでは"Blend Shapes"という強力な機能が提供されています。Blend Shapesは3Dモデリングにおいて、モデルの特定の部分を変形させるために使われるテクニックです。このテクニックは、特にキャラクターの表情を制御したり、身体の動きを滑らかにするために使用されます。ブレンドシェイプの値は0から100の範囲で設定され、0はブレンドシェイプの影響が全くない状態(元の形状)を、100はブレンドシェイプの影響が最大になる状態を示します。
Unityでは、ブレンドシェイプはSkinned Mesh Rendererコンポーネントの一部として管理されます。このコンポーネントの設定画面には、ブレンドシェイプのリストとその値を設定するスライダーが表示されます。
アバターのカスタマイズへの応用
Blend Shapesの使用範囲は、顔の表情だけに留まりません。顔のパーツの各特徴を0から100の値で滑らかに変化させれば、無数の異なる顔を作り出すことができます。
例えば、顔の10箇所をカスタマイズ可能なアバターを作るとします。ブレンドシェイプの値を10段階で設定できると仮定すると、それぞれの箇所で10通りの選択肢があることになります。この場合、それぞれの箇所が独立して選択できるので、その組み合わせの数は10(選択肢の数)の10(箇所の数)乗、つまり10,000,000,000通り(100億通り)になります。
これは、顔の各部分が他の部分から完全に独立していると仮定した場合の理論的な最大値です。実際のゲームやアプリケーションでは、特定の組み合わせが不自然または不可能であるために制限されることがあります。それでも、モーフィングを利用することで非常に広範なキャラクターカスタマイズが可能となります。
次世代技術を利用したアプリ開発プロジェクトに参加できます!
Vitalify Asiaでは、Unityや先進的な技術を使用したアプリを日々開発しています。
幅広い分野にて効率的なアプリケーション開発が可能ですので、お気軽にお問い合わせください。
1,000社以上の事業成長を支えた圧倒的な『スピードと柔軟性』で、御社のアイデアを最短で形にします。まずは無料で壁打ちしませんか?
無料相談はこちら「Unity3DTech」の関連記事

次世代AR技術を使用したバーチャル水槽
次世代AR技術であるVPS (Visual Positioning System)を使用したバーチャル水槽アプリの紹介です。 一度設置した水槽の位置をアプリが記憶しているため、次回起動時に同じ位置に水槽を再び表示することができます。

現実世界の地図データを活用したオープンワールドの自動生成
弊社で開発中のゲームJoggleで使用しているオープンワールド生成技術の紹介です。 地図データを取り込み自然なオープンワールドを自動生成することができます。

遅ればせながらChatGPTの回答を3Dキャラに喋らせて会話してみた
今盛り上がっているChatGPTを使って、ベタですが3Dキャラクターと対話可能なデモアプリを開発してみました。利用している技術について紹介します。