# 3Dモデル - 小道具＆NFT

### はじめに

Bit.Countryプラットフォームでの新しいNFTやその他のアセットの作成は簡単で、通常はいくつかのフィールドに入力し、3Dファイルをアップロードすることで完了します。

新しいNFTは、提供されるウェブインターフェースを通じてプラットフォーム上に作成することができ、コレクションの作成、NFTの一括作成、メタデータの追加などをプロセス中に行うことができます。NFTは様々な形式のメディアで構成されます。このマニュアルのNFTの項を参照してください。

小道具（NFT 以外のアセット、将来的に変更される可能性があります）は、現在 world's build menu 内からアップロードします。NFT のミンティングプロセスと比較すると、メタデータは非常に少なくなっています。

{% hint style="info" %}
また、ロードマップの後半では、小道具の作成プロセスを分離して、よりカスタマイズしやすくすることも検討しています。
{% endhint %}

## 資産形成のための基礎知識

3Dモデルの場合、可能な限りファイルサイズと複雑さを最小化することが目標です。BITコストは、より大きく、より多くのリソースを必要とするファイルほど高くなります。モデルのpolycount、マテリアルの数、総体積、テクスチャの解像度が高いほど、配置時のBITコストが高くなります。

polycountの予算は主観的なもので、作成したいアセットとメタバースで表示したいサイズに依存します。小さなフィギュアを作る場合、polycountとテクスチャサイズを同様に低くする必要があります。同様に、より大きなスタチューやスタジアムであれば、十分なディテールを確保するために、より高いpolycountを期待することになります。

### おすすめポイント

より小さなファイルサイズと BIT コストを維持しながら最良の結果を得るために、テクスチャや法線マップなどに（適切であれば）詳細を加えるといった一般的な方法を利用します。テクスチャをタイル状にする／UV をスタックすることで、テクスチャに関連するファイルサイズを削減しながら、素晴らしい結果を得ることができます。

{% hint style="info" %}
場合によっては、ディテールを取り込んだ低解像度テクスチャの方が、ディテールを取り込まない高ポリモデルよりも悪いということもありますので、ファイルサイズ、外観、BITコストの妥協点を見極めながら、アセットに手を加えてみてください。
{% endhint %}

プラットフォームに置かれるアセットの大半は1～2MB未満であるべきです。もし、より大きな構造や詳細な情報が必要な場合は、複数の小さなパーツに分割して世界中に配置することを検討してもよいでしょう。

{% hint style="info" %}
将来的には、より多くのユーザーがスムーズに利用できるよう、エリア内のアセット数やpolycountに制限を設ける可能性があります。
{% endhint %}

### 制限と機能

現在、最大ファイルサイズは20MBですが、このサイズを使うことはほとんどないでしょう。5MBを超えるものをアップロードしようとすると、プロップシステムがエラーを出しますし、上記のように、プロップの大部分は1〜2MB未満であるべきです。

{% hint style="info" %}
制限事項は常に変更される可能性があり、最大ファイルサイズは削減の候補となります。 polycountのhard limitは、現在これらのモデルに関連する高いBITコストに加え、検討されています。
{% endhint %}

skeletal animationを持つモデルに対応しました。現在、Vertex Animationは未対応です。

Collider meshを指定した3Dモデルについては、Collisionをサポートしています。Collider の設定方法は以下を参照してください。

### ファイル形式

現在、Bit.Countryプラットフォームは、3Dモデル用の.GLB/.GLTFファイルフォーマットのみをサポートしており、マテリアルとテクスチャを1つのファイルにまとめてエクスポートする必要があります。

GLTFの仕様には多くの拡張機能がサポートされていますが、3Dモデルを設計する際にはコア仕様に焦点を当てるのがベストです。ライトやサウンドに関する拡張機能は無効になっており、これらの拡張機能を使用したモデルはワールドに読み込まれた際に失敗する可能性があります。拡張機能の有無は変更される可能性があります。

GLB/GLTFファイルにジオメトリ圧縮（Draco圧縮）を使用することは避けてください。この機能はまだエンジンで検討されている段階です。以下のBlenderのスクリーンショットをご覧ください。

![](https://550582479-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FzaYnqyItfIslCKYBG9rg%2Fuploads%2F36M9ZmkusCaZ3M0pyTqt%2Fimage%20\(8\).png?alt=media\&token=703cf600-3632-41a9-8dc1-1e470c3b0cc2)

{% hint style="info" %}
Sandpitにある3Dモデルがどのようにロードされ、世界でどのように表示されるかを試してみてください。 Sandpitで作成されたすべての修正や 新しいPropは、あなたのブラウザ上で完全にローカルなものであり、保存されることはありません。
{% endhint %}

### 設定方法

メッシュをモデリングする際、スケールの単位としてメートルを使用します。メッシュは原点に配置するのが理想的です。

{% hint style="info" %}
メッシュの体積には、常に原点が含まれます。そのため、原点は形状と同じ一般的な領域に保つことを目指しましょう。そうでなければ、不必要なBITコストを追加することになり、アセットをWEBの中に配置することが難しくなります。
{% endhint %}

### エクスポート

Y+を上にしてエクスポートし、Z+が前方、X+が右側になるように留意してください。エクスポートする前に、デルタ変換を含むすべての変換をクリアしていることを確認してください（Blenderまたは他の場所で同等のものを使用）

アニメーションの場合は、Blender で個別の NLA ストリップとしてエクスポートするか、他のモデリング ソフトウェアで同等のものをエクスポートすると、Experience フレームワークと連携してアニメーションを再生しやすくなるため、最適です。エクスペリエンス・フレームワークが利用できるようになったら、ぜひお試しください。

## Collider Meshes

NFT と Prop で collisions を有効にするには、collider メッシュを他のメッシュと同じファイルに用意する必要があります。このメッシュは親を持たず、名前の最後に \_Collider をつける必要があります。以下の Blender のスクリーンショットの例を見てください。

![](https://550582479-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FzaYnqyItfIslCKYBG9rg%2Fuploads%2FJj0pBzWXcFSXOtpW0sKu%2Fimage%20\(9\).png?alt=media\&token=53a24218-0d63-4fcd-bd9c-f3386c4a4a72)

{% hint style="info" %}
例えば、コライダーは Tree01\_Collider や anything\_Collider と呼ばれることもあります。
{% endhint %}

このCollider Meshの構造はできるだけ単純であるべきで、多くの場合Colliderは立方体です。木、柱、フェンスなどは、Colliderを表現するために立方体を使用するのに適しています。

{% hint style="info" %}
Colliderとしてメインメッシュのジオメトリを使うことは、よほど単純なもの（立方体や箱など）でない限り、通常はありません。
{% endhint %}

Colliderはレンダリングされず、マテリアルを設定するとColliderが正しく機能しなくなる可能性があるため、マテリアルは1つ以下であることを確認してください（理想はマテリアルなし）。

{% hint style="info" %}
どのファイルにも1つ以上のコライダーメッシュがあってもかまいません。

いずれにせよ、最高の結果を得るためには、シンプルで、できるだけ少ないコライダーメッシュを持つことを目指しましょう。
{% endhint %}
