> ## Documentation Index
> Fetch the complete documentation index at: https://docs.facebetter.net/llms.txt
> Use this file to discover all available pages before exploring further.

# オプションリソースパック

> resource_3d.fbd や resource_body.fbd などの追加機能パックをダウンロードし、AddResourcePack で登録します

SDK には、2D 美顔、メイク、フィルター、2D ステッカー向けのコアランタイムパック `resource.fbd`（約 7 MB）が同梱されます。

一部の機能には **オプション** パックが必要です。これらのファイルは iOS / Android / Web SDK には**含まれません**。統合時に自分でダウンロードし、対応する setter の**前**に `AddResourcePack` / `addResourcePack` でそれぞれ登録してください。

| パック                 | サイズ      | 呼び出し前に必要                                                |
| ------------------- | -------- | ------------------------------------------------------- |
| `resource_3d.fbd`   | 約 9 MB   | `Set3DSticker` / `set3DSticker`                         |
| `resource_body.fbd` | 約 8.5 MB | 骨格ベースの `SetBodyReshape`（`LegStretch` / `TorsoLong` を除く） |

<Note>
  3D ステッカーとボディリシェイプには **Pro+** が必要です。Free では透かし付きで試せます。[プランと機能](./pricing) を参照してください。
</Note>

[GitHub Release](https://github.com/pixpark/facebetter-sdk/releases) からダウンロードできます（[ダウンロードページ](https://facebetter.net/ja/download) にもミラーがあります）。

## 検索の仕組み

エンジンはコアパックと、追加したすべてのパックを検索します。ファイルは**内部の相対パス**で識別されます。パック間で内部パスが重複しないようにし、機能ごとに独自のプレフィックス（`tddfa/…`、`body/…`）を付けてください。同じパスが複数のパックにある場合は、**最後の** `AddResourcePack` が優先されます。

各 `.fbd` は別々の呼び出しで登録してください。パックファイルを連結しないでください。

## デスクトップ（Windows / Linux / C++）

`resource_3d.fbd` および / または `resource_body.fbd` を `resource.fbd` と同じ場所に置きます。エンジンはその隣接ファイルを自動で読み込みます。`AddResourcePack` を明示的に呼ぶこともできます。

```cpp theme={null}
engine->AddResourcePack("resource/resource_3d.fbd");
engine->Set3DSticker("assets/stickers/3d/oculos.fbd");
engine->Clear3DSticker();

engine->AddResourcePack("resource/resource_body.fbd");
engine->SetBodyReshape(BodyReshape::WaistSlim, 0.4f);
```

## iOS / macOS / Android / Flutter / Web

モバイルおよび Web SDK はこれらのオプションパックを**内蔵しません**。**アプリ側**でファイルをコピーまたは取得し、`addResourcePack`（パスまたはバイト）を呼び出してください。

```javascript theme={null}
const pack3d = new Uint8Array(
  await (await fetch('/resource_3d.fbd')).arrayBuffer()
);
engine.addResourcePack(pack3d);
engine.set3DSticker('/stickers/3d/oculos.fbd');

const packBody = new Uint8Array(
  await (await fetch('/resource_body.fbd')).arrayBuffer()
);
engine.addResourcePack(packBody);
engine.setBodyReshape(BodyReshape.WaistSlim, 0.4);
```

2D ステッカーはこれまでどおり `setSticker` のみを使います。`addResourcePack` は機能モデル用であり、ステッカー素材用ではありません。

<Tip>
  追加パックごとに、エンジン作成後（Web では `init()` の後）に `addResourcePack` を 1 回呼び出してください。以降の 3D ステッカーやボディリシェイプは同じパックを再利用します。
</Tip>
