Sakura Poselib¶
シンプル、軽量、手軽なポーズライブラリ
Gumroad BlenderMarket ストアサイトは寄付用です
Distributed under licence GPL-3.0
概要¶
Sakura Poselib は、Blender 3 シリーズで段階的に廃止された古いポーズライブラリを置き換えるために作成されたアドオンです。このアドオンを使用すると、簡単にポーズを作成、管理、適用、またシェイプキーのようにアニメーションタイムラインでの利用ができます。
当アドオンは、mmd_tools と PMX Editor との互換性を考慮して設計されています。また、古いポーズライブラリからのインポートとエクスポートも可能です。
Note
インストール後、アーマチュアのプロパティに Sakura Poselib パネルが追加されます。
また、サイドパネル上にSakura
タブが追加され、サイドパネル上から各種機能が利用できます。
基本要素¶
ポーズブック(PoseBook)¶
ポーズブック(PoseBook) とは、Sakura Poselib で管理されるポーズの集まりです。アーマチュアは複数のポーズブックを持つことができます。これは、古いポーズライブラリの「アクション」に相当します。
アクションとは異なり、ポーズブックはキーフレームの集まりではありません。ポーズブックは、{ ポーズ名: ボーンデータ } の集まりとしてポーズを保存します。
Sakura Poselibの使用を開始する時には、+
ボタンで最初のポーズブックを作成してください。
ポーズ(Pose)¶
ポーズとは、アーマチュアのボーンの状態を表すデータです。Sakura Poselibにおいては、ポーズリストはポーズブックの中にコレクションとして格納されます。
Sakura PoseLibにおけるポーズは、単純な { ポーズ名: ボーントランスフォームリスト } のペアです。
ボーントランスフォームのリストは、{ ボーン名: トランスフォーム } のデータを含みます。これらは Sakura Poselib パネルの 'ボーンデータ' サブパネルで編集できます。
ポーズカテゴリー¶
ポーズは名称に含まれる識別子によってカテゴリー分けされ、ポーズリストの異なるタブに整理して表示することができます。デフォルトでは以下のようなカテゴリーがあります。
カテゴリ名 | 説明 | 識別子 |
全て | 全てのポーズ | * |
目 | 目や瞼に関するポーズ | eye , eyelid ,目 , 瞼 など |
眉 | 眉に関するポーズ | eyebrow , 眉 など |
口 | 口や唇に関するポーズ | mouth , lip , 口 , 唇 など |
その他 | その他のポーズ | 上記以外 |
ボーンデータ¶
Sakura Poselibパネル内の 'ボーンデータ' サブパネルでは、ポーズに含まれるボーンの状態を確認、編集できます。
Info
ボーンデータパネルで直接トランスフォームデータの数値を編集するのは困難です。このパネルは状態の確認のために使用し、調整が必要なときはポーズモードでボーンを操作し、置き換え
機能でポーズデータを上書きすることをお勧めします。
使い方¶
ポーズを追加する¶
旧式のポーズライブラリと同様に、ポーズモードで Shift+L
を押すと、ポーズの追加/置き換えメニューが表示されます。
ポーズを追加すると、現在のポーズに影響を与えるボーンのみがポーズデータに追加されます。明示的にボーンを選択する必要はありません。
Tip
この処理中、非表示のボーンは無視されるため、あらかじめ不要なボーンを非表示にしておくことで、ポーズデータをクリーンに保つことができます。
ポーズを置き換える¶
ポーズの追加と同様に、現在のポーズに影響を与えるボーンのみがポーズデータに追加されます。明示的にボーンを選択する必要はありません。ポーズに寄与しないボーンは対象のポーズデータから削除されます。
ポーズのプレビュー / 複合ポーズの作成¶
ポーズリストの各ポーズには、スライダーがあり、各スライダーの値を調整することで、シェイプキーと同じように適用度に応じたポーズ状態をプレビューできます。
また、複数のスライダーを同時に使用することで、複合的なポーズをプレビューすることができます。
プレビュー中にポーズを追加することで、複数のポーズを組み合わせた新たなポーズを作成することもできます。
Note
この機能は、現在Blenderのアニメーションシステムとは互換性がありません。プレビューのためにのみ設計されています。
Tip
Sakura PoseLibのポーズは、アーマチュアに制約を与えるものではありません。ポーズの値が有効な間でも、自由にボーンを操作することができます。
アニメーション互換モード¶
ポーズブックリストの下にあるアニメーションを有効にする
ボタンをクリックすると、アニメーション互換モードに切り替わります。このモードでは、各ポーズの値がキーフレーム可能となり、アニメーションでポーズまたポーズの組み合わせを自由に使用することができます。
タイムライン上の既存のボーンアニメーションに対しては、各ポーズの影響度が加算されたように振る舞います。このため、既存の全身アニメーションに対して、ポーズライブラリからフェイシャルアニメーションを追加するといった使い方が可能です。
アニメーション互換モードにあるうちは、ポーズの編集はできません。
Tip
アニメーションモードにある間、アーマチュアのボーン構成を変更した場合、正しく動作させるためにはアニメーションモードをトグルすることが必要になる場合があります。
Note
内部的には、対象アーマチュアの各ボーンをアクション
コンストレイントによって各ポーズの姿勢に制約し、その影響度をポーズの値によって制御することで、合成ポーズのアニメーションを可能にしています。このため、モード開始時にポーズの数だけアクションが作成されます。モードを終了すると、これらのアクションは削除されます。ポーズ数が非常に多い場合、アクションの作成に失敗することがあります。
ポーズの「別名」の使用¶
ポーズ一覧のタイトルの横にある「別名を表示」ボタンを有効にすると、各ポーズの名称の横に「別名(alt_name)」が表示されます。
これは、翻訳を目的とした項目で、エクスポート時に使用することができます。例えばMMD用のポーズを作成するときに、Blender内では英語の名称を使い、MMDでは日本語の名称で扱いたい場合に便利です。
インポート/エクスポート¶
ポーズブックをインポート/エクスポートすることで、他の方式との間でデータを共有することができます。
これらの機能にアクセスするには、ポーズブックリストの横にあるダウンカレットボタンをクリックし、その中にある変換
サブメニューを選択します。
旧式のポーズライブラリ¶
Blenderは旧式のポーズライブラリを3.4までサポートしています。Sakura PoseLibは、アーマチュアに割り当てられている現在のポーズライブラリからデータをインポートすることで、そのデータを使用することができます。
ポーズブックから旧式のポーズライブラリにエクスポートすることもできますが、Blender 3.5 以降ではポーズライブラリは完全に廃止されているため、この機能の使用はお勧めできません。
Tip
旧式のポーズライブラリから複数のデータを取得する必要がある場合は、Blender 3.12 以前を使用することをお勧めします。Blender 3.12 以降では、ポーズライブラリ機能の一部にアクセスできなくなっています。
mmd_tools¶
Sakura Poselib では、mmd_tools で作成されたMMDモデルからボーンモーフデータをインポートすることで、MMDモデルのボーンモーフデータをポーズライブラリとして使用することができます。
また、Sakura PoseLibのポーズデータをmmd_toolsのボーンモーフデータとしてエクスポートすることもできます。
Info
mmd_tools は、BlenderでMMDモデルを扱うための標準的なアドオンです。
ファイル (JSONとCSV)¶
アクティブなポーズブックをファイルにエクスポートするか、ファイルからポーズブックをインポートすることができます。
-
JSON
Sakura PoseLibのみで使用するためのエクスポート/インポート用のファイル形式です。
ファイルを経由して他のアーマチュアにポーズデータをコピーすることができます。
アーマチュア空間を使用
オプションを有効にすることで、異なるアーマチュア間のボーンロールの違いを吸収することができます。 -
CSV
PMX Editor (MMDモデルエディタ)と互換性のあるファイル形式です。ポーズブックをCSVにエクスポートしてPMX Editorで使用することができます。
また、PMX EditorでエクスポートされたCSV (ボーンモーフ)ファイルをSakura PoseLibのポーズブックにインポートすることもできます。
またこのときに別名を使用
オプションを有効にすることで、各ポーズの「別名」を主キーとして出力します。
Tip
CSVにエクスポートする際、スケール値を指定することができます。この値は、ボーンの変形をMMDの単位に変換する際に使用されます。 (デフォルト: 12.5)
ユーティリティ機能¶
Sakura PoseLibには、使い勝手を向上させるためいくつかのユーティリティ機能があります。
ポーズプレビューモード(モーダル)¶
ポーズモードにて、Alt+L
で Sakura PoseLibのポーズプレビューモードを起動することができます。キーを押すことで、ポーズとポーズブックを切り替えることができます (詳しくは3Dビューポートに表示される操作説明を参照してください)。
アニメーション互換モードにいる間は使用できません。
ポーズブックリストサブメニュー¶
上述のインポート/エクスポート機能のほか、ポーズブックリストのダウンカレットからアクセスできるサブメニューにある機能について説明します。
ポーズブックを統合
: アクティブなポーズブックを別のポーズブックに統合します。コピー
のオプションを使用すると、元のポーズブックはそのまま残ります。デフォルトでは、元のポーズブックは削除されます。
ポーズリストサブメニュー¶
ポーズリスト横のダウンカレットからアクセスできるサブメニューには、便利な機能がいくつか配置されています。
-
ポーズをポーズブックに移動
: 現在アクティブなポーズを別のポーズブックに移動します。ポーズの整理が必要なときに使用します。 -
ポーズカテゴリを自動設定
: ポーズ名に含まれる特定の文字列パターンに応じて、それぞれのカテゴリを自動的に設定します。例えば"eye"という文字列で始まるポーズは、自動的に"目"カテゴリに分類されます。名称の付け方によっては、この機能でうまく判定できない場合もあります。 -
ボーンを一括リネーム
: 現在アクティブなポーズブックに対して、ボーン名を一括でリネームします。これを用いて、異なるアーマチュアにポーズデータをリターゲットすることができます。通常の文字列検索・置換のほか、正規表現が利用できます。
Note
異なるアーマチュア間でポーズを流用する場合、エクスポート時にアーマチュア空間を使用
オプションを有効にすることで、ボーンロールの違いを吸収することができます。
ポーズデータを掃除
: アクティブなポーズブック内のポーズから不要な/無効なボーン変形項目を削除するオペレータが呼び出されます。不要ボーンとは、変形が存在しないボーンや、アーマチュアに存在しないボーンのことです。この機能は、ポーズデータを最適化するために使用します。「報告のみ」オプションを使用すると、実際に削除することなく、不要ボーンのリストを情報エディタ上に出力します。
Tip
もしボーン名を変更したことでポーズデータが無効になってしまった場合は、この機能を使用する際は注意してください (無効なボーン名の変形項目は削除されます!)。
ボーン名追跡ハンドラー¶
これはバックグラウンドハンドラー型の機能で、アドオン有効時であれば常に自動的に動作しています。
ボーン名の変更が検出されると自動的にポーズデータ内のボーン名が同期されますので、ポーズデータを壊す心配なくアーマチュアの編集を行なえます。
技術ノート¶
- Sakura Toolsアドオンには、Sakura PoseLibのポーズデータをシェイプキーに変換する機能があります。
-
Sakura PoseLibのデータを活用したアドオンの制作は大歓迎です。
-
Sakura PoseLibのデータレイアウト: (詳しくは
props.py
を参照してください) -
bpy.types.Object.sakura_poselib
- Books: Colleciton of PoseBook
- name: PoseBook name
- Poses: Colleciton of Pose
- Pose: { pose_name: List[BoneTransform] }
- name: Pose name
- Bones: Colleciton of BoneTransform
- BoneTransform: { bone_name: location:Vector3, rotation:Quaternion, scale:Vector3 }
-
詳しくはソースコードを参照してください。