Blender ウォッチング

「Blender」で作ったかわいい怒り顔を「3tene」で使えるようにする方法

表情の編集で角張ってしまった面を滑らかにする方法も解説

 本連載では、無料の高機能3Dモデリングツール「Blender」の使い方や関連情報を幅広くお伝えします。

 前回のVRM講座では、既存の表情をミックスし新規追加しましたが、今回はVRMファイルで利用できるよう反映させてエクスポートする方法を解説します。

ぷくーっ

作業ファイルと「Blender」について

 作業ファイルには、プロ生ちゃんこと「暮井 慧」をサンプルファイルに使用されていただいています。許諾をいただいたPronama LLC様、VRMモデルを公開されている120様に感謝いたします。

 このサンプルファイルは120様作成のVRMモデルを.blendファイル化した物に少し手を入れているため、公式の.blendファイルとは差異があります。使用条件については下記をご覧ください。

「サンプルキャラクターモデル」のblendファイルをダウンロード(※)


※ダウンロード数が少ないため、Webブラウザーによってダウンロードがブロックされる場合があります。その場合はリンクの右クリックメニューからファイルの保存を行い、警告が表示されても[継続]などの項目を選択して保存してください。

 「Blender」のバージョンは以前と同様「Blender 2.93LTS」を使用します。

エクスポート用アドオンについて

 エクスポートには「VRM Addon for Blender」を使用しています。スクリプト作者の皆様に感謝いたします。

 アドオンの導入方法については以前の記事でご確認ください。

 なお、以前まで使用していたこのスクリプトのバージョン「1.13.0」の配布が執筆時点ではされていないようですので、今回は「1.16.0」を使用しています。「1.13.0」でも動作は確認しています。

注意

 「2.0.0」以降では内部構造の変化により、今回の手順による「JSON」ファイル編集はうまく動作しません(「1.x」によるVRMファイル書き出し後の再インポートは可能です)。この件については後日フォロー予定です。

スムージングツールによる修正

 では出力する前に前回のフォローを少し。

 頬をふくらませた時、判りやすくするため少しやりすぎてしまい、面の一部がカクカクになってしまいました。

囲み部分がカクカクに

 これ以上ポリゴン数は増やしたくないので、滑らかにするツールで少しでも軽減してみます。

 [3Dビューポート]左上の[オブジェクトモード]のメニュー、または[Tab]キーで[編集モード]に切り替えます。

編集モードに切り替え

 現在、左右一つずつの「頬」の頂点が選択されているはずですので、それを確認したら、ツールバーの下の方の[スムーズ]ツールをクリックして切り替えます。

スムーズツールに切り替え

 ではハンドルを早速……と言いたいところですが、残念ながらこのツールはプロポーショナル編集に対応していないため、このまま実行すると各頂点が単独に移動するだけになります。

 そのため、[選択]-[選択の拡大縮小]-[拡大]メニューで選択範囲を増やしてあげます。

[選択]-[選択の拡大縮小]-[拡大]メニューで選択範囲を広げる

 では改めてハンドルを右にドラッグします。滑らかになっていくのがわかると思います。うまくバランスをいい部分でマウスをリリースしましょう。

ハンドルを右にドラッグ

JSONファイルの編集

 次はVRMファイルに出力するための「JSON」ファイルを編集します。

 [3Dビューポート]左上のアイコンをクリックし[テキストエディター]に切り替えます。

[3Dビューポート]の一番左上のアイコンをクリックし、右側の[テキストエディター]を選択

 サンプルファイルではすでに「blendshape_group.json」が選択・表示されていますが、違う場合は中央の書類型のアイコンをクリックして表示しておいてください。

最終行の編集

 [End]キーを押す、またはマウスホイールや右端のスクロールバーで最終行を表示します。

 最終行の一つ前の行(サンプルでは「190」行め)の「}」の後ろに半角の「,」を追加し、[Enter]キーを押します。

最終行の一つ前の行の最後に半角のカンマを追加し、[Enter]キーで改行

 さらに以下に記載したコードをコピーし、次の行(サンプルでは「191」行め)に「貼り付け」([Ctrl]+[V]キー)します。

    {
        "name": "Puku-",
        "presetName": "",
        "binds": [
            {
                "mesh": "PronamaChan.baked.004",
                "index": "puku-",
                "weight": 1.0
            }
        ],
        "materialValues": []
    }

 サンプルでは下図のようになればOKです。中かっこ「{}」の位置は多少ズレていても問題ありません。

編集後の状態

 なお、オリジナルのシェイプキーを作成した場合は、「name」に表情の名前、「mesh」に「メッシュデータブロック名」、「index」に「追加したシェイプキー名」を入れてください(いずれも半角英数字またはユニコード指定、詳しくは以前のウィンクの記事を参照してください)。

 最後に、画面右側の[オブジェクトデータ]プロパティで全部のシェイプキーリストの下にある[相対]チェックボックス右側の[×]ボタンをクリックし、全キーのウェイトをリセットしておきます。これをしないと、表情がついた状態がデフォルトとしてエクスポートされてしまいます。

[相対]チェックボックスの右にある[×]ボタンクリックで全キーのウェイトをリセット

 新しい表情の追加が完了しました。一度ファイルを保存し、[ファイル]-[エクスポート]-[VRM (.vrm)]メニューから「VRMエクスポート」して確認してみてください。

 下図では「3teneFREE」の表情パネルに新規追加した表情の名前が表示されています。VRM規格の仕様では表情の追加が可能であるため、他のアプリでも同様に利用可能と思われます。

「3teneFREE」による確認

終わりに

 今回は前回に引き続き、「プロポーショナル編集」と「膨張/収縮」ツールによる編集、そして「JSONファイルの編集」による表情の設定を行いました。皆さんも新しい表情を追加してみてください。ではまた。