Imervue ユーザーガイド
=====================
GPU アクセラレーション画像ワークステーション。 **4 つのトップレベルタブ** を提供します。
本ガイドの大部分はこの 4 つのタブを軸に構成されています。
.. list-table::
:header-rows: 1
:widths: 18 82
* - タブ
- 機能
* - **Imervue**
- 画像ライブラリの閲覧・表示・整理・検索・バッチ処理。
「Imervue タブ — 画像ビューアーとライブラリ」を参照。
* - **Modify**
- 非破壊現像パイプライン — スライダー、カーブ、LUT、マスク、レタッチ、多画像合成。
「Modify タブ — 非破壊現像」を参照。
* - **Paint**
- のラスター描画スタジオ。ブラシ、レイヤー、アニメ、漫画ツール、PSD I/O 搭載。
「Paint タブ — 描画」を参照。
* - **Puppet**
- ゼロから構築した 2D リギング・パペットアニメーター — メッシュ、デフォーマー、パラメータ、モーション、物理。
「Puppet タブ — 2D リギング・パペットアニメーション」を参照。
続く「はじめに」「リファレンス」「プラグインシステム」「MCP サーバー」は横断的な章で、すべてのタブに共通です。
.. contents:: 目次
:depth: 2
:local:
----
はじめに
--------
Imervue を起動すると、3 つのエリアが表示されます:
::
┌──────────┬──────────────────────┬──────────┐
│ フォルダ │ │ EXIF │
│ ツリー │ 画像ビューアー │ サイドバー│
│ │ │ │
└──────────┴──────────────────────┴──────────┘
- **左側**:フォルダツリー。フォルダをクリックすると中の画像を閲覧できます
- **中央**:画像表示エリア。サムネイルグリッドですべての画像を表示します
- **右側**:EXIF サイドバー。撮影情報を表示します
----
画像を開く
----------
.. list-table::
:header-rows: 1
:widths: 30 70
* - 方法
- 操作
* - フォルダを開く
- ``ファイル`` > ``フォルダを開く`` でディレクトリを選択
* - 画像を開く
- ``ファイル`` > ``画像を開く`` でファイルを選択
* - ドラッグ&ドロップ
- 画像やフォルダをウィンドウに直接ドロップ
* - エクスプローラーから開く
- 画像を右クリック > ``Open with Imervue``(ファイル関連付けが必要)
* - 最近開いたファイル
- ``ファイル`` > ``最近開いたファイル``
対応画像フォーマット
^^^^^^^^^^^^^^^^^^^^
- **一般**:PNG、JPEG、BMP、TIFF、WebP、GIF、APNG、SVG
- **RAW**:CR2(Canon)、NEF(Nikon)、ARW(Sony)、DNG(Adobe)、RAF(Fujifilm)、ORF(Olympus)
----
画像の閲覧
----------
サムネイルグリッドモード
^^^^^^^^^^^^^^^^^^^^^^^^
フォルダを開くと、すべての画像がサムネイルグリッドで表示されます。
.. list-table::
:header-rows: 1
:widths: 30 70
* - 操作
- 方法
* - スクロール
- マウスホイール
* - パン(移動)
- マウス中ボタンを押しながらドラッグ
* - 拡大表示に切替
- サムネイルを左クリック
* - サムネイルサイズ変更
- メニュー ``サムネイルサイズ`` > 128 / 256 / 512 / 1024 を選択
* - サムネイル密度
- ``サムネイルサイズ`` > ``サムネイル密度`` > コンパクト / 標準 / ゆったり
* - ホバープレビュー
- サムネイル上にカーソルを 500 ms 置くと拡大プレビューを表示
* - 複数画像を選択
- 左クリックしながらドラッグして矩形選択
* - キーボードで移動
- 矢印キーでパン、``Shift`` を押しながらで微調整
サムネイルにはステータスバッジが表示されます:左端のカラーストリップ(カラーラベル)、
左上の ❤(お気に入り)、右上の ★(ブックマーク)、左下の評価星。未ロードのサムネイルは
回転するドットのプレースホルダーで表示されます。
リスト(詳細)モード
^^^^^^^^^^^^^^^^^^^^
``Ctrl + L`` でサムネイルグリッドとソート可能なリストビューを切り替えます。列:
プレビュー · ラベル · 名前 · 解像度 · サイズ · 種類 · 更新日 · 星評価(クリックで 0 – 5 を設定)。行をダブルクリック
(または ``Enter``)で拡大表示モードに入り、``Esc`` でリストに戻ります。サムネイルと
メタデータはワーカースレッドで遅延ロードされるため、大量の画像があっても応答性を保ちます。
拡大表示モード(Deep Zoom)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
サムネイルをクリックすると拡大表示モードに入り、高画質で画像を閲覧できます。
.. list-table::
:header-rows: 1
:widths: 30 70
* - 操作
- 方法
* - ズームイン/アウト
- マウスホイール/タッチパッドのピンチ
* - パン
- マウス中ボタンを押しながらドラッグ
* - 前の画像
- ``←`` 左矢印キー(またはタッチパッドを右にスワイプ)
* - 次の画像
- ``→`` 右矢印キー(またはタッチパッドを左にスワイプ)
* - フォルダ間ジャンプ
- ``Ctrl + Shift + ←`` / ``→`` で前/次の画像があるフォルダーへ
* - 履歴を戻る/進む
- ``Alt + ←`` / ``Alt + →``(ブラウザー風)
* - 番号でジャンプ
- ``Ctrl + G``
* - ランダム画像
- ``X``
* - 幅に合わせる
- ``W``
* - 高さに合わせる
- ``Shift + W``
* - ズームをリセット
- ``Home``
* - サムネイルに戻る
- ``Esc``
* - フルスクリーン
- ``F``(もう一度押すと解除)
* - シアターモード
- ``Shift + Tab`` でメニュー/ステータス/ツリー/タブを全て隠す
* - OSD 情報オーバーレイ
- ``F8`` でファイル情報、``Ctrl + F8`` で Debug HUD(VRAM/キャッシュ/スレッド)
* - ピクセル表示
- ``Shift + P`` — 400 % 以上でピクセルグリッドとカーソル下の RGB/HEX を表示
* - カラーモード
- ``Shift + M`` で ノーマル/グレースケール/反転/セピア を循環(GLSL、非破壊)
分割表示・見開き表示
^^^^^^^^^^^^^^^^^^^^
Compare ダイアログを開かずに、メインウィンドウ内で 2 枚を並べて表示:
.. list-table::
:header-rows: 1
:widths: 35 65
* - 操作
- ショートカット
* - 分割表示(任意の 2 枚)
- ``Shift + S``
* - 見開き表示(現在 + 次の画像)
- ``Shift + D``
* - 見開き表示(右綴じ、漫画用)
- ``Ctrl + Shift + D``
* - 前のモードに戻る
- ``Esc``
見開きモードでは矢印キーは一度に 2 枚進みます。右綴じ版は 2 つのパネルを入れ替えて
1 ページ目を右に表示します。
マルチモニターウィンドウ
^^^^^^^^^^^^^^^^^^^^^^^^
``Ctrl + Shift + M`` で副ディスプレイに枠なしの第 2 ウィンドウを開き、メインビューアーで
表示中の画像をミラーリングします。メインウィンドウは独立して閲覧を続けられます —
展示、デュアルスクリーンの編集ワークフロー、クライアントへのプレゼンに便利。
もう一度 ``Ctrl + Shift + M`` で閉じるか、第 2 ウィンドウ内で ``Esc`` を押します。
----
画像の整理
----------
評価とお気に入り
^^^^^^^^^^^^^^^^
拡大表示モードで、画像にすばやく評価を付けられます:
.. list-table::
:header-rows: 1
:widths: 30 70
* - 操作
- キー
* - お気に入りに追加 ❤
- ``0``
* - 1~5 つ星で評価
- ``1`` ``2`` ``3`` ``4`` ``5``(もう一度押すと解除)
カラーラベル (F1 -- F5)
^^^^^^^^^^^^^^^^^^^^^^^
星評価とは独立した other XMP-aware photo managers 風のカラーフラグ。素早い分類に便利です(例:赤=削除候補、
緑=採用、青=要レタッチ)。
.. list-table::
:header-rows: 1
:widths: 30 70
* - 操作
- キー
* - 赤 / 黄 / 緑 / 青 / 紫
- ``F1`` / ``F2`` / ``F3`` / ``F4`` / ``F5``(同じキーでクリア)
* - 選択に一括適用
- 複数サムネイルを選択後、対応する F キーを押す
* - 色でフィルター
- ``フィルター`` > ``カラーラベルで絞り込み`` > 色/ラベル付き/ラベルなし
ステータスバーに現在の画像のカラーチップ、サムネイルの左端にカラーストリップ、
**リストビュー** には並び替え可能な「ラベル」列と「星評価」列があり、星評価列は
クリックで 0 – 5 の星を直接設定できます。
ブックマーク
^^^^^^^^^^^^
よく使う画像をブックマークに追加して、あとで素早くアクセスできます。
.. list-table::
:header-rows: 1
:widths: 30 70
* - 操作
- 方法
* - ブックマーク追加/解除
- 拡大表示モードで ``B``
* - ブックマーク管理
- ``ファイル`` > ``ブックマーク``
タグとアルバム
^^^^^^^^^^^^^^
タグとアルバムで画像を分類・管理できます。
.. list-table::
:header-rows: 1
:widths: 30 70
* - 操作
- 方法
* - 管理画面を開く
- ``T`` を押すか ``ファイル`` > ``タグとアルバム``
* - 画像にタグ付け
- 画像を右クリック > ``タグに追加``
* - アルバムに追加
- 画像を右クリック > ``アルバムに追加``
* - 単一タグ/アルバムでフィルター
- ``フィルター`` > ``タグで絞り込み`` / ``アルバムで絞り込み``
* - 複数タグフィルター (AND / OR)
- ``フィルター`` > ``複数タグフィルター…`` — 複数選択し「いずれか (OR)」または「すべて (AND)」を指定
ソートとフィルター
^^^^^^^^^^^^^^^^^^
.. list-table::
:header-rows: 1
:widths: 40 60
* - 機能
- メニュー
* - 名前で並べ替え
- ``ソート`` > ``名前順``
* - 更新日で並べ替え
- ``ソート`` > ``更新日順``
* - ファイルサイズで並べ替え
- ``ソート`` > ``ファイルサイズ順``
* - 解像度で並べ替え
- ``ソート`` > ``解像度順``
* - 昇順/降順
- ``ソート`` > ``昇順`` / ``降順``
* - 拡張子でフィルター
- ``フィルター`` > ``JPEG`` / ``PNG`` / ``RAW`` など
* - 評価でフィルター
- ``フィルター`` > ``評価で絞り込み``
* - カラーラベルでフィルター
- ``フィルター`` > ``カラーラベルで絞り込み``(すべて/ラベル付き/ラベルなし/赤/黄/緑/青/紫)
* - 詳細フィルター
- ``フィルター`` > ``詳細フィルター…`` — 解像度範囲、ファイルサイズ範囲、向き(横/縦/正方)、更新日範囲
* - フィルター解除
- ``フィルター`` > ``フィルター解除``
表示モード(グリッド / リスト)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
サムネイルグリッドとソート可能な詳細リストを切り替えます:
- ``Ctrl + L`` — グリッド ↔ リスト
- メニュー:``サムネイルサイズ`` > ``表示モード`` > グリッド / リスト
- リストモードではラベルを含む任意の列でソート可能;行をダブルクリックまたは ``Enter`` で拡大表示
----
画像の編集(修正タブ)
----------------------
上部の **「修正」** タブに切り替えると、編集モードに入ります。拡大表示モードで ``E`` を押すか、右クリック > ``修正`` でも入れます。
::
┌────────┬──────────────────────┬────────────┐
│ ツール │ │ プロパティ │
│ バー │ キャンバス(直接描画)│ ブラシ、色 │
│ │ │ 現像調整 │
└────────┴──────────────────────┴────────────┘
注釈ツール(左パネル)
^^^^^^^^^^^^^^^^^^^^^^
.. list-table::
:header-rows: 1
:widths: 15 15 70
* - ツール
- アイコン
- 説明
* - 選択
- ⬚
- 既存の注釈を選択し、ドラッグで移動
* - 矩形
- ▢
- 四角形を描画
* - 楕円
- ◯
- 楕円や円を描画
* - 直線
- ╱
- 直線を描画
* - 矢印
- →
- 矢印を描画
* - フリーハンド
- ✎
- 自由に線を描画
* - テキスト
- T
- 画像にテキストを追加
* - モザイク
- ▦
- 選択領域にモザイク処理
* - ぼかし
- ◌
- 選択領域にぼかし処理
.. tip::
修正タブで ``←`` ``→`` を押すと、エディタを閉じずに画像を切り替えられます。
ブラシの種類(右パネル)
^^^^^^^^^^^^^^^^^^^^^^^^
.. list-table::
:header-rows: 1
:widths: 25 75
* - ブラシ
- 効果
* - ペン
- 標準的な細い線、最もよく使うブラシ
* - マーカー
- 太めの半透明ストローク
* - 鉛筆
- 細くて薄い線
* - 蛍光ペン
- 幅広で高い透明度、本物の蛍光ペンのような効果
* - スプレー
- 散布ドット効果
* - カリグラフィ
- ストロークの方向により太さが変化
* - 水彩
- 柔らかくにじむ効果
* - 木炭
- 粗いテクスチャのストローク
* - クレヨン
- ワックスのような質感
描画プロパティ(右パネル)
^^^^^^^^^^^^^^^^^^^^^^^^^^
.. list-table::
:header-rows: 1
:widths: 25 75
* - プロパティ
- 説明
* - 色
- カラーパッチをクリックして描画色を選択
* - 線幅
- スライダーで線の太さを調整(1~40)
* - 不透明度
- 透明度を調整(0%~100%)
* - フォント
- テキストツールで使用するフォントを選択
* - フォントサイズ
- テキストサイズを調整(6~200 px)
画像調整(右パネル下部)
^^^^^^^^^^^^^^^^^^^^^^^^
.. list-table::
:header-rows: 1
:widths: 25 75
* - スライダー
- 機能
* - 露出
- 全体的な明るさを調整
* - 明るさ
- 明暗を微調整
* - コントラスト
- 明暗のコントラストを調整
* - 彩度
- 色の鮮やかさを調整
* - ホワイトバランス — 色温度
- 寒色 / 暖色シフト(青 ↔ 黄)。混合光源や室内撮影に便利
* - ホワイトバランス — 色かぶり
- マゼンタ / グリーンシフト。蛍光灯のかぶりを補正
* - シャドウ
- 暗部のディテールを持ち上げる / 引き締める
* - 中間調
- 黒と白を保ったまま中間調を調整
* - ハイライト
- 白飛びを救出、または明部をさらに押し上げ
* - 自然な彩度 (Vibrance)
- 彩度を賢く増強 — 肌色と既に鮮やかな色を保護
これらの調整は **非破壊的** です。各スライダーは画像ごとの Edit Recipe に書き込まれ、
``リセット`` や ``Ctrl + Z`` でいつでも戻せます。Recipe は再起動後も保持され、XMP sidecar
経由でエクスポート / 同期できます(メタデータのセクションを参照)。
保存と元に戻す
^^^^^^^^^^^^^^
.. list-table::
:header-rows: 1
:widths: 20 80
* - ボタン
- 説明
* - 保存
- 注釈と調整を元のファイルに書き込み
* - 元に戻す
- 直前の操作を取り消し
* - やり直し
- 取り消した操作をやり直し
* - リセット
- すべての画像調整をクリア
----
ペイントワークスペース(ペイントタブ)
--------------------------------------
3 つ目のトップレベルタブ — **ペイント** — は のペイント
ワークスペースで、複数ドキュメントタブ、ベクター・ラスターレイヤー、漫画
ツール、アニメーションフレーム、PSD インポート / エクスポートに対応します。
タブバーから切り替えるか、ディープズームモードで ``E`` を押すと現在の
画像が新しいペイントタブに転送されます。
::
+------+----------------------+----------------+
| ツール| | カラー · ブラシ|
| バー | キャンバス(描画)| レイヤー · ナビ|
| | | 素材 · … |
+------+----------------------+----------------+
右側のドック(カラー、ブラシ、レイヤー、ナビゲーター、素材ライブラリ、履歴、
スウォッチ、参考、ヒストグラム、アニメーション)は単一の列にタブ化され、
キャンバスは可視高さ全体を保てます。任意のドックタイトルをドラッグして
再配置 / フロート化し、``設定`` > ``ワークスペースレイアウト…`` から
名前付きで保存できます。
ツールパレット(左側)
^^^^^^^^^^^^^^^^^^^^^^
.. list-table::
:header-rows: 1
:widths: 25 15 60
* - ツール
- ショートカット
- 用途
* - ブラシ
- ``B``
- 現在のブラシ種別で描画
* - 消しゴム
- ``E``
- アクティブレイヤーをアルファ消去
* - 塗りつぶし
- ``G``
- 許容値 / 連続領域 / 全レイヤー参照 で塗りつぶし
* - スポイト
- ``I``
- キャンバスから前景色を取得
* - 移動
- ``V``
- アクティブレイヤーまたは選択範囲を移動
* - 矩形 / 投げ縄 / 自動 / クイック選択
- ``M`` / ``L`` / ``W``
- 置換 / 追加 / 減算 / 交差 モード対応の選択ツール
* - テキスト
- ``T``
- インラインテキスト編集(フォント / サイズ / 太字 / 斜体)
* - グラデーション
- ``U``
- 線形 / 円形 / 角度 / ひし形 グラデーション
* - ぼかし / 指先
- ``R``
- 局所的なピクセル操作
* - ペン(ベジェ)
- ``P``
- アンカー / ハンドル編集ができるベクターパス
* - スタンプ
- ``S``
- Shift+クリックでソース、クリックでフェザー付きコピー
* - 吹き出し
- ``Ctrl + B``
- コミック / 漫画用バルーン(テール自動生成)
* - 矩形 / 楕円 / 直線 / 多角形
- ``Shift + R/E/I/P``
- 線 + 塗りのベクター形状
* - 切り抜き
- ``C``
- アスペクト比プリセット付きの対話的トリミング
* - 変形
- ``Ctrl + T``
- 自由 / 拡大縮小 / 回転 / 傾斜 のハンドル
* - 手のひら
- ``H``
- ドラッグでキャンバスをパン
* - ズーム
- ``Z``
- クリックで拡大、Alt+クリックで縮小
ブラシ
^^^^^^
.. list-table::
:header-rows: 1
:widths: 25 75
* - ブラシ
- 効果
* - ペン
- 鋭いアンチエイリアス線。日常使い
* - マーカー / マーカーペン
- 重ね塗りで濃くなる半透明の太い線
* - 鉛筆
- 細くて少し質感のある鉛筆線
* - スプレー
- 密度と流量で散らばる点
* - 書道
- ストローク方向で太さが変化
* - 水彩
- にじみと柔らかい混色
* - 木炭 / クレヨン
- 圧力傾斜のあるラフなテクスチャ
各ブラシは **ブラシドック** と上部 **オプションバー** で サイズ / 不透明度 /
硬度 / 密度 / 描画モード を調整できます。``設定`` > ``筆圧カーブ…`` で
タブレット筆圧を太さや不透明度に再マッピングし、``編集`` > ``ブラシ先端を
キャプチャ…`` で選択範囲をカスタムブラシ先端に変換できます。
レイヤー
^^^^^^^^
**レイヤードック** はサムネイル、表示切替、その場リネーム、ドラッグ並び替え、
アクティブレイヤーのブレンドモードと不透明度を提供します。``レイヤー`` メニュー
にはさらに:
- **新規 / ベクター / 複製 / 下に結合**(``Ctrl + Shift + N`` /
``Ctrl + Shift + V`` / ``Ctrl + J`` / ``Ctrl + E``)
- **マスク** — 追加 / 選択範囲から / 反転 / 適用 / 削除
(``Ctrl + Shift + M`` 追加;``Ctrl + Alt + Shift + M`` 選択範囲から)
- **クリッピングマスク** — 上のレイヤーを現在の alpha でクリップ(``Ctrl + Alt + G``)
- **レイヤー効果** — ドロップシャドウ / アウターグロー / 縁取り、効果クリア
- **参照レイヤー** — 1 つのレイヤーをスポイト取得元に固定
- **1-bit レイヤー** — 線画用に二値化レイヤーへ切替
- **色でレイヤー分割** — 単色塗りを色ごとに分割、塗り直しが容易に
- **グラデーションマップ** — プリセット(セピア / 夕焼け / シアノタイプ …)
選択範囲
^^^^^^^^
矩形 / 投げ縄 / 自動 / クイック選択ツールを使い、``編集`` メニューの
**選択範囲を縁取り…** で現在のブラシで境界を描画。``Q`` で **クイックマスク
モード** を切り替え、任意のブラシで赤い領域として境界を整え、再度 ``Q`` で
選択範囲に戻します。
アニメーション
^^^^^^^^^^^^^^
**アニメーションドック** はドキュメントをフレーム列に変えます:
- ``フレーム追加`` で現在のレイヤー状態をキーフレームとして保存。
- フレームサムネイルをクリックでジャンプ。
- ``オニオンスキン``(表示メニュー)で隣接フレームを薄く重ね表示。
- **ファイル > ページをエクスポート** から書き出し(漫画ビューア向け CBZ /
印刷向け PDF)、または **アニメーションエクスポート** で MP4 / GIF。
漫画メニュー
^^^^^^^^^^^^
.. list-table::
:header-rows: 1
:widths: 25 75
* - アクション
- 説明
* - パネル分割
- ``Ctrl + Shift + P`` — キャンバスを 行 / 列 / ガター / 枠線 / 余白 でコマ割り
* - トーンレイヤー切替
- アクティブレイヤーをスクリーントーン化
* - ページ番号スタンプ
- 複数ページに番号を押印
* - 集中線
- 放射 / 平行 / 爆発 の 3 種の集中線生成
* - アクションフラッシュ
- 漫画風の爆発 / 衝撃のフラッシュ
* - 吹き出しツール
- バルーンをドラッグし、テールを話者に向ける
フィルター
^^^^^^^^^^
``フィルター`` は各効果のリアルタイムプレビュー付きダイアログを開きます:
- **レベル補正** — チャンネルごとの 黒 / Gamma / 白 スライダー
- **トーンカーブ** — RGB / R / G / B のドラッグ可能なポイント、単調三次補間
- **ポスタリゼーション** — 色を N 段階に量子化
- **二値化** — しきい値でモノクロ化
- **オートカラーバランス** — グレーワールド / ホワイトポイントでキャストを除去
- **フィルムグレイン** — 粒径と量を調整できる輝度ノイズ
- **ハーフトーン化** — 新聞風のドットスクリーン
表示補助
^^^^^^^^
- **ピクセルグリッド**(``Ctrl + Shift + '``)— 高倍率で 1 ピクセルグリッドを重ね表示
- **ピクセルにスナップ / エッジにスナップ** — サブピクセル位置を整数座標へ
- **オニオンスキン** — アニメーション隣接フレームの重ね表示
- **裁ち落としガイド** — 印刷の裁ち落とし / セーフゾーン
- **キャンバス回転**(``Ctrl + Shift + H``)— 非破壊的なビュー回転
ファイル I/O
^^^^^^^^^^^^
- **PSD を開く…**(``Ctrl + O``)と **PSD として保存…**(``Ctrl + S``)
— Photoshop のレイヤー、マスク、ブレンドモード、レイヤー効果を相互変換
- **画像をエクスポート…** — 平坦化して PNG / JPEG / WebP / BMP / TIFF に保存
- **ページをエクスポート → CBZ** / **→ PDF** — 複数フレームの漫画書き出し
- **ブラシプリセットを読込 / 書出**、**パレットを読込** — インストール間で共有
- **自動保存スナップショット** — バックグラウンドで定期保存。File メニューから最新を復元
ワークスペースレイアウト
^^^^^^^^^^^^^^^^^^^^^^^^
``設定`` > ``ワークスペースレイアウト…`` でドック配置、ツールオプション状態、
表示パネルを名前付きで保存し、ワンクリックで切替できます — 例えば「描画」
レイアウトはブラシとカラーを前面に、「合成」レイアウトはレイヤーと履歴を
拡張するなど。
----
回転と反転
----------
.. list-table::
:header-rows: 1
:widths: 30 20 50
* - 操作
- ショートカット
- メニュー
* - 時計回りに 90° 回転
- ``R``
- 右クリック > 修正 > 時計回りに回転
* - 反時計回りに 90° 回転
- ``Shift + R``
- 右クリック > 修正 > 反時計回りに回転
* - 左右反転
- --
- 右クリック > 修正 > 左右反転
* - 上下反転
- --
- 右クリック > 修正 > 上下反転
* - ロスレス回転(JPEG)
- --
- 右クリック > ロスレス回転
----
画像のエクスポート
------------------
単一エクスポート
^^^^^^^^^^^^^^^^
画像を右クリック > ``エクスポート / 名前を付けて保存``
- フォーマット選択:PNG、JPEG、WebP、BMP、TIFF
- 品質調整(非可逆フォーマットの場合)
- ファイルサイズのプレビュー
- 保存先の選択
エクスポートプリセット
^^^^^^^^^^^^^^^^^^^^^^
よく使う用途向けには ``ファイル`` > ``プリセットでエクスポート`` で、リサイズ・形式・品質を
ワンクリック適用できます:
.. list-table::
:header-rows: 1
:widths: 20 80
* - プリセット
- パイプライン
* - **Web 1600**
- 長辺 1600 px、JPEG 品質 85、sRGB。ブログ / フォーラム投稿向け。
* - **Print 300 dpi**
- フル解像度 TIFF / 高品質 JPEG、300 dpi メタデータ付き、カラーマネジメント済。印刷ラボ向け。
* - **Instagram 1080**
- 正方形(1080 × 1080)または縦(1080 × 1350)にクロップ、品質 90 JPEG。
プリセットは下記のウォーターマーク オーバーレイと組み合わせ可能 — 一度有効にすれば
すべてのプリセット出力に自動的に入ります。
ウォーターマーク オーバーレイ
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
``ファイル`` > ``ウォーターマーク…`` で非破壊オーバーレイを設定。エクスポート時のみ適用され、
元のピクセルは変更されません。
- **モード**:テキストまたは画像。画像は alpha 付き PNG に対応。
- **位置**:9 アンカー(四隅、四辺、中央)。
- **不透明度**:0 – 100 %。
- **スケール**:エクスポート長辺に対する % 指定で、プリセット毎に自動リサイズ。
バッチエクスポート
^^^^^^^^^^^^^^^^^^
複数画像を選択し、右クリック > ``バッチエクスポート``
- 一括フォーマット変換
- 最大幅/高さの設定(アスペクト比を維持して自動縮小)
- 品質調整
- リアルタイム進捗バー
GIF / 動画の作成
^^^^^^^^^^^^^^^^^^
複数画像を選択し、右クリック > ``GIF / 動画を作成``
- GIF と MP4 に対応
- ドラッグでフレーム順序を変更
- フレームレート(FPS)設定
- カスタムサイズ
- ループ再生オプション
----
アニメーション再生
------------------
GIF、APNG、アニメーション WebP を開くと、自動的にアニメーションが再生されます。
.. list-table::
:header-rows: 1
:widths: 30 70
* - キー
- 操作
* - ``Space``
- 再生/一時停止
* - ``,``
- 前のフレーム
* - ``.``
- 次のフレーム
* - ``]``
- 速度アップ
* - ``[``
- 速度ダウン
----
画像の比較
----------
サムネイルモードで 2~4 枚の画像を選択し、右クリック > ``画像を比較``。
ダイアログには 4 つのタブがあります:
.. list-table::
:header-rows: 1
:widths: 25 75
* - タブ
- 用途
* - **並列**
- 2 枚または 4 枚を同時表示。各ペインで自動フィット。
* - **オーバーレイ**
- 2 枚を α スライダーで合成(0 → A のみ、100 → B のみ)。2 枚選択が必要。
* - **差分**
- ピクセルごとに ``|A − B|`` を表示。ゲインスライダー(0.10×–20×)で微細な違いを強調。
* - **A | B 分割**
- before / after の分割ビュー。ドラッグ可能な垂直仕切りで左右をスイープ。Develop の調整や
書き出し結果の比較に便利。2 枚選択が必要。
サイズが異なる場合、B を Lanczos で A のサイズにリサンプルします。非常に大きい画像は
内部で長辺 2048 px にダウンスケールしてリアルタイム性を保ちます。
.. seealso::
ダイアログを開かずにメインウィンドウ内で並べる場合は、**分割表示**(``Shift + S``)や
**見開き表示**(``Shift + D`` / ``Ctrl + Shift + D``)を使います。
----
スライドショー
--------------
``S`` を押すか、右クリック > ``スライドショー`` で自動再生を開始します。
- 画像ごとの表示間隔を調整可能
- フェードトランジション効果(オプション)
----
画像の検索
----------
``Ctrl + F`` または ``/`` を押してキーワードを入力すると、現在のフォルダ内でファイル名で画像を検索できます。
**ファジーマッチ**(前方一致 > 部分一致 > 部分順序一致の 3 段階ランク)と **部分文字列のハイライト**
に対応。``Enter`` または結果をダブルクリックでジャンプします。
**番号で** ジャンプしたい場合は ``Ctrl + G`` でジャンプダイアログを開きます。
----
コピーと貼り付け
----------------
.. list-table::
:header-rows: 1
:widths: 40 60
* - 操作
- 方法
* - 画像をクリップボードにコピー
- 拡大表示モードで ``Ctrl + C``
* - クリップボード画像を貼り付け
- ``ファイル`` > ``クリップボードから貼り付け``、または ``Ctrl + V``
* - クリップボード自動監視
- ``ファイル`` > ``クリップボード画像の自動注釈`` をチェック
.. note::
自動監視を有効にすると、新しい画像がクリップボードに現れるたびに(スクリーンショットツールなど)、自動的に注釈エディタが開きます。
----
画像の削除
----------
.. list-table::
:header-rows: 1
:widths: 40 60
* - 操作
- 方法
* - 現在の画像を削除
- ``Delete`` キー
* - 選択した複数の画像を削除
- 選択後 ``Delete`` または右クリック > ``選択した画像を削除``
画像はシステムのゴミ箱に移動され、そこから復元できます。
----
バッチ操作
----------
サムネイルモードで複数画像を選択後、右クリックで以下の操作が可能です:
.. list-table::
:header-rows: 1
:widths: 30 70
* - 機能
- 説明
* - バッチリネーム
- テンプレート ``{name}``、``{n}``、``{ext}`` で自動命名
* - 移動/コピー
- 画像を他のフォルダに移動またはコピー
* - 一括回転
- 選択した全画像を一度に回転
* - バッチエクスポート
- フォーマットとサイズを一括変換
* - タグに追加
- 選択した全画像に同じタグを付与
* - アルバムに追加
- 選択した全画像をアルバムに追加
----
RGB ヒストグラム
-----------------
拡大表示モードで ``H`` を押すと、画像上に RGB ヒストグラムが表示されます。もう一度押すと非表示になります。
----
壁紙に設定
----------
拡大表示モードで右クリック > ``壁紙に設定`` で、現在の画像をデスクトップの壁紙に設定します。
Windows、macOS、Linux(GNOME)に対応しています。
----
マルチウィンドウ
----------------
``ファイル`` > ``新しいウィンドウ`` で、独立した Imervue ウィンドウを追加で開けます。各ウィンドウで別のフォルダを閲覧できます。
タッチパッドジェスチャー
------------------------
.. list-table::
:header-rows: 1
:widths: 30 70
* - ジェスチャー
- 動作
* - ピンチ
- 拡大表示でズームイン/アウト(ピンチ中心を基点)
* - 水平スワイプ
- 前 / 次の画像
----
ファイル関連付け(Windows)
---------------------------
Windows エクスプローラーから直接 Imervue で画像を開けるようにします:
1. ``ファイル`` > ``ファイル関連付け`` > ``Open with Imervue を登録``
2. 管理者権限が必要です
3. 登録後、画像を右クリックすると ``Open with Imervue`` オプションが表示されます
解除する場合:``ファイル`` > ``ファイル関連付け`` > ``ファイル関連付けを解除``
----
プラグインシステム
------------------
Imervue はプラグインによる機能拡張に対応しています。
.. list-table::
:header-rows: 1
:widths: 35 65
* - 操作
- メニュー
* - インストール済みプラグインを表示
- ``プラグイン`` > ``プラグイン管理``
* - 新しいプラグインをダウンロード
- ``プラグイン`` > ``プラグインのダウンロード``
* - プラグインフォルダを開く
- ``プラグイン`` > ``プラグインフォルダを開く``
* - プラグインを再読み込み
- ``プラグイン`` > ``プラグインの再読み込み``
----
言語の切り替え
--------------
``言語`` メニューでインターフェース言語を切り替えられます:
- English
- 繁體中文
- 简体中文
- 한국어
- 日本語
切り替え後は再起動が必要です。
----
キーボードショートカット一覧
----------------------------
閲覧
^^^^
.. list-table::
:header-rows: 1
:widths: 30 70
* - キー
- 機能
* - ``←`` / ``→``
- 前の画像/次の画像
* - 矢印キー
- サムネイルモードでパン
* - ``Shift + 矢印キー``
- 微調整パン
* - ``Ctrl + Shift + ←`` / ``→``
- 前/次の画像があるフォルダへジャンプ
* - ``Alt + ←`` / ``Alt + →``
- 履歴を戻る/進む(ブラウザー風)
* - ``Ctrl + G``
- 番号で画像にジャンプ
* - ``X``
- ランダムな画像にジャンプ
* - マウスホイール / ピンチ
- ズームイン/アウト
* - 水平スワイプ
- 前 / 次の画像
* - マウス中ボタンドラッグ
- パン
* - ``F``
- フルスクリーン
* - ``Shift + Tab``
- シアターモード(全ての UI を非表示)
* - ``Ctrl + L``
- グリッド ↔ リスト(詳細)を切替
* - ``Shift + S``
- 分割表示(2 枚を並べる)
* - ``Shift + D`` / ``Ctrl + Shift + D``
- 見開き表示 / 右綴じ(漫画)
* - ``Ctrl + Shift + M``
- サブディスプレイにミラーウィンドウ
* - ``Esc``
- サムネイルに戻る/フルスクリーン解除/二枚表示やリストを閉じる
* - ``W``
- 幅に合わせる
* - ``Shift + W``
- 高さに合わせる
* - ``Home``
- ズームリセット
編集
^^^^
.. list-table::
:header-rows: 1
:widths: 30 70
* - キー
- 機能
* - ``E``
- 修正タブを開く
* - ``R``
- 時計回りに回転
* - ``Shift + R``
- 反時計回りに回転
* - ``Ctrl + Z``
- 元に戻す
* - ``Ctrl + Shift + Z``
- やり直し
* - ``Delete``
- 画像を削除
整理
^^^^
.. list-table::
:header-rows: 1
:widths: 30 70
* - キー
- 機能
* - ``0``
- お気に入り追加/解除
* - ``1`` ~ ``5``
- 評価(もう一度で解除)
* - ``F1`` ~ ``F5``
- カラーラベル:赤/黄/緑/青/紫(もう一度でクリア)
* - ``P``
- セレクト:Pick(採用フラグ)
* - ``Shift + X``
- セレクト:Reject(不採用フラグ)
* - ``U``
- セレクト:フラグ解除
* - ``B``
- ブックマーク追加/解除
* - ``T``
- タグとアルバム管理
ツールとオーバーレイ
^^^^^^^^^^^^^^^^^^^^
.. list-table::
:header-rows: 1
:widths: 30 70
* - キー
- 機能
* - ``Ctrl + F`` / ``/``
- ファジー検索(部分文字列ハイライト)
* - ``Ctrl + C``
- 画像をクリップボードにコピー
* - ``Ctrl + V``
- クリップボードから貼り付け
* - ``H``
- RGB ヒストグラム
* - ``F8`` / ``Ctrl + F8``
- OSD 情報 / Debug HUD(VRAM、キャッシュ、スレッド)
* - ``Shift + P``
- ピクセル表示(400 % 以上でグリッドとカーソル下の RGB 値)
* - ``Shift + M``
- カラーモードを循環(ノーマル/グレースケール/反転/セピア)
* - ``S``
- スライドショー
アニメーション
^^^^^^^^^^^^^^
.. list-table::
:header-rows: 1
:widths: 30 70
* - キー
- 機能
* - ``Space``
- 再生/一時停止
* - ``,``
- 前のフレーム
* - ``.``
- 次のフレーム
* - ``[``
- 速度ダウン
* - ``]``
- 速度アップ
ライブラリとメタデータ管理
--------------------------
Imervue は ``%LOCALAPPDATA%/Imervue/library.db``(Windows)または
``~/.cache/imervue/library.db``(POSIX)に SQLite インデックスを保持し、
フォルダー横断検索・階層タグ・スマートアルバム・pHash・メモ・セレクト
フラグを管理します。以下の機能は原則として ``Extra Tools`` メニュー下に
あります。見つけやすさのため、メニューは機能別に 8 つのサブメニューへ
分割されています:``Batch``(一括処理)、
``Library & Metadata``(ライブラリとメタデータ)、``Views``(表示)、
``Workflow``(ワークフロー)、``Export``(書き出し)、
``Develop (Non-Destructive)``(現像)、
``Retouch & Transform``(レタッチと変形)、
``Multi-Image``(マルチ画像)。以下のパスはすべて
``Extra Tools`` > ``<サブメニュー>`` > ``<ツール>`` の形で表記します。
ライブラリ検索
^^^^^^^^^^^^^^
``Extra Tools`` > ``Library & Metadata`` > ``Library Search`` で複数の**ルートフォルダー**をグローバ
ルインデックスに追加し、バックグラウンドでクロールします。拡張子/最小
幅高/サイズ範囲/ファイル名部分一致で検索し、結果を仮想アルバムとして
ビューアーへ読み込めます。
スマートアルバム
^^^^^^^^^^^^^^^^
``Extra Tools`` > ``Library & Metadata`` > ``Smart Albums`` はフィルター条件(拡張子・最小サイズ・
カラーラベル・評価・お気に入り・セレクト状態・階層タグ・ファイル名部分
一致)を名前付きで保存します。再適用で現在フォルダーを即フィルター。
類似画像検索
^^^^^^^^^^^^
``Extra Tools`` > ``Library & Metadata`` > ``Find Similar Images`` は現在の Deep Zoom 画像(または
最初に選択されたタイル)の 64bit DCT pHash を計算し、ハミング距離の近い順
にインデックスから結果を提示します。``Max distance`` で厳密度を調整でき
ます。
自動タグ付け
^^^^^^^^^^^^
``Extra Tools`` > ``Library & Metadata`` > ``Auto-Tag Images`` はヒューリスティックタグを ``auto/...``
以下(``photo`` / ``document`` / ``screenshot`` / ``landscape`` /
``portrait``)に付与します。``onnxruntime`` と ``models/clip_vit_b32.onnx``
が利用可能なら CLIP ベースのコンテンツラベルも追加。ワーカースレッドで
実行しプログレスバー付き。
階層タグ
^^^^^^^^
``Extra Tools`` > ``Library & Metadata`` > ``Hierarchical Tags`` でツリー構造のタグ(例
``animal/cat/british``)を管理できます。ノードを選ぶと子孫タグも含めた
画像一覧が表示され、現在の選択をワンクリックでタグ付け/解除できます。
右クリックメニューのフラットタグと併存します。
Token 一括リネーム
^^^^^^^^^^^^^^^^^^
``Extra Tools`` > ``Batch`` > ``Token Batch Rename`` はライブプレビュー表示で、
``{date:yyyymmdd}_{camera}_{counter:04}{ext}`` のようなテンプレートを入力
するとファイルごとの新名称が即座に表示されます。衝突はハイライト。対応
トークン:``{name} {ext} {counter[:NN]} {date[:fmt]} {width} {height}
{wxh} {size_kb} {camera} {year} {month} {day} {hour} {minute}``。
メタデータエクスポート
^^^^^^^^^^^^^^^^^^^^^^
``Extra Tools`` > ``Library & Metadata`` > ``Export Metadata (CSV / JSON)`` で現在のビューにある各
画像を 1 行として EXIF/サイズ/カラーラベル/評価/お気に入り/階層タグ
/セレクト状態/メモ付きで出力します。表計算や外部ワークフローに便利。
XMP Sidecar(other XMP-aware photo managers 連携)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Imervue は Adobe XMP sidecar ファイル(``photo.jpg`` ↔ ``photo.xmp``)の
読み書きに対応しており、評価・タイトル・説明・キーワード・カラーラベルを
other XMP-aware photo managers、other XMP-aware photo managers、Bridge などの XMP 対応ツールと双方向に同期できます。
- **現在の画像の XMP をインポート** — sidecar から評価 / タイトル / キーワード
/ カラーラベルを内部 DB に取り込みます。
- **現在の画像の XMP をエクスポート** — 現在の評価 / タイトル / キーワード /
カラーラベルを画像と同じ場所の sidecar に書き出します。
- **バッチインポート / エクスポート** — 選択中、またはフォルダ全体に同じ処理を適用。
XML 解析は ``defusedxml`` を通しており、XXE や billion-laughs 攻撃を防ぎます。
``defusedxml`` がインストールされていない場合、XMP メニューは非表示になり、
sidecar の書き出しも行われません。
**EXIF サイドバー** のクリック可能な **星評価ストリップ** で設定した評価が、
そのまま XMP エクスポートの値になります。
セレクト(Pick / Reject)
^^^^^^^^^^^^^^^^^^^^^^^^^
other XMP-aware photo managers 風の三値フラグ。``P`` で現在の画像または選択中のタイル全てを
Pick、``Shift + X`` で Reject、``U`` でフラグ解除。``Filter`` > ``By Cull
State`` で状態別に表示、``Extra Tools`` > ``Workflow`` > ``Culling`` ダイアログには
**Delete all rejects** ボタンがあり、Reject フラグのファイルをディスクから
永久削除できます。
ステージングトレイ
^^^^^^^^^^^^^^^^^^
``Extra Tools`` > ``Workflow`` > ``Staging Tray`` はフォルダー横断のカゴ。任意のタイルを
追加(再起動後も保持)し、トレイ全体を目的フォルダーへ一括で移動/コ
ピーできます。複数セッションから採用画像を集めて書き出す際に便利。
デュアルペインファイラー
^^^^^^^^^^^^^^^^^^^^^^^^
``Extra Tools`` > ``Workflow`` > ``Dual-Pane File Manager`` は dual-pane file managers 風の 2 ペイ
ン構成で、2 フォルダー間の選択を直接移動/コピーできます。
タイムラインビュー
^^^^^^^^^^^^^^^^^^
``Extra Tools`` > ``Views`` > ``Timeline View`` は現在の画像セットを日/月/年単位で
グルーピング(Google フォト風)。日付は EXIF ``DateTimeOriginal`` を優先、
なければファイル更新日時を使用。画像をダブルクリックで Deep Zoom へ。
外部アプリへのドラッグアウト
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
**選択済み**タイルをドラッグすると、エクスプローラー/Chrome/Discord など
ファイル URL を受け付けるアプリへファイルをドロップできます。ドラッグ
プレビューはタイル縮小画像。
画像ごとのメモ
^^^^^^^^^^^^^^
EXIF サイドバーに **Notes** フィールドがあります。入力は短いデバウンス後
に自動保存され、メモは画像パスに紐付くためフォルダー再スキャンでも保
持されます。
----
高度な現像・合成
----------------
トーンカーブ
^^^^^^^^^^^^
``Extra Tools`` > ``Develop (Non-Destructive)`` > ``Tone Curve`` で、RGB と R/G/B の 4 チャンネルを持つ
ドラッグ可能なポイントのカーブエディターを開きます。空白部分を左クリッ
クでポイント追加、ドラッグで移動、右クリックで削除。ポイント間は
monotone cubic で補間され、カーブは recipe に保存されて非破壊に適用
されます。
.cube LUT 適用
^^^^^^^^^^^^^^
``Extra Tools`` > ``Develop (Non-Destructive)`` > ``Apply .cube LUT`` で任意の Adobe ``.cube`` ファイル
(1D / 3D、最大 64³)を選択できます。LUT はパス+mtime キーで
``lru_cache`` に保持され、トリリニア補間で適用、強度スライダーで原画
とブレンドします。LUT パスと強度は recipe に保存されます。
バーチャルコピー
^^^^^^^^^^^^^^^^
``Extra Tools`` > ``Workflow`` > ``Virtual Copies`` は同一画像に対して名前付きの
recipe スナップショットを複数保持します。現在の編集を保存して実験を
続け、いつでも別バージョンに切り替えられます。バリアントはマスター
recipe と並んで保存され、マスターを identity にリセットしても残り
ます。
HDR マージ
^^^^^^^^^^
``Extra Tools`` > ``Multi-Image`` > ``HDR Merge`` は OpenCV の Mertens 露出融合で
ブラケット撮影を 1 枚に合成します。Align を有効にすると事前に
``cv2.AlignMTB`` で位置合わせします。出力は指定ファイルに書き込み、
元画像には触れません。
パノラマ合成
^^^^^^^^^^^^
``Extra Tools`` > ``Multi-Image`` > ``Panorama Stitch`` は OpenCV の ``Stitcher`` で
重なり合う写真を結合します。風景 / 都市景観には **Panorama**、
フラットな文書や絵には **Scans** モードを使用します。合成で生じる
黒枠を自動トリミング可能です。
フォーカススタッキング
^^^^^^^^^^^^^^^^^^^^^^
``Extra Tools`` > ``Multi-Image`` > ``Focus Stacking`` は異なるピント距離で撮影した画像
を融合します。Laplacian 分散で各画素のシャープさを測り最良フレーム
を採用、選択マスクをガウシアンで滑らかにして継ぎ目を抑えます。
デフォルトで ECC によるアライメントが有効です。
ヒーリングブラシ
^^^^^^^^^^^^^^^^
``Extra Tools`` > ``Retouch & Transform`` > ``Healing Brush`` は現在画像を長辺最大 720px で
プレビュー表示します。左クリックで円形スポットを追加、右クリックで
削除、半径スライダーで新規スポットのサイズを決めます。適用時に
OpenCV inpainting(Telea / Navier-Stokes)で修復し、新規ファイルに
保存します。
レンズ補正
^^^^^^^^^^
``Extra Tools`` > ``Retouch & Transform`` > ``Lens Correction`` は純 numpy の 4 スライダー:
放射歪み ``k1``(樽型 / 糸巻型)、周辺光量補正、赤 / 青チャンネルの
色収差放射スケール。出力サイズが変わり得るため recipe ではなく新規
ファイルに保存します。
マップビュー
^^^^^^^^^^^^
``Extra Tools`` > ``Views`` > ``Map View`` は Leaflet + OpenStreetMap
(``PySide6.QtWebEngineWidgets`` 必須)でライブラリ内の GPS 付き画像
をすべてプロットします。WebEngine が無い場合は座標リストに
フォールバックします。
カレンダービュー
^^^^^^^^^^^^^^^^
``Extra Tools`` > ``Views`` > ``Calendar View`` は ``QCalendarWidget`` で撮影日
のあるセルをハイライトします(EXIF ``DateTimeOriginal`` →
``DateTimeDigitized`` → ファイル mtime の順)。日付を選択するとその
日の画像が一覧表示され、ダブルクリックでメインビューアーに開き
ます。
顔検出
^^^^^^
``Extra Tools`` > ``Retouch & Transform`` > ``Face Detection`` は OpenCV の Haar 正面顔分類器で
現在画像を走査し、矩形で表示します。リストをダブルクリックして名前
を入力し保存すると、recipe の ``extra['face_tags']`` に書き込まれ
ます。古典的手法で「顔の位置を知る」用途には十分ですが、最新の
CNN ベース認識の代替ではありません。
ローカル調整マスク
^^^^^^^^^^^^^^^^^^
``Extra Tools`` > ``Develop (Non-Destructive)`` > ``Local Adjustment Masks`` はブラシ / 放射 / 線形
グラデーションのマスクを重ねて使えます。各マスクに露出、明るさ、
コントラスト、彩度、色温度、色合いの差分とぼかし量を設定でき、
``recipe.extra['masks']`` に保存されて読み込み時に非破壊で適用
されます。
スプリットトーン
^^^^^^^^^^^^^^^^
``Extra Tools`` > ``Develop (Non-Destructive)`` > ``Split Toning`` はシャドウとハイライトそれぞれ
に色相と彩度を設定し、バランスで境界を決めます。``recipe.extra``
に保存され、トーンカーブの後に適用されます。
コピースタンプ
^^^^^^^^^^^^^^
``Extra Tools`` > ``Retouch & Transform`` > ``Clone Stamp`` はソース領域をぼかしでコピーし
ます。修復ブラシとは異なりピクセル単位で内容を移動できる手法
です。Shift+クリックでソースを設定、クリックでスタンプ、右クリック
で取り消し。結果は新しいファイルに書き出されます。
トリミング / 水平補正
^^^^^^^^^^^^^^^^^^^^^
``Extra Tools`` > ``Retouch & Transform`` > ``Crop / Straighten`` は 0..1 の正規化トリミング
矩形と任意角度の水平補正を組み合わせます。出力は最大内接矩形に
自動トリミングされ、黒い余白は出ません。
自動水平補正
^^^^^^^^^^^^
``Extra Tools`` > ``Retouch & Transform`` > ``Auto-Straighten`` は Hough 線で主要な地平線や
垂直線を検出し、回転角を提案します。適用前に微調整可能です。
ノイズ軽減 / シャープ
^^^^^^^^^^^^^^^^^^^^^
``Extra Tools`` > ``Retouch & Transform`` > ``Noise Reduction / Sharpening`` はエッジ保持の
バイラテラルノイズ軽減とアンシャープマスクを組み合わせます。
「輝度チャンネルのみ」は色ノイズを維持しつつ輝度ノイズのみ平滑化
します。
空 / 背景
^^^^^^^^^
``Extra Tools`` > ``Retouch & Transform`` > ``Sky / Background`` は検出した空をグラデーション
に置換したり、背景を透明 / 白に切り抜いたりします。``rembg``
(U²-Net) がインストールされている場合は前景セグメンテーション
ネットワークが自動的に使われます。
ソフトプルーフ
^^^^^^^^^^^^^^
``Extra Tools`` > ``Develop (Non-Destructive)`` > ``Soft Proof`` は ICC プロファイルを読み込み、
画像を出力色域に変換して戻した結果を表示し、往復でクリップした
ピクセルをマゼンタで強調します。印刷前の色域チェック用です。
GPS ジオタグ
^^^^^^^^^^^^
``Extra Tools`` > ``Library & Metadata`` > ``GPS Geotag`` は既存の EXIF GPS を読み取り、
10 進度単位で編集・設定できます。``piexif`` が必要で、JPEG に
書き込みます。
印刷レイアウト
^^^^^^^^^^^^^^
``Extra Tools`` > ``Export`` > ``Print Layout`` は複数画像をマルチページ PDF に
レイアウトします。ページサイズ、向き、グリッド、マージン、
ガター、トンボを設定できます。``reportlab`` が必要です。
----
Puppet ワークスペース(Puppet タブ)
-------------------------------------
4 番目のトップレベルタブ — **Puppet** — はゼロから構築した 2D リギング・パペットアニメーションシステムです。Live2D と同等の機能(メッシュ変形リギング、パラメータ、モーション、物理、表情、ポーズグループ、リップシンク、ウェブカメラ追跡)を、**プロプライエタリ SDK なし**、**``live2d-py`` なし**、完全にオープンな ``.puppet`` ファイルフォーマットで実現します。
.. note::
エンドツーエンドのチュートリアル(新規インストールから OBS ライブ配信または MP4 出力まで)は
リポジトリルートの ``puppet_guide.md`` にあります(中国語版は ``puppet_guide.zh-TW.md`` /
``puppet_guide.zh-CN.md``)。本章はリファレンス、ガイドはステップバイステップ解説です。
エンドツーエンドのワークフロー
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1. **PNG をインポート** — ツールバーの ``Import PNG…`` が ``puppet.auto_mesh.puppet_from_png`` を実行:アルファ境界の三角化、単一 drawable、即レンダリング可。
2. **デフォーマー追加** — ``Add Rotation Deformer``(アンカー + 角度)または ``Add Warp Deformer``(行 × 列の Bezier 格子;境界外の頂点はそのまま)。
3. **パラメータ追加** — ``Add Parameter`` で右側の **Parameters** ドックにスライダー追加(自動命名 ``Param1``、``Param2`` …)。
4. **キー設定** — スライダーを片端まで動かし、デフォーマーの form を編集して **Set key**。中立値と反対端でも繰り返し。Runtime はスライダー移動時に隣接キー間で各フィールドを補間します。
5. **保存** — ``Save As…`` で rig + テクスチャ + モーション + 表情 + 物理を 1 つの ``.puppet`` zip に書き出し。
サンプル
^^^^^^^^
リポジトリ同梱:``examples/puppet/march_7th.puppet`` — ツリー内変換済みの 307-drawable Cubism Live2D キャラクター。テクスチャと per-parameter 頂点モーフは ``.puppet`` zip にベイク済みで、デフォルトの ``requirements.txt`` だけで開けます(Cubism SDK 再配布なし)。
203 個の Cubism 標準パラメータを持つため(``ParamAngleX/Y/Z``、``ParamEyeLOpen/ROpen``、``ParamBreath``、``ParamMouthOpenY`` …)、標準入力ドライバ(ウェブカメラ、まばたき、リップシンク、カーソル追従)が rig 固有設定なしで動きます。18 個のループモーションを同梱:作者変換済みの Cubism idle ループ + ``Idle`` グループ / ``Gesture`` グループのリファレンスジェスチャー。
Puppet タブのツールバー → **Examples ▾** ドロップダウンから直接 March 7Th や自分の ``.puppet`` を開けます。下部の **Motions** ドックでモーションをクリックして再生。
**同梱サンプルの実行手順:**
1. **Imervue を起動**。ソースから:``python -m Imervue``。パッケージ版:``Imervue`` 実行ファイル / app bundle を直接起動。``examples/`` ディレクトリは wheel と Nuitka EXE の両方にバンドル済みなので、インストール先で rig ファイルが利用できます。
2. ウィンドウ上部の **Puppet** タブをクリック。
3. ツールバー → **File > Examples > March 7Th**(またはツールバーの **Examples ▾** ドロップダウン)。307-drawable の rig が中央にロードされ、パラメータドックが 203 個の Cubism 標準パラメータスライダーで満たされます。
4. 下部の **Motions** ドックでモーションエントリ(``zhaiyan``、``zhaoxiang``、``idle_breath``、``tap_head`` …)をシングルクリック。即座に再生開始;もう一度クリックで停止、別のモーションを選ぶとクロスフェード。
5. ツールバーのライブ入力トグルを切り替えて自分の入力で rig を動かす — **Drag-track head**(カーソル追従)、**Auto-blink**(自動まばたき)、**Auto idle** + **Idle motions**(呼吸 + ランダム idle モーション)、**Mic lip-sync**(マイク RMS から口の開閉)、**Webcam tracking**(MediaPipe FaceLandmarker による頭 / 目 / 口の追跡)。
6. ツールバーの **Reset to rest** で全モーション停止、全ライブドライバ OFF、expressions / pose オーバーライドをクリア、全パラメータをデフォルトに戻します — 標準の「最初からやり直し」ボタン。
7. 別の rig を後で開く場合:**File > Open Puppet…** でディスクから任意の ``.puppet`` zip を開く;**File > Examples ▾** は常に同梱リストにバインドされます。
OBS ライブ配信
^^^^^^^^^^^^^^
2 つの出力パス。どちらもキャラクターのみを off-screen framebuffer にレンダリング(市松模様の背景もエディタ chrome も含まれない)して配信先に渡します。出力の長辺は 1080 px までキャップ(Cubism ネイティブの 3503×7777 が DirectShow 仮想カメラドライバに拒否されるのを防ぐ)。
**A. 仮想カメラ** — OBS の「映像キャプチャデバイス」ソース一覧にウェブカメラとして表示。``pip install pyvirtualcam`` + プラットフォーム別ドライバ:OBS Studio 26+(Windows / macOS)に *OBS Virtual Camera* ドライバ同梱(OBS 初回起動で *Start Virtual Camera* クリックして登録);Linux は ``v4l2loopback-dkms`` + ``modprobe v4l2loopback exclusive_caps=1 card_label="Imervue"``。ツールバー **Output > Virtual camera** で配信開始。
DirectShow / AVFoundation / v4l2loopback はすべて **RGB のみ・アルファチャンネルなし** のため、Imervue はキャラクター外の領域を **マゼンタ ``#FF00FF``** で塗ってクロマキーとします。OBS で除去:
1. 映像キャプチャデバイスソースを右クリック → **フィルタ**
2. **エフェクトフィルタ > + > Color Key**
3. **Key Color Type** = ``Custom Color``、**Custom Color** = HEX ``FF00FF``、**Similarity** = ``80–300``、**Smoothness** = ``30–50``
フィルタはソースに付随するため、仮想カメラを再開するたびに自動適用されます。
**B. NDI 出力** — LAN 上 < 50 ms 遅延・ネイティブ RGBA、OBS / vMix が自身のシーンに直接合成でき、クロマキーパス不要。``pip install ndi-python`` + `NDI Tools `_ ランタイム + `obs-ndi `_ プラグイン。ツールバー **Output > NDI output** で配信開始(デフォルトソース名 *Imervue Puppet*)。
``ndi-python`` はソース配布のみで、pip が C++ からビルドします。Windows ユーザーは Visual Studio Build Tools 2022(C++ ワークロード)、CMake を PATH に、NDI SDK( から取得、NDI Tools とは別物)をデフォルト場所にインストール、環境変数 ``NDI_SDK_DIR`` を SDK に向ける必要があります。
詳細な手順とトラブルシューティングは ``puppet_guide.md`` § 1.2 を参照。
カスタムモーションの録画
^^^^^^^^^^^^^^^^^^^^^^^^
キーフレームを手動で打つ代わりに、ライブ take を録ります:
1. ツールバーの **Record motion** をオン — 名前ダイアログ表示。
2. 録画中にスライダーを動かす、**Webcam tracking** を有効に、物理を動かす — パラメータ値を書く動作は何でも OK。
3. **Record motion** をオフ — レコーダーが 30 Hz ストリームをベイクして ``Motion`` 化(実際に動いたパラメータごとに 1 つの linear-segment トラック、変動なしのトラックは破棄)。新しいモーションが下部 **Motions** ドックに即表示。
カスタムモーションは手動オーサリングしたモーションと同じ ``motions/.json`` JSON ペイロードで保存されます。
ツールバーリファレンス
^^^^^^^^^^^^^^^^^^^^^^
.. list-table::
:header-rows: 1
:widths: 30 70
* - アクション
- 用途
* - Open Puppet… / Examples ▾
- ディスクから ``.puppet`` をロード、または ``examples/puppet/`` の同梱 rig をツールバーから直接選択
* - Import PNG… / Import PSD… / Import Cubism…
- PNG の自動メッシュ、PSD のレイヤー分割、Cubism rig の sample-and-reconstruct。Cubism ファイルピッカーは ``.moc3`` と ``.model3.json`` の両方を受け付け、ワークスペースに rig が読み込まれていない場合はどちらでも完全な ``.moc3 → .puppet`` 変換が走ります(SDK はユーザー提供)。rig が既にある状態で ``.model3.json`` を選んだ場合は、JSON メタデータ(motions / expressions / physics)をアクティブドキュメントへマージします
* - Save As…
- 現在の rig を ``.puppet`` zip に書き出し
* - Add Rotation Deformer / Add Warp Deformer / Add Parameter
- ツールバーから rig をオーサリング
* - Drag-track head
- カーソルオフセット → ``ParamAngleX`` / ``ParamAngleY`` + ``ParamEyeBallX`` / ``ParamEyeBallY``
* - Auto-blink
- ``ParamEyeLOpen`` / ``ParamEyeROpen`` で約 4.5 秒ごとの cosine close→open(force-write パスで canvas の no-change-skip をバイパスし、他のドライバに邪魔されない)
* - Mic lip-sync
- マイク RMS → ``ParamMouthOpenY``(``sounddevice`` 必要)
* - Webcam tracking
- MediaPipe Tasks API FaceLandmarker → 頭の yaw / pitch / roll + 目 + 口(``opencv-python`` + ``mediapipe`` 必要;検出ランドマーク表示のリアルタイムプレビュー dialog 起動)
* - Auto idle / Idle motions
- 標準パラメータの呼吸 + ドリフト、加えて Idle グループモーションのランダムサイクラー
* - Edit mesh
- canvas 上の頂点をドラッグしてメッシュ微調整
* - Record motion
- パラメータ変化を新しい ``Motion`` に録って文書に追加 — take ベイク、手動キーオーサリング不要
* - Capture frame… / Record… / Export all motions…
- 単一 PNG、GIF / WebM / MP4 録画トグル、各モーションを個別ファイルにバッチレンダリング(すべて配信と同じキャラクター単独 off-screen render パス使用)
* - Output > Virtual camera / NDI output
- ライブ配信サーフェス — 上記「OBS ライブ配信」参照
* - Reset to rest
- モーションプレイヤー即停止、すべてのライブドライバオフ、表情 / ポーズグループクリア、パラメータをデフォルトに復元
* - Fit to Window
- canvas で rig を再センタリング + 再スケール
オプション依存
^^^^^^^^^^^^^^
* ``sounddevice`` — リップシンク用マイク
* ``opencv-python`` + ``mediapipe`` — ウェブカメラ顔追跡
* ``imageio-ffmpeg`` — MP4 / WebM 録画(既にスライドショー動画用に同梱)
* ``pyvirtualcam`` — 仮想カメラ出力(「OBS ライブ配信」参照)
* ``ndi-python`` — NDI 出力(「OBS ライブ配信」参照)
* ユーザー提供 Cubism Native SDK DLL — ``.moc3 → .puppet`` 変換(Live2D Free Material License により再配布不可;``/sdk/`` に置くか ``CUBISM_CORE_DLL`` 環境変数を設定)
不足時は優雅にフォールバック — 該当ツールバートグルが自動オフになり、"install " ヒントを表示。**File > Install dependencies…** ですべての Python オプションパッケージを一括インストール。
----
デスクトップペットワークスペース(Desktop Pet タブ)
----------------------------------------------------
タブ 5 — **Desktop Pet** は、任意の ``.puppet`` キャラクターを、フレームレスで透明なオーバーレイとしてデスクトップに表示します。タブ自体はコントロールパネルであり、実際のキャラクターは独立したトップレベルウィンドウとして、Puppet ランタイム全体(モーション、表情、物理、アイドルドライバ、マイク / ウェブカメラ入力)を共有しています。ペットはクリックに反応したり、タイマー駆動のアニメーションを再生したり、カーソルを追いかけたり、他のアプリがフルスクリーンのときに隠れたり、JSON ファイルで書いた独自のセリフを話したりできます。
本章はこのタブの完全なリファレンスです。章は次のように構成されています。
#. **クイックスタート** — 「Imervue を開いたばかり」から「デスクトップにパペットがいる」までの 5 ステップ。
#. **rig の読み込み** — ファイルピッカー、同梱サンプル、起動間の復元。
#. **オーバーレイウィンドウ** — ウィンドウレベルのすべての挙動(ドラッグ移動、エッジスナップ、クリックスルー、アンカーロック、常に最背面、フルスクリーン時非表示、非表示時一時停止、不透明度、サイズ、マルチモニター復元)。
#. **インタラクションモデル** — 左クリックのヒットエリア、右クリックコンテキストメニュー全体、システムトレイ。
#. **ライブドライバ** — 6 つのオプトイン入力ドライバと、それぞれのオプション依存。
#. **ペットスクリプト** — ペットの声を自分のセリフで置き換え、リマインダーをスケジュールし、ヒットエリア / モーションごとに応答をバインドするための JSON ファイル。
#. **永続化** — 起動間に記憶される項目と、設定スキーマの詳細。
#. **新しいペットの作成** — Puppet タブと ``.puppet`` ファイル形式へのポインタ。
#. **トラブルシューティング** — よくある驚きと対処法。
クイックスタート
^^^^^^^^^^^^^^^^
1. **Desktop Pet** タブに切り替えます。
2. **Load bundled March 7th** をクリックして同梱キャラクターを使うか、**Open Puppet…** で自分の ``.puppet`` ファイルを選びます。
3. オーバーレイがデスクトップに現れ、**Show pet on desktop** チェックボックスが自動的にオンになります。(Imervue を閉じずにペットだけ隠したいときは、このチェックを外すか、システムトレイアイコンを使ってください。)
4. キャラクターを好きな位置までドラッグします。画面端の近くで離すと、その端にぴったりスナップします。
5. **Live drivers** — アイドル呼吸、まばたき、カーソル追従、マイクリップシンク、ウェブカメラトラッキング — を、ワークスペースタブまたはペットの右クリックメニューから選びます。
設定はすべて次回起動時も保持されるので、ステップ 5 は rig / ペルソナごとに一度だけ決めればよい設定です。
rig の読み込み
^^^^^^^^^^^^^^
タブには 3 つの読み込み経路があります。
* **Open Puppet…** — ディスク上の任意の ``.puppet`` ファイルを選びます。
* **Load bundled March 7th** — ``examples/puppet/march_7th.puppet`` 配下に同梱されている rig を開きます。リゾルバはまず ``examples_dir()`` を検索し(パッケージ化された Nuitka / pip インストール版でも安全)、リポジトリルート相対のフォールバックも行うので、どちらの実行モードでも動作します。
* **Last rig** — 前回読み込んだ rig は、設定の ``last_rig_path`` フィールドから Imervue 起動時に自動復元されます。Desktop Pet タブはオーバーレイを目に見えない形で再生成するので、前回終了時と同じ状態からワンクリックでペットを再表示できます。
読み込みに成功すると **Show pet on desktop** が自動的にオンになり、ペットが即座に現れます。失敗した場合はチェックボックスはそのままで、エラーがタブのステータスラベルに表示されます。
オーバーレイウィンドウ
^^^^^^^^^^^^^^^^^^^^^^
キャラクターは Imervue メインウィンドウとは別のトップレベルウィンドウに存在します。このウィンドウはフレームレスでタスクバーエントリを持たず、(デフォルトでは)他のすべてのウィンドウの上に表示されます。
.. list-table:: ウィンドウの挙動
:header-rows: 1
:widths: 28 72
* - 挙動
- 詳細
* - フレームレスオーバーレイ
- ウィンドウ装飾なし、最小化 / 閉じるボタンなし、タスクバーエントリなし。キャラクター自体が可視サーフェスのすべてです。
* - 透明背景
- キャラクターが覆っていない部分は完全に透明です。背後のデスクトップ / アプリがピクセル単位でそのまま透けて見えます。
* - ドラッグ移動
- 本体のどこでも左クリックで押し、ドラッグして離します。カーソルの移動が 6 ピクセル未満ならクリックとして認識され、それ以上動かすとジェスチャは移動として扱われ、クリックハンドラは発火しません。
* - エッジスナップ
- 画面端の近く(デフォルト: 24 px 以内)で離すと、ペットがその端にぴったり「カチッ」と吸着します。しきい値は 0(オフ)から 200(非常に粘着)まで設定可能です。スナップは軸ごとに独立して動作するので、コーナーへドラッグすれば両端に同時にドックします。
* - 行き過ぎクランプ
- 画面端を超えた位置で終わったドラッグは内側にクランプされます。掴み直せないオフスクリーンにペットを置き去りにすることはできません。
* - クリックスルーモード
- 有効にすると、すべてのマウスイベントがペットを通過して背後のものに渡ります。キャラクターは表示されたままですが、ドラッグも右クリックもモーション発火もできません。純粋に装飾として置いておきたいときに使います。
* - 位置ロック
- クリックスルーに影響を与えずにドラッグ移動を無効化します。ペットをちょうど良い位置に置き、誤ドラッグで動かしたくないときに便利です。
* - 常に最背面
- ペットを常に最前面から常に最背面に切り替えます。ペットは他のすべてのウィンドウの後ろにデスクトップウィジェットのように座ります。フォーカス受け入れフラグも解除されるので、ペットをクリックしてもウィンドウが浮上しません。
* - フルスクリーン時に非表示
- 1 Hz のバックグラウンドポーリングが、ペットのいるモニターの最前面ウィンドウを監視します。そのウィンドウが画面の 99% 以上を、エッジごとの許容 4 px 以下で覆っているとき(真のフルスクリーンとボーダーレスウィンドウのゲームの両方をキャッチ)、ペットは自動的に隠れます。フルスクリーンが終わるとペットは元の位置に戻ります。検出は Windows では Win32 ``GetWindowRect`` API を使用し、macOS / Linux ではグレースフルに何もしません(ペットは表示されたままになります)。
* - 非表示時に一時停止
- 約 30 FPS の描画ティックと 1 Hz のスクリプトティックの両方が ``hideEvent`` で停止するので、隠れているペットの CPU コストはゼロです。次の ``showEvent`` で再開します。
* - サイズプリセット
- Small(200 × 300)、Medium(320 × 480)、Large(480 × 720)。ペットは現在の中心を基準にリサイズされるので、サイズ変更でペットが移動することはありません。リサイズ後にスナップが再実行されます。
* - 不透明度スライダー
- 10 〜 100%。``setWindowOpacity`` 経由でウィンドウレベルで作用するので、テクスチャだけでなくペット全体がフェードします。最低 10% の下限は、ペットを常に見て掴めるように設定されています — 完全に不可視にするとペットを見失う恐れがあるためです。
* - 位置メモリ
- リリースごとのスナップ後の ``(x, y)`` が永続化されます。次回起動時、ペットはその画面座標に戻ります。保存された位置が接続中のどのスクリーンの範囲にも入らなくなった場合(前回起動以降にモニターを抜いたなど)、ペットはプライマリースクリーンの右下隅にフォールバックします。
インタラクションモデル
^^^^^^^^^^^^^^^^^^^^^^
ペットは 3 つの独立したチャンネルでマウス入力に応答します。
**本体を左クリック**
クリック位置はパペットキャンバス座標に逆マッピング(キャンバスのパン / ズームを元に戻す)され、既存の ``hit_test`` パイプラインを通ります。結果に応じて以下のように動作します。
#. ``HitArea`` がクリックされた drawable を覆っており、かつそのエリアにモーションが結びついていれば、そのモーションが再生されます。
#. モーションが再生されたかどうかに関わらず、ペットがスピーチバブルを出すことがあります — セリフ選択の優先順位については *ペットスクリプト* セクションを参照してください。
#. ヒットエリアがクリックを覆っていない場合、ペットは挨拶(スクリプトの ``greetings`` リスト、または組み込みフォールバック)にフォールバックします。
ドラッグ移動ジェスチャはクリックハンドラを抑制するので、ペットを動かしてもモーション / セリフは発火しません。
**本体のどこでも右クリック**
次のような構造のコンテキストメニューが開きます。
* **Hide pet** — オーバーレイを閉じるトップレベルアクション。
* **Live drivers** サブメニュー — 6 つのチェック可能なトグル(Auto idle、Idle motions、Auto-blink、Drag-track head、Mic lip-sync、Webcam tracking)。チェック状態はライブドライバの状態を反映するので、メニューを見れば現在動いているものがわかります。
* **Play motion** サブメニュー — アクティブな rig の ``document.motions`` リストから生成されます。エントリを選ぶとそのモーションが再生されます(スクリプトがそのモーションにセリフを結びつけていればペットの声も発火することがあります)。
* **Apply expression** サブメニュー — rig の ``document.expressions`` から生成されます。選択すると表情のパラメータオーバーレイをトグルします。
* 5 つのトップレベルチェック可能トグル: **Lock position**、**Click-through**、**Always on bottom**、**Hide on fullscreen**、**Speech bubble** — ワークスペースタブと同じトグルへのクイックアクセス。
* **Size** サブメニュー — Small / Medium / Large。現在のプリセットにチェックが入ります。
rig が読み込まれていないときはモーション / 表情サブメニューは無効化されます。
**システムトレイアイコン**
トレイアイコン(トレイをサポートしているプラットフォームでのみインスタンス化)は、最もよく使うアクションの 4 つ目のサーフェスを提供します。
* 左クリックでペット表示をトグル。
* 右クリックで **Show pet**(チェック可能)、**Click-through**、**Open puppet…**、**Hide pet** のメニューが開きます。
* チェック可能な Show / Click-through 項目は ``sync_visibility`` / ``sync_click_through`` 経由でワークスペースのチェック状態をミラーするので、ユーザーがどのスイッチを切り替えても同期が保たれます。
ライブドライバ
^^^^^^^^^^^^^^
各ライブドライバは初回有効化時に遅延生成されるので、休止中のペットは決してオンにしないドライバのタイマー / スレッドコストをゼロに保ちます。各ドライバの状態は永続化されており、オンにして Imervue を閉じ、再起動すると、同じドライバが動いた状態でペットが再オープンします。
.. list-table::
:header-rows: 1
:widths: 22 50 28
* - ドライバ
- 何をするか
- オプション依存
* - **Auto idle**
- 標準パラメータ(``ParamBreath`` など)への呼吸 + ささやかなドリフトで、他に何もアニメーションしていなくてもキャラクターが生きているように見えます。
- なし
* - **Idle motions**
- rig の ``Idle`` グループから数秒おきにモーションをランダムに選んで再生します。現在モーションが再生中なら停止します。
- なし
* - **Auto-blink**
- 約 4.5 秒ごとに、滑らかなコサインカーブで目を閉じて開きます。ドライバはパラメータを強制書き込みするので、他の目の開閉値に触れるドライバがまばたきを抑制することはありません。
- なし
* - **Drag-track head**
- カーソルがペットの外にあっても、頭 + 目がグローバルカーソル位置に向かって動きます。``ParamAngleX`` / ``ParamAngleY`` / ``ParamEyeBallX`` / ``ParamEyeBallY`` を駆動します。
- なし
* - **Mic lip-sync**
- マイクの RMS 振幅が ``ParamMouthOpenY`` を駆動します。
- ``sounddevice``
* - **Webcam tracking**
- MediaPipe FaceLandmarker が約 30 FPS でウェブカメラを読み取り、頭のポーズ + 目の開閉 + 口の開閉パラメータを駆動します。小さなライブプレビューウィンドウが開くので、カメラが顔を捉えているかを確認できます。
- ``opencv-python`` + ``mediapipe``
オプション依存の 2 つのドライバはグレースフルに劣化します。必要なパッケージがインストールされていない場合、チェックボックスをトグルしても跳ね返ってオフに戻り、ワークスペースのステータスラベルに「install sounddevice」/「install opencv-python + mediapipe」のヒントが表示されます。
ペットスクリプト — カスタムボイスとスケジュールイベント
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ペットのスピーチバブルは、タブの **Pet script** グループから作成・読み込みできる JSON ファイルから引かれます。スクリプトは次の 4 つを制御します。
* **挨拶(Greetings)** — より具体的なものがマッチしないときのデフォルトクリックセリフ。
* **ヒットエリア応答(Hit-area responses)** — ``HitArea.id`` ごとのセリフバケット。
* **モーションセリフ(Motion lines)** — モーション名ごとのセリフバケット。ペットがそのモーションを開始したとき(ヒットエリアからでもコンテキストメニューからでも)に発火します。
* **スケジュールチャイム(Scheduled chimes)** — モノトニックなウォールクロックの ``every_seconds`` 秒ごとに発火する、タイマー駆動のセリフ。
スキーマ(バージョン管理されており、将来のフィールドは前方互換):
.. code-block:: json
{
"version": 1,
"name": "March 7th — playful voice",
"greetings": [
"Hi!", "Hello hello!", "Need a break?"
],
"hit_responses": {
"HitAreaHead": ["Hey, my head!", "Stop poking!"],
"HitAreaBody": ["Hehe~", "Pat pat?"]
},
"motion_lines": {
"wave": ["Hi!", "Hello!"],
"curtsy": ["Cheers!"]
},
"scheduled": [
{"every_seconds": 1800, "messages": ["Stretch break!"]}
]
}
読み込みルール:
* リストはバケットごとにラウンドロビンでサンプリングされるので、同じセリフが連続して表示されることはありません。
* 不明なトップレベルキーは無視されます(前方互換 — 将来の v2 ファイルでも v1 ランタイムで読み込めます)。
* 不正なリストエントリ(型が違う、不正な形式のスケジュールエントリ、ゼロまたは負の ``every_seconds``)はスキップされます — 1 行の不正で読み込み全体が失敗することはありません。完全にパース不能な JSON のみがエラーを送出し、パスがステータスラベルに表示されます。
* ヒットエリア / モーション / 挨拶のカスケードは階層化されています。左クリックはまず ``hit_responses[area.id]`` を参照し、次に ``motion_lines[area.motion]``、次に ``greetings``、最後に下限として組み込みのデフォルト挨拶セットを参照します。
* 時間追跡には ``time.monotonic`` を使うので、ノート PC をサスペンドしたりシステム時計を飛ばしたりしても、キューに溜まったイベントが一気に発火することはありません。
**Reset to default** はユーザースクリプトを破棄し、組み込みの挨拶セットに戻します。永続化されていたスクリプトパスもクリアされるので、次回起動時に再読み込みされません。
動作するサンプルが ``examples/desktop_pet/march_7th.petscript.json`` にあります — 挨拶 6 件、ヒットエリアバケット 2 つ(head / body)、モーションセリフ 3 つ(wave / curtsy / cheer)、30 分間隔のストレッチリマインダーが入っています。
永続化
^^^^^^
すべての Desktop Pet 状態は ``user_setting_dict["desktop_pet"]``(標準 Imervue ユーザー設定ファイル内のスロット)を経由してラウンドトリップします。各フィールドには読み込み時のデフォルト + 範囲クランプがあるので、設定ファイルが壊れていても起動がクラッシュすることはありません。
.. list-table:: 永続化フィールド
:header-rows: 1
:widths: 28 18 54
* - フィールド
- デフォルト
- 備考
* - ``last_rig_path``
- ``""``
- ファイルがまだ存在すれば起動時に自動復元されます。
* - ``script_path``
- ``""``
- スクリプトがまだパースできれば起動時に自動復元されます。読めないスクリプトは静かにデフォルトに戻ります。
* - ``position``
- ``[-1, -1]``
- 最後のドラッグリリース時の画面座標 ``(x, y)``。``-1, -1`` は「プライマリースクリーンの右下を使う」という意味です。セッション間でのマルチモニターのアンプラグも同じ方法でフォールバックします。
* - ``size_preset``
- ``"medium"``
- ``small`` / ``medium`` / ``large`` のいずれか。
* - ``opacity``
- ``1.0``
- ``[0.1, 1.0]`` にクランプされます。範囲外の値はデフォルトにリセットされます。
* - ``click_through``
- ``false``
-
* - ``anchor_locked``
- ``false``
-
* - ``always_on_bottom``
- ``false``
- 常に最前面とは相互排他です。
* - ``hide_on_fullscreen``
- ``true``
- フルスクリーン中もペットを表示しておきたい場合は ``false`` に設定してください。
* - ``snap_threshold``
- ``24``
- ``[0, 200]`` px にクランプされます。
* - ``drivers``
- すべて ``false``
- ドライバ ID をキーとするサブ辞書(``auto_idle``、``idle_motion``、``auto_blink``、``drag_track``、``mic_lipsync``、``webcam_tracking``)。不明なキーは前方互換のためそのままラウンドトリップします。
* - ``show_on_launch``
- ``false``
- Imervue 起動時にオーバーレイを自動表示します。
* - ``speech_enabled``
- ``true``
- false のときスピーチバブルは表示されません。
設定辞書のマージ動作は 1 階層深さです。新しいキーが欠けている古い設定ファイルでも完全な状態辞書が読み込めます(デフォルトが穴を埋めます)。保存した新しいキーは、それを知らない古いランタイムへのダウングレードでも生き残ります。
新しいペットの作成
^^^^^^^^^^^^^^^^^^
どんな ``.puppet`` ファイルでも Desktop Pet キャラクターとして動作します — Desktop Pet タブは純粋にレンダラ + インタラクションシェルで、rig のオーサリングは Puppet タブで行います(*Puppet ワークスペース(Puppet タブ)* を参照)。
自分のペット rig を作るには:
#. Puppet タブに切り替えて、**File > Import PNG…** または **File > Import PSD…** で原画をインポートするか、**File > Import Cubism…** で Cubism モデルを取り込みます。
#. 回転 / ワープデフォーマ、パラメータ、モーション、表情、(オプションで)Desktop Pet の左クリックハンドラでモーションを発火できるように、ボディパーツに紐付いたヒットエリアを作成します。
#. **File > Save As…** で rig を ``.puppet`` zip として保存します。
#. Desktop Pet タブに戻り、**Open Puppet…** で新しいファイルを読み込みます。
rig が ``HitArea`` エントリを定義していれば、``hit_responses`` キーがエリア ID と一致するような ``.petscript.json`` でヒットエリアごとのスピーチバブルセリフを作成できます。
トラブルシューティング
^^^^^^^^^^^^^^^^^^^^^^
**ペットが完全に透明にならず、灰色の長方形の中に表示されます。** OS レベルの半透明背景属性には、アルファ対応の GL サーフェスと、埋め込まれた GL ウィジェット上の対応する属性が必要です。サードパーティーのウィンドウ管理ツールがオーバーレイウィンドウの ``WA_TranslucentBackground`` 属性を上書きしていないか確認してください(Linux のカスタムウィンドウマネージャの一部はこれを行います)。Windows / macOS では「そのまま動く」はずです。
**「Load bundled March 7th」がファイルが見つからないと報告します。** リゾルバはまず ``examples_dir()``(パッケージ化ビルドが使用するフローズン対応の場所)を参照し、CWD 相対パスにフォールバックします。どちらにも rig が含まれていない場合、ステータスラベルに期待されるパスが表示されます。インストール時に同梱されている ``examples/`` ディレクトリを確認してください — ソースチェックアウトの場合はリポジトリのルートから Imervue を起動してください。
**クリックしてもペットが話しません。** 3 つのチェック:
#. **Speech bubble on click** トグルがオンになっていることを確認してください(タブまたは右クリックメニュー)。
#. カスタムスクリプトを読み込んだ場合、JSON がパースできることを確認してください — タブのステータスラベルに読み込みエラーが表示されます。
#. ヒットエリアのクリックで何も起こらなかった場合、おそらくそのエリアにマッチするモーションがなく、かつそのエリア ID に対するスクリプトの ``hit_responses`` エントリもないということです。Puppet タブでエリアにモーションをバインドするか、スクリプトの ``hit_responses`` にエリア ID を追加してください。
**ウェブカメラトラッキングのチェックボックスが跳ね返ってオフに戻ります。** ウェブカメラトラッキングには ``opencv-python`` と ``mediapipe`` が、Imervue が動いているのと同じ Python 環境にインストールされている必要があります。``pip install opencv-python mediapipe`` でインストールしてください。インストール後にチェックボックスをトグルすると、検出された顔のランドマークを表示する小さなプレビューウィンドウが表示されるはずです。
**フルスクリーンアプリ中にペットが自動的に隠れません。** フルスクリーン検出器は最前面ウィンドウを 1 Hz でポーリングします。Windows では ``GetWindowRect`` Win32 API を使用します。macOS / Linux では信頼できるクロスプラットフォーム相当機能がないため、何もしません(ペットは表示されたままです)。Windows の場合: **Hide when other app is fullscreen** がチェックされていることを確認し、フルスクリーンウィンドウが実際にペットと同じモニターの 99% 以上を覆っていることを確認してください。
**起動間でペットの位置が画面外にドリフトします。** これは、ペットがいたスクリーンが次回起動時にもう接続されていないとき(ノート PC のドック、セカンドモニターを抜いたなど)に発生します。この場合、ペットは自動的にプライマリースクリーンの右下隅にフォールバックします — 好きな位置にドラッグすれば、次回保存時にその古い位置が上書きされます。
----
コマンドライン
--------------
::
imervue # 通常起動
imervue /path/to/image # 指定した画像を開く
imervue /path/to/folder # 指定したフォルダを開く
imervue --debug # デバッグモードを有効化
imervue --software_opengl # ソフトウェアレンダリングを使用(GPU 非対応時)