ApplyPoseAsRestPose — アーマチュアの現在のポーズを新しいレストポーズに適用するBlenderアドオン

Tool

概要

ApplyPoseAsRestPoseは、Blender(4.2以降)用の小規模な拡張で、アーマチュアの「現在のポーズ」を新しいレスト(基準)ポーズとしてメッシュに反映するためのツールです。特にシェイプキーを含むメッシュでの扱いに配慮しており、依存関係グラフによる正確な評価とシェイプキーのピン固定(値を一時的に保持)を行うことで、複数シェイプキーのあるメッシュや、シェイプキーが一つしかない場合、あるいはシェイプキーが無いメッシュでも安全に処理できます。UIはサイドバーのPoseタブ(Nパネル)かF3検索から利用できます。GitHub

リポジトリの統計情報

  • スター数: 2
  • フォーク数: 0
  • ウォッチャー数: 2
  • コミット数: 3
  • ファイル数: 5
  • メインの言語: Python

主な特徴

  • アクティブなアーマチュアの「現在のポーズ」をその子メッシュ全てに対してレストポーズとして適用
  • 複数のシェイプキーを持つメッシュに対してdepsgraph評価+シェイプキーピン(固定)で正しく処理
  • シェイプキーが一つだけ、または全く無いメッシュにも対応
  • サイドバー(Nパネル > Pose)とF3コマンドで簡単にアクセス可能

技術的なポイント

このアドオンは非常にコンパクトな実装でありながら、シェイプキーを含むリアルなリグ構成での使用を意識しています。主な処理手順は次のようになります:アーマチュアをアクティブにしてオペレーターを起動すると、依存関係グラフ(depsgraph)を用いて各子メッシュの「変形後」のジオメトリを評価し、その頂点座標を新しい基準(rest/basis)として反映します。複数シェイプキーが存在するケースでは、現在のシェイプキーの影響を保持するために該当シェイプキー値を一時的にピン(値を固定)してから評価を行い、評価結果を基礎形状に焼き付けることで見た目を崩さずにレストポーズ化します。シェイプキーが一つ(basisのみ)や存在しないメッシュでは、直接ジオメトリを書き換えるか新しいベースを作成するなどの安全な分岐を行う実装になっています。

実装ファイルは小規模で、init.pyでアドオンの登録(operator、パネルなど)を行い、blender_manifest.tomlにメタ情報を置く典型的なBlenderアドオン構成です。depsgraphを正しく活用することでモディファイアスタックやアーマチュア変形を含めた最終的な頂点位置が取得でき、単純な頂点コピーよりも信頼性の高い結果が得られます。注意点としては、モディファイアが他オブジェクトに依存する場合や、オブジェクトスケールが未適用のときは期待通りにならない可能性がある点、処理は選択中のアーマチュアとその子メッシュを対象とする点、処理前にシーンのバックアップを取ることが推奨される点などがあります。コードベースが小さいためカスタマイズしやすく、特定のワークフロー(例えばFBXエクスポート前にポーズを確定させたい場面)への適用も容易です。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .gitignore: file
  • LICENSE: file
  • README.md: file
  • init.py: file
  • blender_manifest.toml: file

まとめ

シンプルだがシェイプキー対応が丁寧な、実用的なBlenderアドオンです(導入・試用推奨)。

リポジトリ情報:

READMEの抜粋:

Apply Pose as Rest Pose

A minimal Blender extension (4.2+) that applies the current armature pose as the new rest pose, with correct handling of shape keys.

Features

  • Applies the current pose as the rest pose for the active armature and all its child meshes
  • Correctly handles meshes with multiple shape keys using depsgraph evaluation and shape key pinning
  • Handles meshes with a single basis shape key or no shape keys at all
  • Accessible from the sidebar (N panel > Pose tab) or via F3 …