#author("2023-09-21T13:31:56+00:00","default:admin","admin")
#author("2023-09-21T13:37:04+00:00","default:admin","admin")
*物体 [#q1d08305]
#contents

**物体および遠景 [#mfab5af7]
建物やモニュメントなど、マップに設置する物体の追加⽅法です。
まず追加する前に、モデル、テクスチャ、モーションなど必要となるすべてのデータを、
ひとつのフォルダにまとめておきましょう。
#ref(物体.png)
#br

**追加できるファイルの形式 [#i89efb9b]
ひとつの物体は、モデル・テクスチャ・モーションの3ファイルから成り⽴っています。
これらの作成には3Dグラフィックスの専⾨知識や所定のソフトウェアが必要です。

***''1.モデル(必須)'' [#r5e05086]
• ファイル形式:FBX7.4.0(FBX2014)形式モデルデータ(*.fbx)。(Blenderならば2.83以降で作成したもの)

• バージョンは FBX7.4.0(FBX2014)のみです。現在のところそれ以外には対応していません。

• ポリゴン数の制限は設けていません。

• ポリゴンメッシュは三⾓ポリゴンにする必要があります。三⾓ポリゴン以外は正しく表⽰されません。
あらかじめ三⾓ポリゴン化を⾏うか、Bakin へモデル追加の際に最適化オプション設定を有効にして下さい。
(最適化オプションを有効にすると、⾃動的に三⾓ポリゴン化が⾏われます。)

• スケールについては仕様上、Bakin上の1グリッドのサイズ=Blenderの標準グリッドサイズの1/100となるため、
モデルエクスポート時にスケール「0.01」として出力してください。
#ref(スケール0.01.png)
#br
• 1つのモデルに対し、複数のマテリアル設定が可能です。
• ノーマルマップテクスチャを使用するモデルの場合、fbxエクスポート設定で「タンジェント空間」のチェックを入れてください。
#br
-2.83より新しいバージョンのBlednerを使用し上記の設定でエクスポートしたデータがBakin上で90度倒れて表示されてしまう場合、FBXエクスポート画面の「トランスフォーム>空間の変換を使用」にチェックを入れていただくと改善する可能性がございます。
#ref(Blender_空間の変換を使用.png)

***''2.テクスチャ(必須)'' [#q245188b]
• ファイル形式:BMP 形式 または PNG 形式
• テクスチャのピクセルサイズは、
64×64、128×128、256×256、512×512 などの2のべき乗と呼ばれる数値を推奨します。
256×128 なども使⽤可能です。
2のべき乗以外のサイズのテクスチャを設定すると表⽰に不具合が起る事があります。

• テクスチャのファイル名は、モデルの FBX 内で指定されているものと同じにしてください。
同じ場合、モデル読み込み時自動でテクスチャが設定されますが、異なっている場合は自分で設定する必要があります。

• BMP にアルファチャンネルの設定することで、透過表現が可能です。
また、PNG についても透明部分を設定することで、透過表現が可能です。

•Bakinでは PBR ( Physical Based Rendering )を採用することにより、よりリアルな質感表現が可能です。
PBR表現を使用する場合、1つのモデルに対し、用途に合わせてテクスチャを3枚設定する事を推奨します。
アルベドマップテクスチャ:モデルの色を設定するテクスチャ
ノーマルマップテクスチャ:モデル表面の凹凸を設定するテクスチャ
マスクマップテクスチャ:RGBA各チャンネルにそれぞれ、R(発光)、G(ラフネス)、B(金属)、A(スペキュラ強度)を設定するテクスチャ
これらを正しく設定することで、よりリアルな質感表現が可能です。

また、マスクマップがなくても、
マスクマップで制御される設定はマテリアルプロパティにより、ある程度調整が可能です。
#ref(マテリアルプロパティ.png)
#br
• ファイル名は、半⾓英数字で設定して下さい。
• テクスチャファイルの例

アルベドマップ テクスチャ
#ref(アルベドマップ.png)
ノーマルマップ テクスチャ
#ref(ノーマルマップテクスチャ.png)
マスクマップ テクスチャ
#ref(マスクマップテクスチャ.png)
#br

***''3.モーションファイル(.fbx)'' [#s38313ab]
モーションがある場合はモーションデータを用意します。
モーションデータの持ち方は、モデルファイルにそのまま設定する方法と、
モデルとモーション別個のファイルとする方法の2つがあります。
(別個とする場合、モーションファイル FBX の対応バージョンはモデルファイルと同じ仕様です。)

''【モデルとモーションが同一ファイルの場合】''
. ファイル形式: FBX 形式。

• モーションの作業単位は、60fps となります。

• 使用可能なボーン数についてはモデル一体に対して、OpenGLの仕様上可能な数「最低341~最大1365」となります。(ドライバ性能に依存します。)

• Blenderで各モーションを別個のアクションとした場合、それぞれ別のモーションとして読み込まれます。

• 開始フレームと終了フレームを指定し、ベイク処理を設定して FBX ファイルを出⼒してください。

• モーションはループ再⽣なしが初期設定となっています。
ループ再⽣させたい場合は、モーションプロパティで該当モーションの「ループ」設定をONにしてください。
#ref(ループ.png)
#br

''【モデルとモーションが別個のファイルの場合】''
. ファイル形式: FBX 形式。

• モーションの作業単位は、60fps となります。

• 使用可能なボーン数についてはモデル一体に対して、OpenGLの仕様上可能な数「最低341~最大1365」となります。(ドライバ性能に依存します。)

• Blenderで各モーションを別個のアクションとした場合、それぞれ別のモーションとして読み込まれます。

• 出⼒したいモーションの開始フレームと終了フレームを指定し、ベイク処理を設定して FBX ファイルを出⼒してください。

• モーションファイルのポリゴンメッシュは削除して下さい。

• スケルトンがある場合、構造及び名称はモデルファイルのスケルトンと同⼀にして下さい。

• モーションはループ再⽣なしが初期設定となっています。
ループ再⽣させたい場合は、モーションプロパティで該当モーションの「ループ」設定をONにしてください。
#ref(ループ.png)

**モデル追加時の下準備 [#ydf60d6e]
モデルを追加する場合、2つの方法があります。
1つは、Bakinの内蔵データを流用する方法、
2つめは、自分で新規にデータを用意する方法です。
それぞれの手順について説明します。

①追加したい素材のファイルを⼊れるフォルダを⽤意します。
このフォルダは追加の際に⼀時的に使⽤するだけです。ファイルの場所やフォルダ名は問いません。
追加したモデルは、ゲームファイルフォルダ内のresフォルダ下へ追加されます。

②⽤意したフォルダの直下にモデルファイル(.fbx)とテクスチャファイル(.bmpまたは.png)を⼊れます。
例:[Table]フォルダに、追加したい素材(Table)を⼊れた場合
#ref(Table.png)


**追加するフォルダーの準備(1)システム素材を書き出す場合 [#r852ea53]
標準のシステム素材モデルは外部のフォルダーに書き出して、
CG ソフトを使ってカスタマイズすることができます。⼿順は以下の通りです。

①任意のゲームファイルを開き、
「リソース>モデル>reserved>イベント用モデル>sb_obj_indoor005_Table01」を選択し、コピーボタンを押します。
#ref(任意のゲームファイル.png)
②任意のフォルダを選択し、エクスポートします。

③エクスポートされたフォルダーの中に、選択した物体フォルダーが作られ、
その中に FBX ファイル、テクスチャ ファイル、defファイル ( マテリアル情報 等 ) が書き出されます。
#ref(FBXファイル.png)
④書き出されたモデルやテクスチャは、BlenderなどのDCCツール、画像編集ソフトによって描き替えることが可能です。

※ 編集の際、テクスチャのファイル名を変更すると、テクスチャの自動読み込みがされなくなるのでご注意ください。
変更する場合は、Bakin側でテクスチャ指定を再設定するか、defファイルを開きテクスチャ名の記述を変更してください。

**追加するフォルダーの準備(2)新規に作成する場合 [#v2dd2ad1]

&size(16){''モデル追加時の下準備''};
①追加したい素材ファイルを⼊れるフォルダーを、任意の場所に作成します。(フォルダ名や場所は問いません)
このフォルダーはデータ追加後、更新用フォルダとして参照先に設定されます。
※Bakinにデータを追加したあとは、こちらのフォルダ内のデータを更新することで、Bakin内の該当データも更新されます。
追加したモデルは、ゲームファイルフォルダ内のresフォルダ下へ追加されます。

②⽤意したフォルダの直下にモデルファイル(.fbx)とテクスチャファイル(.bmpまたは.png)を⼊れます。
例:[Table]フォルダに、追加したい素材(Table)を⼊れた場合
#ref(Table.png)
新しく物体を追加するには、準備として追加したいモデルの名前が付けたフォルダーを任意の場所に作成し、
その中に追加するすべてのモデル、テクスチャ を⼊れておいてください。

1. すべてのファイルを、⽤意したフォルダー直下に配置します。

2. テクスチャは、FBX ファイル内の名前をもとに⾃動的に検索されて取り込まれます。
FBX と同じフォルダー内か、その中の「texture」フォルダー内が検索対象になります。

※ モデルとは別にモーションファイルがある場合は、別モデルとして追加し、モーション設定とスタンプ設定を別途行います。

***追加⽅法 [#z23cce4f]
1. 【リソース】>【モデル】>【追加 ボタン】を選択、【Asset Picker】ウィンドウを開きます。
#ref(追加ボタン.png)
2. 【ファイルから選択】タブを選択します
#ref(ファイルから選択.png)
3. 追加したいモデルの入ったフォルダを開き、fbxファイルを選択します。

4. 必要に合わせて【FBXファイルのインポート時、自動で最適化を行う】をチェックします。
最適化は以下の処理を自動で行います。
・スキンウェイトの正規化
・ポリゴンの三角化
・スケールの適用(最適化チェックボックスの横にあるスケールオプション)
・FBX7.4より以前のFBXフォーマットの場合、FBX7.4への変換
※もしモデルファイルが正しく取り込めなかった場合は、チェックを外してください。

5.【追加して終了】を押します。

''★1~5の手順は、モデル リストにfbxファイルをドラッグ&ドロップすることでも可能です。

''※すでに同じ名前のモデルがあった場合は、別名で追加されます。
すでに追加済みのモデルを更新したい場合は「情報の更新」ボタンを押してください。
#ref(情報の更新.png)

#br
6.インポートするfbxのマテリアルと、「テクスチャがすべて同じマテリアル」がプロジェクト内にあった場合、「マテリアルの共有化」ダイアログが開きます。
このダイアログではマテリアルを共有するかどうかを選択することができます。
マテリアルはインポート後でもリソース>3Dスタンプでマテリアルを割り当てなおすことができます。

テクスチャがすべて同じ既存のマテリアルをインポートしたモデルに割り当てることによって、プロジェクト内にあるモデルとマテリアルを共有することができます。
---共有化のメリット/デメリット
---''共有化のメリット/デメリット''
''<メリット>''
・1つのマテリアルを調整するだけで、マテリアルを共有しているオブジェクト全ての調整ができます。
・無駄なマテリアルデータを持つ必要がなくなります。
''<デメリット>''
・マテリアルを共有しているオブジェクトとのうち、どれか一つだけの質感を調整する、ということはできなくなります。
 この場合、共有しているマテリアルをリソース>マテリアルでコピー。
 そのコピーしたマテリアルをリソース>3Dスタンプで個別に調整したいオブジェクトに割り当て直してください。

#ref(./マテリアル_マテリアルインポートダイアログ.png,50%)

--「マテリアルの共有化」ダイアログには下記の選択肢があります。
--''「マテリアルの共有化」ダイアログには下記の選択肢があります。''
--- 自動的にマテリアルを割り当てる
プロジェクト内にある同じテクスチャを使ったマテリアルを自動的に割り当てます。
同じテクスチャを使ったマテリアルが複数ある場合は、プロジェクトに登録された順が早いマテリアルが割り当てられます。
また「テクスチャを使用していないマテリアル」は全て新規のマテリアルとしてインポートされます。
#br
--- すべて「新規のマテリアル」として追加する
プロジェクト内に同じテクスチャを使ったマテリアルがあっても、全て新規のマテリアルとしてインポートします。
他のスタンプやモデルとマテリアルを共有したくない場合にこれを選択してください。
#br
--- 手動で割り当てるマテリアルを選択する
インポートするモデルのマテリアルそれぞれに対して、プロジェクト内にある同じテクスチャを使ったマテリアルを割り当てるかを手動で選択します。
同じテクスチャを使ったマテリアルが複数ある場合は、その中からどれを割り当てるかを選択できます。
「テクスチャを使用していないマテリアル」は、プロジェクト内の「テクスチャを使用していないマテリアル」の中から割り当てるものを選択してください。
#br
---''「テクスチャがすべて同じマテリアル」とは''
マテリアルに指定されている全てのテクスチャが一致するマテリアルのことです。(テクスチャが1つも指定されていないケースも含まれます。)
例えば下図のようにアルベドマップ、ノーマルマップ、マスクマップにテクスチャが指定されているマテリアルでは、この3つ全てが合致する必要があります。
#ref(./マテリアル_マテリアルインポートダイアログ_1.png,50%)


***''モデルのスタンプ化'' [#l66bb7d6]
モデルをマップに配置したり、ゲームで使えるようにするためには「スタンプ」にする必要があります。
「スタンプ」については[[「スタンプ」とは]]をぜひ一度ご確認ください。
モデルをスタンプ化する手順は以下の通りです。

1. スタンプにしたいモデルを選択します。

2. スタンプボタンをクリックします。
#ref(モデルのスタンプ化.png)
3. リソース>[[3Dスタンプ]]のリストに新規スタンプとして追加されます。

***''物体設定について'' [#p63d29e6]
追加した物体には、そのままでは当たり判定がなく、プレイヤーがすり抜けてしまいます。
モデルの形に応じた当たり設定が必要なときは、コリジョンを設定する必要があります。

コリジョンの追加方法は2種類あります。

・簡易コリジョン設定を使用する場合
・「物理設定」タブで専用コリジョンを用意して使用する場合

***''簡易コリジョン設定を使用する場合'' [#xadf2162]
1. 当たり判定をつけたいモデルのスタンプを選択し、「簡易コリジョン設定」を確認します。
(簡易コリジョン設定は「正確なコリジョン設定」がオフの場合にのみ表示されます。)
#ref(簡易コリジョン.png)
2. 「Shape」でボックスや球など、シンプルなコリジョン形状が選択できるので、近い形のものを選択し、
プレビューを見ながら位置・回転・サイズを調整します。
#ref(Shape.png)
※ドラッグアンドドロップで追加されたモデルは、自動でスタンプ化されますが、
その際、自動調整されたBoxコリジョンが設定されるので、シンプルな形状の場合はそのままでOKです。

***''Shape「Mesh」の場合'' [#y3309d67]
Shapeを「Mesh」にすると、自分で用意したコリジョンモデルを使用できます。
シンプルな形状で適したものが無い場合は、自分でコリジョンモデルを用意し、この設定で指定してください。

下の例では、ピアノモデルに対して、当たり判定用のシンプルなコリジョンモデルを用意した場合です。

1. ピアノモデルとピアノ用コリジョンモデルをそれぞれ追加します。
#ref(./ピアノ1.png,50%)
#ref(./ピアノ2.png,50%)
2. Shape項目で「Mesh」を選択。
メッシュ項目の右スペースをクリックし、コリジョン用モデルを選択します。
#ref(ピアス3.png)

***''物理設定で専用コリジョンを用意して使用する場合'' [#ie8a5f3c]
複数のコリジョンモデルを組み合わせたり、コリジョンをモデルの動きに連動させたい場合は、
物理設定でコリジョン設定を作成する必要があります。

***''複数のコリジョンを設定する'' [#r04ddb68]
ドアとドア枠のような、独立した複数のコリジョンが必要な場合は、
物理設定で複数のコリジョンを登録します。
#ref(複数のコリジョン設定.png)
1. 「コリジョンリスト」で必要な数だけ[+]追加ボタンを押し、コリジョン設定を追加します。
ドアの例では、ドア枠とドアのコリジョンを追加しました。
#ref(コリジョンリスト.png)
2. それぞれのコリジョン選択し、「物理設定の設定」で調整していきます。
#ref(物理設定.png)
#br
***''コリジョンをモデルの動きに連動させる'' [#q96c2d0b]
開閉するドア扉や、揺れる物体など、
コリジョンをモデルの動きに合わせて連動させたい場合は
アタッチノードを使います。
#ref(./コリジョンをモデルの動きに連動させる1.png,50%)
1. 追加したコリジョンの中で、動きに連動させたいコリジョンを選択します。

2. 「物理設定の設定>基本>アタッチノード」で、アタッチしたいノードを選択します。
アタッチノードは
・原点にあたる「_root」
・fbx内に存在するメッシュノード
・スケルトン構造がある場合は、それらのスケルトンノード
が表示されます。
#ref(コリジョンをモデルの動きに連動させる2.png)
3. 「物理設定のプレビュー」で確認したいモーションを指定し、
再生ボタンを押すと動きを確認できます。
#ref(コリジョンをモデルの動きに連動させる3.png)


***''遠景モデルの追加'' [#x47f7906]
遠景モデルはマップの外側に表⽰される⻘空、夜空、曇天といった“背景”を表⽰するモデルで、
【マップ設定 > レンダリング > 遠景モデル】でスタンプ化したモデルを指定することができます。
#ref(./遠景モデルの追加1.png,30%)
#ref(遠景モデルの追加2.png)
必要となるものは、基本的には通常のモデルデータと同じです。
どのモデルでも遠景モデルとして登録可能ですが、一般的にはドーム状の半球モデルが適しています。
標準素材の遠景モデルをエクスポートして、データをカスタマイズする⽅法がベストです。

''1. モデル(必須)''
• ファイル形式:FBX7.4.0(FBX2014)形式モデルデータ(*.fbx)。(Blenderならば2.83以降で作成したもの)

• バージョンは FBX7.4.0(FBX2014)のみです。現在のところそれ以外には対応していません。

• 三⾓ポリゴン以外は正しく表⽰されません。
予め三⾓ポリゴン化を⾏うか、Bakin へモデル追加の際に最適化オプション設定を有効にして下さい。
(※最適化オプションを有効にすると⾃動的に三⾓ポリゴン化が⾏われます。)

• Bakin 標準の遠景モデルは、Blender上でのスケール「X:1000 , Y:350 , Z:1000」を基本サイズとしていますが、「遠景スケール」プロパティで、自分の作成中のマップサイズに応じてスケール調整をしてください。
#ref(遠景モデルの追加3.png)
• 1つのモデルに対し、複数のマテリアル設定が可能です。
基本の遠景モデルと、太陽や月、空間演出用のマテリアルを分けておくと
設定がしやすいかと思います。
#ref(遠景モデルの追加4.png)
#ref(遠景モデルの追加5.png)

''2. テクスチャ(必須)''
#ref(遠景モデルの追加6.png)
• ファイル形式:BMP 形式 または PNG 形式。

• テクスチャのピクセルサイズは、標準素材では2048x512サイズを基本としていますが、
自分の作成した遠景モデルに合わせて調整してください。

• テクスチャのファイル名は、モデルの FBX 内で指定されているものです。

• BMP にアルファチャンネルの設定することで、透過表現が可能です。
また、PNG についても透明部分を設定することで、透過表現が可能です。

•マテリアル、シェーダーについては、遠景モデルは光の影響を受けないようにする場合が多いため、
「map_nolit」シェーダーを推薦します。
#ref(遠景モデルの追加7.png)
また、太陽などの光らせたい描画物に対しては「map_nolit_add」がおすすめです。
装飾物のシェーダーは表現したいものに合わせて設定してください。
#ref(遠景モデルの追加8.png)

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS