# Pli — Blender転送パッケージ、バージョン1.0.0

RenderParcelによるオリジナルスタディ：紫のセラミック製フラコン、サテン仕上げのオレンジのカラー、シェブロン柄の紙ラベル、粘土の台座。構図は左側に余白を設けたプロダクト写真を想定しています。クライアントのオブジェクトでも、写真から再現したモデルでもありません。

## ダウンロードに実際に含まれるもの

このパックが提供するのは**シーンジェネレーター**、オリジナルテクスチャ、レシピ、検証用の仕組みです。準備環境では`.blend`ファイルもBlenderレンダリングも生成されていません。そこにBlenderは見つかりませんでした。実施した検証はファイル、パス、PNG、Python構文、依存関係のエラーを対象としています。`VALIDATION.md`をお読みください。

再構築のターゲットは**Blender 4.5.x LTS**で、その内蔵PythonとCyclesを使用します。想定された互換性を検証済みと誤認させないため、スクリプトは他のブランチを拒否します。外部Pythonモジュール、Blender拡張機能、フォント、HDRI、モデルは不要です。フォルダのチェックには独立したPython 3.10+で十分です。付属のテストはWindows上のPython 3.14.6で実行しました。

## ディレクトリ構成とエントリーポイント

```text
blender-v1/
  README.md, LICENSE.txt, VALIDATION.md
  scene.json                    レシピ、バージョン、依存関係、出力
  manifest.sha256.json          配布ファイルのサイズとSHA-256
  generate_scene.py             Blender内で起動するエントリーポイント
  inspect_scene.py              2つ目のBlenderでの検証用オープン
  validate_pack.py              Blenderなしでのファイルチェック
  01_sources/make_texture.py    PNGのオリジナルレシピ
  02_projet/                    再構築された.blendの保存先
  03_ressources/pli-chevron.png  保持すべきsRGBテクスチャ
  04_caches/                    この固定シーンにはキャッシュなし
  05_rendus/                    要求された場合のCPUプレビューの保存先
  06_livraison/                 実行後の受領書とレポート
```

マニフェストは配布ファイルを対象とし、循環ハッシュを避けるため自身は除外しています。その後に生成される出力はこのマニフェストに含まれません。ハッシュはファイルの差異を検出するもので、その由来や外観を証明するものではありません。ご自身の納品には、承認された出力を含む日付入りの新しいインベントリを作成してください。

## 1. Blenderを開く前に展開と検証を行う

ZIPを新しいフォルダに展開し、`blender-v1`のルートでターミナルを開きます。まだ圧縮されたアーカイブの内部からコマンドを実行しないでください。

```sh
python validate_pack.py --root . --json
```

結果に`"ok": true`が含まれ、終了コードが0である必要があります。ファイルの欠落、改変、フォルダ外、または無効なPNGは失敗（コード1）となります。チェックが失敗したらここで停止してください。エラーを隠すためだけにマニフェストを書き換えないでください。

Windowsでは`py -3`が`python`の代わりになります。以下の`blender`はお使いのBlender 4.5.x実行ファイルを指す必要があります。そのフォルダがPATHにない場合は、引用符で囲んだフルパスを使用してください（PowerShellではそのパスの前に`&`を付けます）。

## 2. 専用のBlenderプロセスで再構築する

スクリプトはメモリ内に空のシーンを再作成します。保存されていないプロジェクト内では実行しないでください。展開したフォルダから：

```sh
blender --background --factory-startup --python-exit-code 1 --python generate_scene.py -- --render-preview
```

このコマンドは以下を生成する必要があります：

- `02_projet/renderparcel_pli_v1.blend`：固定シーン、画像1、カメラ`Pli_Camera`、Cycles CPU、1 200 × 750ピクセル、64サンプル；
- `05_rendus/pli_controle_cpu.png`：**レンダリングが成功した場合**、480 × 300ピクセル、16サンプル、ノイズ除去なしのCPUプレビュー；
- `06_livraison/reconstruction.json`：実際に使用されたBlenderのバージョン、オブジェクト、選択されたデバイス、実際のレンダリング状態。

`.blend`のみを構築するには`-- --render-preview`を削除します。その場合レポートには`renderExecuted: false`と表示されます。スクリプトは縮小計算の前に作業定義の状態でシーンを保存するため、`.blend`がプレビュー設定で上書きされることはありません。コマンドがGPUを起動することはありません。

既存の出力は拒否されます。新しい試行には、保持したい結果を上書きするのではなく、パックを別のフォルダに再度展開してください。例外は`--python-exit-code 1`によってシステムに通知されます。失敗した場合はターミナルのメッセージを保存してください。

## 3. 2つ目のプロセスでシーンを再度開く

```sh
blender --background --factory-startup --python-exit-code 1 --python inspect_scene.py
```

このチェックは `.blend` をその内部スクリプトを実行せずに開き、10個のオブジェクト、カメラ、Cycles CPU、各種設定、1フレームの範囲、AgX、埋め込まれたテクスチャとその相対パスを検証します。結果は `06_livraison/inspection-blender.json` に出力されます。このチェックは画像の美しさを評価するものではなく、その確認に代わるものでもありません。

次に PNG を画像ビューアで開きます。`06_livraison/modele-reception.csv` を新しいファイル `06_livraison/reception-executee.csv` に**コピー**し、そのコピーに記入します。フレーム内にボトル全体が収まっているか、前面にクリーム/紫/オレンジの模様があるか、台座と接触しているか、マゼンタのテクスチャが存在しないか、反射が判別できるか。モデルはその指紋を保つため変更しません。記入済みのコピーは、あなた自身の納品物に含めるべき出力です。これらの基準は再構築後に確認すべき意図であり、配布版に Blender の参照レンダリングは含まれていません。

## 4. 旧リソースなしで転送を検証する

**再構築したフォルダ全体**を、制作マシンのパスにアクセスできない宛先マシンまたは環境にコピーします。ファイルチェックを実行してから、`.blend` のコピーを開きます。旧絶対パスが引き続き利用可能な場合、同じマシン上での単純な移動では不十分です。

外部テクスチャは `03_ressources` に保持されています。`.blend` 内では、`02_projet` にある Blender ファイルからの相対パスであるため、`//` は `//../03_ressources/pli-chevron.png` を指します。ジェネレーターはテクスチャを読み込み、保存前に `Image.pack()` で埋め込みます。この2つの形式により、埋め込みを制御しつつソースを変更できます。変更後は再読み込み/埋め込みを行い、採用するバージョンを保存します。

既存のプロジェクトの場合：対象フォルダに保存し、File → External Data → Make Paths Relative を使用し、Report Missing Files を実行します。Find Missing Files はリンクを修復できますが絶対パスにしてしまうため、再度確認します。Pack Resources はすべての外部データを含むわけではなく、特に動画は含まれません。リンクされたライブラリには独自の手順が必要ですが、このパックでは一切使用していません。

## 5. レシピを自分のプロジェクトに合わせる

ソースを変更すると元のマニフェストが無効になるため、まず別のコピーから始めます。ソフトウェア/バージョン、カメラ、シーン、エンジン、解像度、サンプル数、表示変換、テクスチャ、拡張機能、出力先を独自の一覧にまとめます。パックの PNG は sRGB のベースカラーであり、ノーマルマップやディスプレイスメントマップではありません。

このシーンは**アニメーション、シミュレーションキャッシュ、音声、フォント、リンクされたライブラリを一切使用していません**。煙、布、アニメーションするジオメトリを追加する場合は、キャッシュの種類、その場所、全フレーム範囲、プリ計算の手順を一覧化します。コピーする前にキャッシュを確定させます。中間フレームとシーケンスの各ファイルを確認します。1フレーム目が正しくてもアニメーションが検証されたことにはなりません。

ZIP のサイズはレンダリングの VRAM を表しません。縮小した CPU プレビューでは GPU 時間を見積もれません。制作の規模を見積もるには、最終解像度でシーン全体を測定し、要求の厳しいステップに余裕を持たせてメモリピークを確認します。納品まで独立したバックアップを保持します。

## テクスチャの再構築（任意）

```sh
python 01_sources/make_texture.py --output 05_rendus/motif-reconstruit.png
```

模様の計算は決定論的で、整数演算のみを使用します。公開されたテストでは、再構築された PNG のバイト列は同じ zlib ライブラリで納品ファイルと一致しました。圧縮バージョン間では、圧縮バイト列が同一と仮定せず、ピクセルも比較してください。

## 手順の出典

- [Blender 4.5 マニュアル、組み込みデータ](https://docs.blender.org/manual/sr/4.5/files/blend/packed_data.html)：Pack Resources の範囲、保存、リンクされたライブラリ。
- [Blender 4.5 マニュアル、External Data](https://docs.blender.org/manual/ja/4.5/interface/window_system/topbar.html)：相対パスと見つからないファイルの検索。
- [Blender 4.5 API、Wm Operators](https://docs.blender.org/api/4.5/bpy.ops.wm.html)：内部スクリプトを無効にした状態での保存と開く操作。
- [Blender 4.0 API、Image](https://docs.blender.org/api/4.0/bpy.types.Image.html)：外部/組み込み画像と `pack` 操作。参照可能なリファレンスを確認済みで、この準備中は 4.5 のページにアクセスできませんでした。
- [Blender 4.5 マニュアル、コマンドライン](https://docs.blender.org/manual/es/4.5/advanced/command_line/arguments.html)：スクリプトの実行と Python の終了コード。
- [Blender 4.5 マニュアル、カラーマネジメント](https://docs.blender.org/manual/sr/4.5/render/color_management.html)：テクスチャの解釈と表示変換。
- [Blender 4.5 マニュアル、ベイク](https://docs.blender.org/manual/fr/4.5/physics/baking.html)：キャッシュとシミュレーション範囲の個別処理。

英語ページが応答しなかった場合は公式翻訳を使用しています。これらは操作を文書化するものであり、実行が必要な Blender での検証に代わるものではありません。商用リンクと GPU の選択は技術的なレシピではなく、RenderParcel ガイドに記載されています。

## 以前のフォルダーとの互換性

新しい再構築では `02_projet/renderparcel_pli_v1.blend` が保存されます。既に作成されたファイルは移動も名前変更もされません。この新しい出力が存在しない場合、`inspect_scene.py` は引き続き従来の出力名である `02_projet/prismora_pli_v1.blend` を開くことができます。両方のファイルが存在する場合、検査では新しい出力が選択されます。

スキーマ識別子 `prismora.blender-transfer.v1` と `prismora.integrity.v1`、技術プロパティ `prismora_pack_version` と `prismora_purpose`、および内部モジュール名 `prismora_validator` は、v1 フォルダーの読み取りのために安定したままです。これらは互換性キーであり、フォルダーの表示ブランドではありません。
