Skip to content

Sakura Poselib

Sakura Poselib
シンプル、軽量、手軽なポーズライブラリ

GitHub

Gumroad BlenderMarket ストアサイトは寄付用です

MIT ライセンス


概要

Sakura Poselib は、Blender 3 シリーズで段階的に廃止された古いポーズライブラリを置き換えるために作成されたアドオンです。このアドオンを使用すると、簡単にポーズを作成、管理、適用できます。

当アドオンは、mmd_tools と PMX Editor との互換性を考慮して設計されています。また、古いポーズライブラリからのインポートとエクスポートも可能です。

Panel

Note

インストール後、アーマチュアのプロパティに Sakura Poselib パネルが追加されます。
また、サイドパネル上にSakuraタブが追加され、サイドパネル上から各種機能が利用できます。

基本要素

ポーズブック(PoseBook)

ポーズブック(PoseBook) とは、Sakura Poselib で管理されるポーズの集まりです。アーマチュアは複数のポーズブックを持つことができます。これは、古いポーズライブラリの「アクション」に相当します。

アクションとは異なり、ポーズブックはキーフレームの集まりではありません。ポーズブックは、{ ポーズ名: ボーンデータ } の集まりとしてポーズを保存します。

Sakura Poselibの使用を開始する時には、+ボタンで最初のポーズブックを作成してください。

Pose Book

ポーズ(Pose)

ポーズとは、アーマチュアのボーンの状態を表すデータです。Sakura Poselibにおいては、ポーズリストはポーズブックの中にコレクションとして格納されます。

Sakura PoseLibにおけるポーズは、単純な { ポーズ名: ボーントランスフォームリスト } のペアです。
ボーントランスフォームのリストは、{ ボーン名: トランスフォーム } のデータを含みます。これらは Sakura Poselib パネルの 'ボーンデータ' サブパネルで編集できます。

Pose List

ポーズカテゴリー

ポーズは名称に含まれる識別子によってカテゴリー分けされ、ポーズリストの異なるタブに整理して表示することができます。デフォルトでは以下のようなカテゴリーがあります。

カテゴリ名 説明 識別子
全て 全てのポーズ *
目や瞼に関するポーズ eye, eyelid,, など
眉に関するポーズ eyebrow, など
口や唇に関するポーズ mouth, lip, , など
その他 その他のポーズ 上記以外

ボーンデータ

Sakura Poselibパネル内の 'ボーンデータ' サブパネルでは、ポーズに含まれるボーンの状態を確認、編集できます。

Bone Data

Info

ボーンデータパネルで直接トランスフォームデータの数値を編集するのは困難です。このパネルは状態の確認のために使用し、調整が必要なときはポーズモードでボーンを操作し、置き換え機能でポーズデータを上書きすることをお勧めします。

使い方

ポーズを追加する

旧式のポーズライブラリと同様に、ポーズモードで Shift+L を押すと、ポーズの追加/置き換えメニューが表示されます。

Pose Menu

ポーズを追加すると、現在のポーズに影響を与えるボーンのみがポーズデータに追加されます。明示的にボーンを選択する必要はありません。

Tip

この処理中、非表示のボーンは無視されるため、あらかじめ不要なボーンを非表示にしておくことで、ポーズデータをクリーンに保つことができます。

ポーズを置き換える

ポーズの追加と同様に、現在のポーズに影響を与えるボーンのみがポーズデータに追加されます。明示的にボーンを選択する必要はありません。ポーズに寄与しないボーンは対象のポーズデータから削除されます。

ポーズのプレビュー / 複合ポーズの作成

ポーズリストの各ポーズには、スライダーがあり、各スライダーの値を調整することで、シェイプキーと同じように適用度に応じたポーズ状態をプレビューできます。
また、複数のスライダーを同時に使用することで、複合的なポーズをプレビューすることができます。

Combined Pose

プレビュー中にポーズを追加することで、複数のポーズを組み合わせた新たなポーズを作成することもできます。

Note

この機能は、現在Blenderのアニメーションシステムとは互換性がありません。プレビューのためにのみ設計されています。

Tip

Sakura PoseLibのポーズは、アーマチュアに制約を与えるものではありません。ポーズの値が有効な間でも、自由にボーンを操作することができます。

ポーズの「別名」の使用

ポーズ一覧のタイトルの横にある「別名を表示」ボタンを有効にすると、各ポーズの名称の横に「別名(alt_name)」が表示されます。

これは、翻訳を目的とした項目で、エクスポート時に使用することができます。例えばMMD用のポーズを作成するときに、Blender内では英語の名称を使い、MMDでは日本語の名称で扱いたい場合に便利です。

Alt Name

インポート/エクスポート

ポーズブックをインポート/エクスポートすることで、他の方式との間でデータを共有することができます。

これらの機能にアクセスするには、ポーズブックリストの横にあるダウンカレットボタンをクリックし、その中にある変換サブメニューを選択します。

Import/Export

旧式のポーズライブラリ

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ビューポートに表示される操作説明を参照してください)。

Pose Preview Mode

ポーズブックリストサブメニュー

上述のインポート/エクスポート機能のほか、ポーズブックリストのダウンカレットからアクセスできるサブメニューにある機能について説明します。

  • ポーズブックを統合 : アクティブなポーズブックを別のポーズブックに統合します。コピーのオプションを使用すると、元のポーズブックはそのまま残ります。デフォルトでは、元のポーズブックは削除されます。

ポーズブック統合

ポーズリストサブメニュー

ポーズリスト横のダウンカレットからアクセスできるサブメニューには、便利な機能がいくつか配置されています。

Utility Features

  • ポーズをポーズブックに移動 : 現在アクティブなポーズを別のポーズブックに移動します。ポーズの整理が必要なときに使用します。

  • ポーズカテゴリを自動設定 : ポーズ名に含まれる特定の文字列パターンに応じて、それぞれのカテゴリを自動的に設定します。例えば"eye"という文字列で始まるポーズは、自動的に"目"カテゴリに分類されます。名称の付け方によっては、この機能でうまく判定できない場合もあります。

  • ボーンを一括リネーム : 現在アクティブなポーズブックに対して、ボーン名を一括でリネームします。これを用いて、異なるアーマチュアにポーズデータをリターゲットすることができます。通常の文字列検索・置換のほか、正規表現が利用できます。

Note

異なるアーマチュア間でポーズを流用する場合、ボーン配置(ロールや角度)の違いによる問題が生じることがあります。将来的には、このような差異を吸収する機能を追加する予定です。

  • ポーズデータを掃除 : アクティブなポーズブック内のポーズから不要な/無効なボーン変形項目を削除するオペレータが呼び出されます。不要ボーンとは、変形が存在しないボーンや、アーマチュアに存在しないボーンのことです。この機能は、ポーズデータを最適化するために使用します。「報告のみ」オプションを使用すると、実際に削除することなく、不要ボーンのリストを情報エディタ上に出力します。

Tip

もしボーン名を変更したことでポーズデータが無効になってしまった場合は、この機能を使用する際は注意してください (無効なボーン名の変形項目は削除されます!)。

ボーン名追跡ハンドラー

これはバックグラウンドハンドラー型の機能で、アドオン有効時であれば常に自動的に動作しています。
ボーン名の変更が検出されると自動的にポーズデータ内のボーン名が同期されますので、ポーズデータを壊す心配なくアーマチュアの編集を行なえます。

Bone Rename Tool

技術ノート

  • このアドオンは、現時点ではBlenderのアニメーションシステムとは互換性がありません。
  • Sakura Toolsアドオンには、Sakura PoseLibのポーズデータをシェイプキーに変換する機能があります。
  • Sakura PoseLibのデータを活用したアドオンの制作は大歓迎です。

  • Sakura PoseLibのデータレイアウト: (詳しくは props.py を参照してください)

      - bpy.types.Object.pose_library_plus
        - Books: Colleciton of PoseBook
          - name: PoseBook name
          - Poses: Colleciton of Pose
            - Pose: { pose_name: list of BoneTransform }
              - name: Pose name
              - Bones: Colleciton of BoneTransform
                - BoneTransform: { bone_name: location(Vector3), rotation(Quaternion), scale(Vector3) }
    

計画

  • ポーズブックからポーズアセットへの変換機能とその逆の機能を実装。
  • ポーズブックをBlenderのアニメーションシステムと互換性のある形式に変換する機能を実装。