今回はBlenderで作ったモデルをUnityでキャラクリのようにいじる方法を書いていきます。
この方法はキャラクターの表情を変えたりすることにも使用できます。
キャラクリ例
下のバーでキャラクターの顔を変更しています。サンプルとして作ったので、2箇所しかキャラクリの場所がありませんが、更に作り込めば多くの位置をキャラクリで変更できるようになります。
作成方法
ここからは具体的なBlenderとUnityを使ったキャラクリ作成方法についてご紹介していきます。Blenderで準備
まずはシェイプキーが設定されているモデルを作成してください。
本記事ではこの時作成したモデルの名前を「Sample」とします。
シェイプキーが正常に設定されていないと、Unityでモデルのシェイプ変更ができないため、必ずBlenderでシェイプキーが正常に動くか確認してください。
シェイプキーの設定方法については下記の記事をご覧ください。
【初心者向け】Blender 基本的なシェイプキーの使い方 - TomoGのごちゃまぜ倉庫
シェイプキー付きの3Dモデルを作成したら、そのままFBX形式で出力してください。
出力オブションは通常と異なりません。
Unityでの設定
UnityのAssetsに先ほど作った3Dモデルをインポートし、その後ヒエラルキーに配置してください。
そして3Dモデルを配置した図が上図となります
インスペクターにあるSkinned Mesh RendererのBlendeShapesが、Blenderにて設定されたシェイプキーになっていると思います。
※Blenderのシェイプキーは0~1.0の間でしたが、Unityでは0~100になっているためご注意ください。
この値を変更することで、シェイプキーで設定したようにメッシュが変化するため、キャラクリ等に使えるようになります。
参考動画に使用したソースコード
そして、ここからは最初の章である「キャラクリ例」のように、スライドバーでキャラクリを行う方法をご紹介していきます。
まず使用したスクリプトは下記のものになります。
ソースコードの内容は、スライダーの値をそのままパラメータとして取得し設定しているだけです。
本ソースコードを使用する時の注意点
ここからは先ほどご紹介したソースコードを利用する時の注意点についてまとめていきます。
まず注意すべき点として、41行目のLoadObject関数です。
こちらの関数でオブジェクトの定義を行っているのですが、本ソースコードが動かない場合はこちらが原因の可能性が高いです。
解決方法としては43~45行目にあるFind("オブジェクト名")の「オブジェクト名」が自分の環境と合わせてください。
例えばキャラクリ用の3Dモデル名がObjectの場合、43行目はTestObject = GameObject.Find("Object");にする必要があります。
詳細は下記の公式リファレンスをご覧ください。
GameObject-Find - Unity スクリプトリファレンス
同じような内容として、下記の記事もあるため併せてご覧ください。