Unityを使った3Dゲームの作り方(かめくめ)ゲーム開発エンジンUnityを使った3Dゲームの制作に参考になる情報を公開しています。2019.03.18今回はMakeHumanで作成したキャラクターにボーンを取り付け出力形式MHX2で出力し、Blenderで取り込んでボーンを動かして表情のアニメーションを付けそれをUnityで取り込んで使ってみたいと思います。上のような感じにUnityで表情のアニメーションを再生する事が出来ます。Blenderのシェイプキーで作った顔のアニメーションをUnityに取り込むにはBlenderのシェイプキーで顔のアニメーションを作成しUnityで使用してみるBlenderのシェイプキーで顔の瞬きアニメーションを作成し、Unityに取り込んで使用してみます。gametukurikata.com2020.04.11を参照してみてください。前提として、今回はそれほど難しい操作を必要とせずに最終的にUnityでHumanoid型のキャラクターの表情アニメーションを使おうという記事になります。今回の機能ではMakeHuman内で自動でボーンを取り付け、Blenderでそのボーンを動かして表情のアニメーションを付けます。その為以前のBlenderを使ってUnityで使うアニメーションを作成するUnityで使用するキャラクター用のアニメーションをBlenderを使って作成していきます。作成方法を学べば自分のゲームに自作のアニメーションを使うことが出来ます。gametukurikata.com2016.02.08の記事のようにBlenderのRigifyを設定したキャラクターやそのアニメーションを作成している場合はBlenderのボーン(アーマチュア)、リギングの知識やUnityでのHumanoidのボーンの設定等細かく理解する必要があります。それだけの知識があればこの記事を見る必要がないほど詳しい方なので問題はないと思います。今回の場合はMakeHumanで作成したキャラでボーンのみでアニメーションを作成するものとします。TypeをHumanoidにすると、他のHumanoid型のキャラのアニメーションを再利用出来るので、今回はキャラクターをHumanoid型にしています。TypeをHumanoidにはせずGenericとしておけば豊かな表情の作成も出来ますのであえてHumanoidにする必要はありません。MakeHumanやBlenderで必要となるものMakeHumanはバージョン1.1.1を利用し、Blenderは2.79を使っていきます。BlenderでMakeHumanの出力形式であるMHX2ファイルを使う為にMakeHuman用、Blender用のプラグインが必要になります。そこら辺の事を含めてMakeHuman1.1.1で作ったキャラクターをUnity2017とBlender2.78で使うMakeHuman1.1.1で作ったキャラクターをUnity2017にそのまま取り込んだりRigifyを取り付けてBlender2.78に取り込みそのキャラクターをUnityに取り込んでみます。gametukurikata.com2018.02.15上の記事を参照してプラグインをMakeHumanとBlender側で適用させる必要があります。前置きがだいぶ長く既に面倒な感じがしている方も多いと思いますが・・・・、まずはMakeHumanでキャラクターを作成していきましょう。ジオメトリ―まずはジオメトリー項目を設定していきます。それぞれの項目は以下のように設定しました(衣服項目を載せ忘れましたが適当に設定してください)。ここら辺は自由に設定してください。ポーズ/アニメーション次はポーズ/アニメーション項目です。スケルトンスケルトンタブを選択しリグプリセットからキャラクターに設定するボーンを選択します。ここでは表情を操作するボーンがあるDefaultを選択します。PosePoseはBlenderのプラグインで設定も出来ると思いますが、先に設定しておきます。ポーズはTposeにします。ファイルキャラクターが出来たのでMHX2ファイルとして出力します。ファイル項目のエクスポートタブを選択します。メッシュフォーマットでMHX2を選択し、オプションでExpressions(表情)とPoses(ポーズ)をチェックします。これらにチェックをするとBlenderで表情とポーズの設定をする時に使用する事が出来ます(今回は使いませんが)。単位はUnityの単位がメートルなのであらかじめメートルを選択して出力します。設定が終わったらエクスポートボタンの左にある...ボタンを押してファイルの出力先を選び出力します。今回はデスクトップにFaceAnimationというファイル名で出力しました。Blenderで表情アニメーションを作成するMakeHumanでキャラクターを出力したので、次はBlenderでMHX2ファイルをインポートします。Blender起動時のライト、Cube、カメラはAキーで全選択しXキーを押して削除しておきます。MHX2ボタンを押して先ほど出力したFaceAnimationファイルを取り込みます。MHX2ボタンを押すだけで他の設定はしないようにします。上のようにボーンが取り付けられたキャラクターが取り込まれます。Runtimeの項目にそれらの設定項目が表示されます。Unitsは表情を作る時の設定値を指定して表情を変えることが出来ます。Expressionsは特定の表情のプリセットでボタンを押すだけでその表情にすることが出来ます。Posesはそれぞれのポーズボタンを押すだけでそのポーズにする事が出来ます。試しにExpressionsのanger01ボタンを押して表情の変化を確認してみます。上のようにボタンを押すだけで複数のボーンが動きその表情を作ってくれます。UnitsやExpressionsのボタンを押すだけで表情が作れそうですが、Poseモードでアニメーションを作る時にキーフレームを作成しても設定した設定値がキープされてしまって出来ません。いうわけでこれらを削除してしまいます(取り込んでおいてなんなんですが・・・・)。Driversボタンを押して削除します。Rigを削除した事で顔に設定しているボーンでアニメーションを作成する事が出来ます。基本的なアニメーションの作成についてはBlenderを使ってUnityで使うアニメーションを作成するUnityで使用するキャラクター用のアニメーションをBlenderを使って作成していきます。作成方法を学べば自分のゲームに自作のアニメーションを使うことが出来ます。gametukurikata.com2016.02.08を参照してください。Rateを60にします。口を開くアニメーションを作成します。Modeへとマウス選択して変更します。Mouthに変更しFを押します(ここら辺は先ほどのリンク先の記事を参照してください)。jaw(あご)という名前のついたボーンを選択します。プロパティウインドウの骨のアイコンタブを選択すると選択しているボーンの名前を確認出来ます。Viewウインドウ内でIキーを押してLocRotを選択します。次に20フレーム目に移動し、jawを選択した状態でRキー(回転)を押した後Xキーを押してX軸で回転させ、口を開く状態にしたらIキーを押してLocRotを選択しキーフレームを打ちます。1フレーム目に移動し、Ctrl+Cキーを押して1フレーム目のキーフレームをコピーし、40フレーム目に移動したらCtrl+Vキーで貼り付けます。これで口を開いた後閉じるというアニメーションが出来ました。ウインクするアニメーション次はウインクをするアニメーションを作成していきます。新しいアニメーションWinkを作成しウインクのアニメーションを作成していきます。Actionで新しいアクションを作成し名前をWinkとします。Orbicularis03.Lという名前のボーンを選択します。口を開けるアニメーションと同じように作成していきます。1フレーム目は通常の状態。20フレーム目でOrbicularis03.Lを選択した状態でRキーを押して回転、Xキーを押してX軸での回転をさせます。Iキーを押してLocRotでキーフレームを打ちます。1フレーム目をCtrl+Cキーでコピーし、40フレーム目を選択してCtrl+Vキーで貼り付けます。これで二つのアニメーションが出来ました。キャラクターとアニメーションの出力アニメーションが出来たのでFBXファイル形式でファイルを出力します。BlenderのファイルメニューからExport→FBXを選択します。FBXの設定を変更します。上のように設定します。これらはUnityで取り込んだ時に扱いやすくする為の設定です。FBXボタンを押してファイルを出力します。ファイル名はFaceAnimation.FBXとします。最後にUnityでの作業をしていきます。Asset...を選択し、先ほど出力したFaceAnimationをインポートします。TypeをHumanoidにしConfigure...ボタンを押します。TypeをHumanoid型にしたのでHumanoid型の合致させる為に対応するボーンの設定をする必要があるのでこれから設定していきます(自動である程度設定されています)。キャラクターがTポーズではないと表示されます。T-Poseを選択します。次に顔のボーン設定を変更します。インスペクタでHeadを押し頭部のボーン設定をします。頭部の両目のボーンを先ほどアニメーションを設定したOrbicularisのボーンに変更します。あご(Jaw)等は自動で設定されていると思いますが、設定されていない場合は設定します。ここまで出来たらApplyボタンを押した後Doneを押してボーンの設定を終了します。Controllerの作成キャラクターのボーンの設定が終わったので、実際にAnimatorControllerを作成し作成したOpenMouthとWinkのアニメーションを再生してみます。Controllerのレイヤーとアバターマスクの機能を使って顔と体のアニメーションを一緒に使えるようにします。レイヤーとアバターマスクに関してはUnityのレイヤー、アバターマスクを使って体の一部分を別のアニメーションにするUnityで体の一部分だけ別のアニメーションに変更したい場合はAnimatorControllerのレイヤーとアバターマスクを使う事で実現出来ます。gametukurikata.com2016.02.09も参照してください。今回はサンプルなのでIdleとWalkを自動で行き来するだけの状態と遷移を作成します。上のようにIdleとWalk状態を作成しIdleにはスタンダードアセットのHumanoidIdle、WalkにはHumanoidWalkのアニメーションを設定します。Timeで遷移させ、Idle→Walk→Idle...と永遠にループさせます。Controllerのレイヤーを作成します。Layerをオーバーライドするようにします。現時点では完全に上書きされてしまいますが、後でアバターマスクを設定して頭部だけのアニメーションを上書きする形にします。Layerにも適用されます。LayerのIdleに口を開くアニメーション、Walkにウインクをするアニメーションを設定します。次にアバターマスクを作成します。Maskを選択し、頭部だけを緑色にし、他を赤色にします。これで頭部だけが有効なアバターマスクの作成が出来ました。Maskを設定することで頭部のアニメーションだけが上書きされることになります。Layerのアニメーションを上書きします。Idle(ボーっと立っている状態)の時は口を開き、Walk(歩いている状態)の時はウインクをします。一部のアニメーションを切り替えられるってのは便利ですね!(^^)/実際に試してみると、記事の最初の動画のようになります。終わりに今回はUnityに取り込んだキャラクターをHumanoid型にして既存の人型キャラクター用アニメーションを使っています。Humanoid型のボーンの型にキャラクターのボーンを当てはめる必要があります。TypeをGenericにしてそのキャラクターのボーンやコントローラーを使ったそのままのアニメーションを使うと良さそうですね。表情を変える必要がない場合は断然Humanoid型にしておくと便利です。コピーかめくめちゃんをフォローする7Unityを使った3Dゲームの作り方(かめくめ)Unityを使った3Dゲームの作り方(かめくめ)関連記事BlenderBlenderで作成した剣の刃と柄のマテリアルを分けUnityに取り込むBlenderで作成した剣にマテリアルを設定しましたが、刃と柄の部分で設定するマテリアルを分けてからUnityに取り込み設定をしていきます。Blenderblender2.76bにmakehumanデータの取り込みとUnityへのインポート2MakeHumanで作成したキャラクターをBlenderに取り込み、ボーンを設定しリグを取りつけます。Unityで使うアニメーションを作成する時に便利ですBlenderMakeHuman1.1.1で作ったキャラクターをUnity2017とBlender2.78で使うMakeHuman1.1.1で作ったキャラクターをUnity2017にそのまま取り込んだりRigifyを取り付けてBlender2.78に取り込みそのキャラクターをUnityに取り込んでみます。BlenderblenderのアドオンManuelBastioniLABを使って3Dモデルを作成blenderのアドオンであるManuelBastioniLABを使って3Dモデルを作成し、無理やりUnityに取り込んで使ってみました。Blenderバンプマップ、ノーマルマップ、ハイトマップ、ディスプレイスメントマップについてバンプマップ、ノーマルマップ、ハイトマップ、ディスプレイスメントマップの違いと、それぞれをUnityやGIMP、Blenderを使って作成してみます。BlenderBlenderでシンプルな剣をモデリングするBlenderを使ってシンプルな剣をモデリングしていこうと思います。シンプルな剣が出来れば、複雑な形状の剣を作成する事も可能かも?しれません。Graphの設定と使い方ホームBlenderスポンサーリンクサイト内検索が出来ますプロフィール管理人のかめくめちゃんです。(-_-)メールはこちらにお願いします(記事に関する質問は送らないでください、返信は期待しないでください(._.))。kamekumechan@gmail.comいずれはSIRENやバイオハザードみたいなアクションゲームを作りたいと思っています。ゲームシナリオが書けないので面白いゲームはなかなか作れません・・・・。(^_^;)名前の由来はカメが好きだからです。プロフィールになってないな・・・・(-.-)Unityをこれから始める人へこれからUnityを使ってみようという方はUnityを使った3Dゲームの作り方(かめくめ)の歩き方Unityを使った3Dゲームの作り方(かめくめ)で、はじめてUnityの学習をする時の当ブログの記事を読む順番を書きました。機能を積み上げていく形になるので便利かも?gametukurikata.com2019.06.21の記事に記載の順番で見て頂くとUnityの基本的な使い方がわかり、簡単なアクションゲームや、TPSゲームの作成までが出来ます。自作タイピングゲームタイピングゲームを作りました。WebGL形式なのでPCのブラウザで遊べます。以下からプレイ出来ます。FinalTypingUnityを使って作成したローマ字入力のタイピングゲームです。gametukurikata.com2022.01.02お知らせ2023/01/24個人的にUnity2022.2.3f1をインストールしました。2022/10/14UnityのIKを使って足の位置と角度を地面に合わせる機能Unityのゲームでキャラクターの両足が別の高さの地面の上にある時にそれぞれの足をそれぞれの地面につけるようにする機能を作成しますgametukurikata.com2016.04.11機能を少し修正しました。2020/09/19コメント欄は閉鎖しました。今までコメントを投稿してくださった方はありがとうございました。(^^)/2018/08/07わたくしに出来る事は既に記事にしてあるので、ブログ右上の検索窓を活用してください。(._.)またブログの最初の方の機能を積み上げていく記事に関しての疑問点は当ブログ記事のスクリプトの説明と寄せられた質問への回答Unityを使った3Dゲームの作り方(かめくめ)の機能積み上げ形式の記事のスクリプトの説明と寄せられた記事の機能についての質問への回答を掲載しています。gametukurikata.com2019.08.01Unityを使い始めたばかりの人がつまづきやすい点を解消するUnityを使い始めたばかりの人が結構な確率で陥る不具合や疑問点を解消していきます。基本的にはブログに寄せられた質問への回答という感じです。gametukurikata.com2018.12.04も参照してみてください。小・中学生によるデジタルコンテンツ開発の全国大会ですuycc.unity3d.jp2022年大会の先行エントリーが開始されているようです。当ブログはハイスピードプランです。WordPressの編集画面の動作が早くなった。当ブログはハイスピードプランです。WordPressの編集画面の動作が早くなった。記事の内容に質問がある方へUnityを使った3Dゲームの作り方(かめくめ)の歩き方UnityのJavaScriptとC#を読み替えてどちらでも対応出来るようにするホーム検索トップサイドバータイトルとURLをコピーしました。