#author("2024-03-28T16:25:06+09:00;2024-03-28T16:24:48+09:00","default:admin","admin")
#author("2024-03-28T16:26:32+09:00;2024-03-28T16:24:48+09:00","default:admin","admin")
*''3D キャラクター'' [#r8bb1e0c]
ここでは、手に入りやすいBlenderという3D制作ソフトウェアを使います。
バージョンは2.83以降です。Blenderの詳しい使い方はここでは省略させていただきます。
#contents

**''Blenderの環境設定'' [#s1ba1bd8]
はじめに、Blenderの環境をBakinに適したものに変更しておきます。

&size(16){''シーンの単位について''};
シーンの単位が以下の設定となっている事をご確認下さい。
設定が異なると FBX 出力時にモデルが適切なサイズとなりません。
#ref(シーンの単位.png)
#br

&size(16){''FBX エクスポートについて''};
Bakin の仕様に適した FBX エクスポートの設定は、以下のように設定してください
Bakin の仕様に適した FBX エクスポートの設定は、以下のように設定してください。(以下は3.6での設定例)
#ref(Blender-FBX-ExportSettings-jp.png)
-''ノーマルマップを使用する場合''
ノーマルマップが設定可能なシェーダーを使用する場合、
fbxエクスポート設定で、「タンジェント空間」を必ずONにしてエクスポートしてください。
(OFFの場合、正しく表示されません)
#br
-2.83より新しいバージョンのBlednerを使用し上記の設定でエクスポートしたデータがBakin上で90度倒れて表示されてしまう場合、FBXエクスポート画面の「トランスフォーム>空間の変換を使用」にチェックを入れていただくと改善する可能性がございます。
#ref(Blender_空間の変換を使用.png)

&size(16){''モーションの設定方法''};
モーションの設定方法は 2 種類あります。
①モデルとモーションを一緒のファイルとして読み込む方法
②モデルとモーションを別fbxファイルとして読み込む方法

''・①モデルとモーションを一緒のfbxファイルとして読み込む方法''
キャラクターモデルとモーションの付いたボーンをすべて選択し、
まとめてエスクポートすると、モデルとモーションが1つになったfbxファイルが出来上がります。
Bakinでfbxファイルを読み込むと、モデルが生成されるので、モーション管理でそのモデルを選択することで
内蔵されたモーションが読み込まれます。

''・②モデルとモーションを別fbxファイルとして読み込む方法''
モデルとボーン、同じ構造のモーション付きボーンを、それぞれ別々にエクスポートすると、
別のfbxファイルとしてエクスポートされます。
モデル側のボーン構造と、モーション側のボーン構造は同じである必要があります。
Bakin でそれぞれのfbxファイルを読み込み、「モデルに使用したいfbx」と「モーションに使用したいfbx」をそれぞれ設定していきます。


**''自作のモデルを作る際のアドバイス~プリセットのモデルをベースに作ってみる~'' [#vc39f742]
&size(16){''Bakin からモデルをエクスポートする''};
ここでは、3D_Tutorialゲームファイルの「Standard_A」キャラクターモデルを参考に説明していきます。
※事前にDLC「3D_Tutorial」のダウンロードが必要です。
#ref(モデルのエクスポート.png)
3D_Tutorialゲームファイルを開き、「リソース>モデル>standard_A」の3D キャラクターモデルを選択し、エクスポートボタンを押します。
任意のフォルダを選択し、エクスポートします。
続いて、モデルリストの「motion_A」フォルダを選択し、こちらもエクスポートしておきます。
#ref(モーションA.png)
データがエクスポートされたら、
Blender を立ち上げ、ファイル>インポート>FBX を選択し、以下の設定でインポートします。
#ref(FBX.png)
今回はモデルとモーションを別ファイルとして扱う方法なので、
モーションの設定方法「②モデルとモーションを別fbxファイルとして読み込む方法」で進めます。
この方法では、同じボーン構造の異なるキャラクターモデルに、同じモーションを使用できるという利点があります。

Blenderにモデルをインポートしたら、必要に応じてポリゴンメッシュやテクスチャなどを好みに編集します。
#br

&size(16){''モデル追加時の下準備''};
追加したい素材のファイルを⼊れるフォルダを⽤意します。
このフォルダは追加の際に⼀時的に使⽤するだけで、ファイルの場所やフォルダ名は問いません。
追加したモデルは、ゲームファイルフォルダ内のresフォルダ下へ、同じファイル名の別ファイルとして追加されます。

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

Bakin へモデルを追加する際、エクスポート時に生成された standard_A.def を一緒のフォルダに置いた状態で追加してください。
このファイルには、マテリアルとテクスチャの紐づけ設定が記述されています。
マテリアル名、テクスチャ名を変更した場合は、こちらを編集する必要があります。(編集しなくてもBakin上で手作業にて設定することは可能です。)
#ref(standard_A2.png)
#br

**''自作のモデルを作る際のアドバイス~自作の3Dキャラクターを追加する~'' [#y4fde169]
⾃作の3Dキャラクターを Bakin に追加する⽅法を説明します。
追加⽅法は、モーションデータの持ち⽅の違いにより2種類あります。

''〇モデルとモーションをそれぞれ別個の FBX ファイルとする⽅法''
ポリゴンとスケルトン構造を持つモデルファイルと、
スケルトン構造とモーションデータを持つモーションファイルに分けて追加します。

この⽅法の⻑所は、同じスケルトン構造を持つモデルであれば、異なるポリゴン形状でも既存のモーションを適⽤することが可能です。
(※Bakin の⼈型キャラクターは、この⽅法を使⽤しています。)

※追加に必要なファイルは、モデル(.fbx)・テクスチャ(.png)・モーション(.fbx)ファイルです。
モデルとモーションのスケルトン構造及び名称は同⼀とします。
#ref(./自作のモデルを作る際のアドバイス1.png,80%)
#ref(./自作のモデルを作る際のアドバイス2.png,80%)
#br

''〇モデルとモーションを⼀つの FBX ファイルとしてまとめる⽅法''
ポリゴンとスケルトン構造とモーションデータをまとめて⼀つのファイルとして追加します。
複数のモーションを持つ場合は、該当ファイルをモデルで読み込み、モーション管理で該当モデルを選択します。
すると含まれるモーション(アクション)がリストされるので、フレーム数やループ設定を調整します。
#ref(./自作のモデルを作る際のアドバイス3.png,80%)
#br


&size(16){''●追加に必要なファイルについて''};
3Dキャラクターは、モデル・テクスチャ・モーションのデータが必要です。
これらの作成には3Dグラフィックスの知識や所定のソフトウェアが必要です。

各ファイルの形式や仕様については、以下のようになります。

&size(14){''1. モデルファイル(.fbx)''};
• ファイル形式: FBX 形式。

• FBX のバージョンは、FBX7.4(FBX2014)を推奨します、
※Bakin の⼈型キャラクターは、Blender2.83 にて制作しています。

• FBX 形式はアスキー、バイナリの両⽅に対応しています。

• FBX7.4(FBX2014)より以前のバージョンの場合、Bakin へ追加の際に最適化オプション設定を有効にすると、
読み込み可能となります。(※正しく表⽰されない場合もあります。)
詳しくは、後述の Bakin への追加⽅法の項⽬を御覧下さい。

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

• Bakin の地形1ブロックのサイズは、Blender ではプリミティブ⽴⽅体(寸法1m:拡大縮小0.5)と同等のサイズです。
Bakin の標準的なキャラクターサイズは地形1ブロックに対して収まるようなサイズ感となっています。

• 1つのモデルに対し、マテリアルは複数設定できます。Bakin 側でモデルの設定マテリアルを変更することも可能です。

• ファイル名は、半⾓英数字で設定して下さい。

• スケルトン構造のジョイント数の制限については、モデル1体に対して最大1365を上限としています。
ただしこの上限は、OpenGLの仕様により、マシンスペックによって最低341、最大で1365の間で変化します。
また、ウェイトのインフルエンスは最大4として下さい。(最大4を超えた場合は、ウェイトの大きいものを優先して4つ採用されます。)

• モーションデータを別個とする場合は、キャラモデルのボーンにはアニメーションを付けずに、
ポリゴンとスケルトン構造だけの FBX ファイルとして出⼒します。

• モーションデータをまとめる場合は、このモデルファイルに複数のアニメーションを設定し、
モデルとベイク処理したアニメーションをまとめて⼀つの FBX ファイルとして出⼒します。
なお、モーションの作業単位は、60fps となります。

&size(14){''2.テクスチャ(.bmp、.png)''};
• ファイル形式: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(追加に必要なファイル1.png)
• ファイル名は、半⾓英数字で設定して下さい。

• テクスチャファイルの例
アルベドマップ テクスチャ
#ref(追加に必要なファイル2.png)
ノーマルマップ テクスチャ
#ref(追加に必要なファイル3.png)
マスクマップ テクスチャ
#ref(追加に必要なファイル4.png)
#br

&size(14){''3.モーションファイル(.fbx)''};
追加する素材をモデルとモーションを別個のファイルとする場合、モーションだけのファイルが必要となります。
FBX の対応バージョンや形式は、モデルファイルの項⽬と同じ仕様になります。

• ファイル形式: FBX 形式。

• ポリゴンデータは削除して下さい。

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

• モーションの作業単位は、まとめた場合と同じ 60fps となります。

• 1つのモーションファイルの中にモーション(アクション)が複数あった場合、それぞれ別のモーションとして読み込まれます。

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

• モーションのファイル名は自由ですが、、mot_モーション名(半⾓英数字).fbx など、特定の文字列を含めておくと作業しやすいかと思います。
例 mot_walk.fbx mot_wait.fbx mot_run.fbx

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


&size(16){''○モデル追加時の下準備''};
1. 追加したい素材のファイルを⼊れるフォルダを⽤意します。
このフォルダは追加の際に⼀時的に使⽤するだけです。ファイルの場所やフォルダ名は問いません。
追加したモデルは、ゲームファイルフォルダ内のresフォルダ下へ追加されます。

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

**''Bakin への追加⽅法'' [#ece24823]
Bakin への追加⽅法は、モデルとモーションが別個の場合でもまとめた場合でも同じです。
1. 【リソース】>【モデル】>【追加 ボタン】を選択、【Asset Picker】ウィンドウを開きます。
#ref(BAKIN への追加⽅法1.png)
2. 【ファイルから選択】を選択します
#ref(BAKIN への追加⽅法2.png)
3. 追加したいモデルの入ったフォルダを開き、fbxファイルを選択します。

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

5.【追加して終了】を押します。
''★1~5の手順は、モデル リストにfbxファイルをドラッグ&ドロップすることでも可能です。''

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

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

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

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


7. 【モデル リスト】にキャラクターモデルが追加されます。
追加されたファイルの格納場所は、【モデルの設定 > 基本 > フォルダー名】に表⽰されます。
またテクスチャは⾃動的に texture フォルダが作られ、そこにまとめられます。
#ref(BAKIN への追加⽅法3.png)

※【ファイルから選択】で追加した素材は、初めから登録されているシステム素材【reserved】とは区別され、
黒字のモデル名で表⽰されます。

また、ユーザー素材は、ゲームを保存する際に、ゲームファイル内に保存されます。
元のファイルがそのまま使⽤されるわけではありません。

8. モデルをマップに配置したり、ゲームで使えるようにするためには「スタンプ」にする必要があります。
「スタンプ」については[[「スタンプ」とは]]をぜひ一度ご確認ください。
#br
追加したキャラモデルを選択し、スタンプ化ボタンを押してください。
リソース>[[3Dスタンプ]]のリストに新規スタンプとして追加されます。
#ref(BAKIN への追加⽅法4.png)
#br


''モーションの追加''
続けて、モーションのfbxファイルがある場合は、以下を行います。
上記と同じ手順でモーションファイルをモデルとして追加し、
そのあとモーションメニューで追加したモーションのモデルを選択します。
#ref(BAKIN への追加⽅法5.png)

+モーションのモデルを選択すると、モーション リストに設定が登録されます。
モーション設定名は好きなものに変更してOKです。
#ref(BAKIN への追加⽅法6.png)
#br
+モーション設定登録後、一度スタンプに戻り、キャラモデルのスタンプにモーション設定を登録します。
#ref(BAKIN への追加⽅法7.png)
#br
+スタンプでモーション設定を登録したら、モーションメニューに戻り、設定したいモーション設定を選択します。
#ref(BAKIN への追加⽅法8.png)
#br
+さらに追加したいモーションがある場合は、【プロパティ>モーション】の[+]追加ボタンをクリックし、
モーションモデルを追加していきます。
#br
#ref(BAKIN への追加⽅法9.png)
#ref(BAKIN への追加⽅法10.png)

モーションプロパティの「モーション名」は、ゲーム中の挙動と紐づいているので、
以下モーション名を付けることで、ゲーム中の動作として自動的に登録されます。
※詳しくは[[モーション名規則]]をご確認ください。
wait:待機モーション
battle_wait:戦闘時の待機モーション
walk:歩きモーション
run:走りモーション
attack:戦闘時の攻撃モーション
skill:戦闘時のスキルモーション
damage:戦闘時のダメージモーション

設定が終わったら、キャスト設定などを行い、
テストプレイで動きを確認してみましょう!

以上でキャラモデル追加の一連の手順は終了です。

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