YukkuriMovieMaker4(YMM4)上で動作する、PDF読み込み・描画プラグインです。 PDF ファイルの指定ページを YMM4 の図形アイテムとして画面上に配置できます。 高品質なベクター描画モード、高速なラスター描画モード、ページ送りアニメーション、サムネイル付きの直感的なファイルセレクターを備えており、プレゼンテーション資料の動画化や、PDF 素材を活用した映像制作を強力にサポートします。
本プラグインは YMM4 の「図形」として動作する PDF レンダリングプラグインです。 PDF ファイルを選択し、表示したいページ番号や描画モードを設定することで、動画内に PDF の内容をシームレスに組み込むことができます。 ページ番号はタイムラインでアニメーション可能なため、スライドショーのようにページをめくる演出も容易に実現可能です。
| 項目 | 要件 |
|---|---|
| OS | Windows 10 / 11 (64bit) |
| YukkuriMovieMaker4 | 最新版を推奨 |
| ランタイム | .NET 10.0 |
| 依存ライブラリ | Docnet.Core 2.4.* (プラグインに同梱) |
- 配布パッケージから最新のプラグインファイル(
.ymmeまたはフォルダ一式)をダウンロードしてください。 - YMM4 が起動していないことを確認し、ダウンロードしたファイルを実行(ダブルクリック)してインストールします。
- YMM4 を起動し、タイムラインに「図形」アイテムを追加します。
- 図形の種類から 「PDF図形」 を選択してください。
Docnet.Core ライブラリを使用した正確な PDF レンダリングを行います。
内部に LocalPageBuffer と ResourceScope を用いた高度なキャッシュ・リソース管理機構を備えており、同一ファイル・ページ・スケール・描画モードの要求に対してはメモリ内のピクセルバッファを再利用することで、不要な再レンダリングを防ぎ軽量に動作します。
用途に合わせて2つの描画モードを切り替え可能です。
| モード | 説明 |
|---|---|
| ベクター (高品質) | アイテムのサイズ(VectorSize)やYMM4のZoomパラメータに合わせて、最適なスケールで PDF を都度ラスタライズします。拡大しても文字や図形がぼやけず、常に最高の品質で描画されます。 |
| ラスター (高速) | 指定した品質(RasterDpi)で PDF を一度だけラスタライズし、その画像を YMM4 の標準機能で拡大縮小して描画します。拡大時には画像が粗くなる可能性がありますが、描画負荷を低く抑えることができます。 |
WPF(PdfFileSelector.xaml)で実装された独自のファイル選択UIを搭載しています。
- ディレクトリ連動: 選択した PDF ファイルと同じフォルダにある他の PDF ファイルを自動的にリストアップします。
- 非同期サムネイル生成: リスト内の PDF ファイルの1ページ目をバックグラウンドで非同期にレンダリングし、サムネイルとして表示します。
- キャッシュ制御: サムネイル画像はメモリ上にキャッシュされ(有効期限付き)、UIのスクロールや再展開時もスムーズに動作します。
表示する「ページ番号」パラメータは YMM4 のアニメーションシステムに完全に対応しています。 タイムライン上でキーフレームを設定することで、「1秒経過で次のページに切り替える」といったスライド送りの表現が簡単に作成できます。
ローカライズファイル(.resx および .csv)を内蔵しており、YMM4 の言語設定に合わせて UI やパラメータ名が自動で切り替わります。
対応言語:日本語 (ja-jp)、英語 (en-us)、中国語簡体字 (zh-cn)、中国語繁体字 (zh-tw)、韓国語 (ko-kr)、スペイン語 (es-es)、アラビア語 (ar-sa)、インドネシア語 (id-id)
プロパティエディタで設定可能な項目は以下の通りです。
| パラメータ名 | グループ | 型 | 範囲 | デフォルト | アニメーション | 説明 |
|---|---|---|---|---|---|---|
| ファイル | - | String | - | (空) | ✗ | 描画する PDF ファイルを選択します(専用サムネイルUI付き)。 |
| ページ番号 | - | Animation | 1〜9999 | 1 | ✓ | 表示する PDF のページ番号です(1始まり)。 |
| 描画モード | - | Enum | ベクター / ラスター | ベクター | ✗ | 描画アルゴリズムを選択します。 |
| サイズ | ベクター設定 | Animation | 0〜1200 % | 100 % | ✓ | ベクターモード時の基準サイズスケールを設定します。 |
| 品質 (DPI) | ラスター設定 | Animation | 72〜800 DPI | 300 DPI | ✓ | ラスターモード時のラスタライズ解像度を設定します。 |
- タイムラインで右クリックし、アイテムの追加から「図形」を選択します。
- アイテムのプロパティパネルで、図形の種類を「PDF図形」に変更します。
- 「ファイル」プロパティの「参照」ボタンを押して、読み込みたい PDF ファイルを選択します。
- 画面上に PDF の1ページ目が表示されます。
- 「ページ番号」プロパティのスライダーを動かすか、数値を入力して表示したいページを指定します。
- アニメーションを有効(直線移動など)にし、開始フレームと終了フレームで異なるページ番号を指定すると、再生中にページが切り替わります。
- 文字をくっきり見せたい場合: 描画モードを「ベクター (高品質)」に設定し、「サイズ」または YMM4 標準の「拡大率(Zoom)」パラメータで大きさを調整してください。
- 動作を軽くしたい場合: 描画モードを「ラスター (高速)」に設定し、「品質 (DPI)」を必要な解像度(例: 72〜150)に下げてください。
- PDFレンダリング:
Docnet.Coreを用いて PDF を BGRA32 ピクセル配列としてラスタライズし、アルファ乗算(Premultiplied Alpha)処理を行ったうえで、Vortice.Direct2D1(ID2D1CommandList,ID2D1Bitmap) を通じて GPU 描画に最適化された D2D1Image を生成します(PdfRenderService,PdfShapeSource)。 - NativeLibrary の解決:
ServiceLocator内でNativeLibrary.SetDllImportResolverを利用し、実行ディレクトリ内のネイティブDLL(pdfium等)を正しくロードする仕組みを実装しています。 - UI コンポーネント:
PdfFileSelectorAttribute(継承:PropertyEditorAttribute2) により、プロパティパネルにPdfFileSelectorユーザーコントロールをバインドしています。MVVM パターン (PdfFileSelectorViewModel) により、サムネイルの排他制御 (SemaphoreSlim) やガベージコレクションを含むメモリクリーンアップ (Timerによる定期キャッシュ破棄) を実現しています。 - リソースライフサイクル:
IResourceRegistry(実装:ResourceScope) を導入し、Direct2D のアンマネージドリソースやメモリバッファの解放漏れを防ぐ設計となっています。
- 高い DPI 設定やベクターモードで極端に拡大率を上げた場合、一度に大きなピクセルバッファを生成するため、メモリ使用量とレンダリング負荷が増加します。PCのスペックに合わせて適切なサイズ・DPIに設定してください。
- ファイルセレクターのドロップダウンリストには、選択中の PDF と同じディレクトリにある PDF ファイルが自動検索されて表示されます。ディレクトリ内に大量の PDF ファイルが存在する場合、サムネイル生成処理がバックグラウンドで行われます。
- 一部のパスワード保護された PDF や、非標準的な PDF 構造を持つファイルは正常に読み込めない場合があります。
本プラグインは MIT ライセンスのもとで公開されています。
本ソフトウェアは「現状のまま」提供されており、明示・黙示を問わず、商品性、特定目的への適合性、および権利非侵害に関する保証を含む、いかなる種類の保証も行いません。
作者は、本プラグインの使用または使用不能に起因するいかなる損害についても、一切の責任を負いません。 ご利用は自己責任でお願いします。
