シェイプキーは、モデルの形を「別の形」として保存しておき、スライダーで行き来する機能です。
表情や、体の膨らみなどに使います。
相対シェイプキーの基本操作、値の範囲、ミックスの保存を説明します。作業前に元のファイルを別名で残し、練習用コピーで試してください。
- 最初に作るキーは「ベース」。元の形が入る
- 2つ目以降のキーは、形を変えて保存する。値は 0〜1 で元の形と行き来する
- 値は初期設定で 1 が上限。2 にするには「最大」を変える
- 「頂点グループ」を指定すると、その範囲だけに効く
- モディファイアーの適用でシェイプキーに関するエラーが出たら、キーを残すか、現在の形へ固定するかを決める
- この記事のFBXデータ検査では、ブレンドシェイプのチャンネルが含まれた。Unity側の表示は未確認
2026年9月29日と10月2日の結果はBlender 5.2.1 LTSの背景実行によるものです。10月12日の画面資料に加え、10月15日にWindowsのGUIでミックスの作成・値の切替を確認しました。それぞれの節に検証日と範囲を記載しています。
基本の作り方
- メッシュのオブジェクトを選ぶ
- 「オブジェクトデータプロパティ」を開き、「シェイプキー」の+を押す。1つ目に「ベース」ができる
- もう一度+を押すと、「Key 1」ができる。名前は好きなものに変える
- Key 1 を選んだまま、編集モードに入って、形を変える
- オブジェクトモードに戻り、「値」のスライダーを動かす
練習用の新規ファイルで初期キューブを削除し、Scriptingワークスペースの新しいテキストへ次の例を貼り、1回だけ実行します。
import bpy
if bpy.data.objects.get("ShapePractice"):
raise RuntimeError("ShapePractice が既にあります。練習用の新規ファイルで実行してください。")
bpy.ops.mesh.primitive_monkey_add()
ob = bpy.context.object
ob.name = "ShapePractice"
basis = ob.shape_key_add(name="Basis", from_mix=False)
puff = ob.shape_key_add(name="Puff", from_mix=False)
for i, vertex in enumerate(ob.data.vertices):
puff.data[i].co = basis.data[i].co + vertex.normal * 0.25
puff.value = 0.5
Blender の初期の猿(スザンヌ)で、頂点を法線の向きに0.25ずらして「Puff」というキーを作りました。
2026年10月12日に撮影した、Blender 5.2.1 LTSの日本語表示の画面です。
立方体にシェイプキーを2つ作り、上側を細くしました。

「オブジェクトデータプロパティ」の「シェイプキー」の欄に、「Basis」と「TaperTop」が並んでいました。
本文の「ベース」は、この画面では「Basis」と表示されます。
「TaperTop」を選ぶと、下に「値」「最小範囲」「最大」「頂点グループ」「基準の対象」が出ます。
この画面では、値は0.750、最小範囲は0.000、最大は1.000でした。
Nパネルの「アイテム」タブでは、寸法は2 m・2 m・2 mでした。
値と、その上限

値 0 が元の形、値 1 が保存した形で、0.5 はその中間です。
値に 2.0 を入れようとしても、初期設定では 1.0 に戻りました。
「最大」(スライダーの上限)を 2 に変えてから入れると、2.0 が通りました。
保存した形の倍まで動かすので、左下の画像(値 2.0)のように、膨らみすぎて面が破れて見えることもあります。
| 設定 | 意味 |
|---|---|
| 値 | どれだけ効かせるか(0〜1が基本) |
| 最小範囲・最大 | 値の動かせる範囲。初期設定は 0〜1 |
| 基準の対象 | どのキーを基準に差を取るか。初期設定は「ベース」 |
| 頂点グループ | 指定した頂点にだけ効かせる |
| ミュート | 一時的に効かなくする |
頂点グループで、範囲を絞る
「頂点グループ」の欄に、作った頂点グループを指定すると、その頂点だけがシェイプキーの影響を受けます。
右下の画像は、顔の中央あたりの87頂点だけを「Nose」というグループにして、値 1.0 にしたものです。
グループに入っていない場所は、形が変わりませんでした。
Blenderのプリファレンスの「アドオン」でも、使っている版と拡張機能を確認できます。

つまずきやすい点
シェイプキーのあるメッシュに、モディファイアーを適用しようとすると、次のエラーが出ました。
Error: Modifier cannot be applied to a mesh with shape keysこのエラーが出た場合は、シェイプキーの扱いを先に決めます。この結果だけから、すべてのモディファイアーの種類・設定へ適用可否を一般化することはできません。
- キーを使い続けたい:モディファイアーは適用せず、そのまま残す
- 今の形で固定したい:元ファイルを別名保存してから、シェイプキーを消すときに「ミックスを適用」する。スクリプトでは object.shape_key_remove(all=True, apply_mix=True)
ミックスを適用すると、いまのスライダーの値で混ぜた形がメッシュになり、シェイプキー自体は消えました。
複数のキーを混ぜた形を、新しいキーとして残したいときは、「New Shape from Mix」(スクリプトでは shape_key_add(from_mix=True))を使います。
2026年9月29日の検証ではKey 3、10月15日の日本語GUIでは「キー 2」が値1.000でできました。自動名は既存のキーによって変わるため、名前でなく作成された行と値を確認してください。
ミックスを1つのキーに保存して確認する
新しく作ったミックスのキーを表示するとき、元のキーの値も残すと、同じ変形が重ねて加算されます。
次の例は上で作ったShapePracticeを選び、相対シェイプキーのオブジェクトモードで実行します。
import bpy
ob = bpy.context.object
if ob is None or ob.type != "MESH" or ob.data.shape_keys is None:
raise RuntimeError("シェイプキーのある練習用メッシュをオブジェクトモードで選んでください。")
if ob.mode != "OBJECT" or not ob.data.shape_keys.use_relative:
raise RuntimeError("オブジェクトモード・相対シェイプキーで実行してください。")
mixed = ob.shape_key_add(name="SavedMix", from_mix=True)
for key in ob.data.shape_keys.key_blocks:
key.value = 0.0
mixed.value = 1.0
2026年10月2日に Blender 5.2.1 LTSの背景実行で再検証しました。
Puff=0.5の形と、Puff=0・SavedMix=1の形で、全507頂点の座標が一致しました。
キーを保存する方法なので、シェイプキーを削除する「ミックスを適用」とは別の操作です。
Blender練習用データをダウンロード(ZIP・約2.1MB)
ZIPを別フォルダーへ展開してから開き、元のファイルを上書きせずコピーで試してください。
Blender 5.2.1 LTSで生成し、背景実行でデータと処理を検証したものです。
この練習用データの説明は背景実行の検査結果です。10月12日は画面を撮影し、10月15日には別のCubeサンプルで次節のGUI操作を検証しました。Unityへの取り込みは検証していません。
shape-half.blend はPuff=0.5、shape-mix.blend はSavedMix=1だけで同じ形になる比較用ファイルです。
変化しないときは、選んだオブジェクト、キーのミュート、頂点グループの指定、値を確認します。
元の形へ戻すにはベース以外の値を0にし、作成前に戻すなら未編集のファイルを開き直します。
Windowsでミックスの形を保存して切り替える
2026年10月15日、Windows 11 Pro(10.0.26200)・Blender 5.2.1 LTSの日本語GUIで確認しました。専用ファイルのCube(8頂点)に、Basisと上面のX・Y座標を半分にするTaperTopをスクリプトで用意しました。操作開始時はオブジェクトモード、相対を有効、TaperTopの値を0.500にしています。
- Cubeを選び、オブジェクトデータプロパティの「シェイプキー」を開く。保存したい形になるよう、元のキーの値を調整する。
- 一覧右の下向きメニューから「新しく統合」(英語ではNew Shape from Mix)を実行する。今回の画面では「キー 2」が追加され、値は1.000だった。
- 作成直後は元のTaperTopも0.500のままで、新キーの変形が加算されて上面がさらに細くなった。作成前の形に切り替えるには、Basis以外の元キーを0、新キーを1にする。
- 結果を確認してから保存する。元キーで表示したいときは新キーを0にし、元の値を戻す。

作成直後に見た目が変わっても、保存したキーの形が誤っているとは限りません。まず元キーと新キーが同時に有効になっていないかを確認します。

GUIで値を切り替えて保存したファイルを読み直し、表示に使われる全8頂点の座標を比較しました。TaperTop=0.5の作成前と、TaperTop=0・新キー=1の切替後は一致し、最大座標差は0でした。作成直後に両方を有効にした状態では、上面の座標の絶対値が0.75から0.5になっており、変形の重複も保存データで確認しています。
この結果は、同じBasisを基準にした相対キー1個を保存したCubeの例です。絶対シェイプキー、別の基準キー、頂点グループやモディファイアーを組み合わせた状態は、このGUI検証には含めていません。形が一致しない場合は、相対の設定、各キーの基準、ミュート、頂点グループも確認してください。
Blender公式マニュアルのシェイプキーの説明でも、相対キーの表示結果は各キーの現在値による累積であると説明されています。
FBX に書き出すと
猿に、Puff・横に広げた Wide・ミックスから作った Key 3 の3つのキーを作って FBX に書き出し、中身を調べました。
BlendShape という項目が1つ、その中の BlendShapeChannel に Puff・Wide・Key 3 の3つが入っていました。
ベースは、チャンネルには入りませんでした。
Unity などで取り込む設定は、BlenderのFBXをUnityに書き出す設定にまとめています。
Unity 側での見え方は、今回は確かめていません。
ボーンと組み合わせるときの考え方
シェイプキーは、ボーンを使わずに形を変えられるので、表情に向いています。
体の曲げ伸ばしはボーンで、表情はシェイプキーで、と分けるのが一般的です。
ボーンのつけ方は、Rigifyで人型リグを作る手順を見てください。
まとめ
- 最初のキーは「ベース」。以降のキーは、形を変えて保存する
- 値の上限は初期設定で 1。超えたいときは「最大」を変える
- 頂点グループで、範囲を絞れる
- シェイプキーに関する適用エラーが出たら、元ファイルを残してから、キーの維持と現在の形への固定を判断する
- 今回のFBXデータ検査ではブレンドシェイプのチャンネルが入った。受け取り側の表示は別に確認する
参考:Blender 5.2.1 LTS での実行結果(2026年9月29日)。
