前回は、「プログラミング生放送」コミュニティのウェブサイトからダウンロードして fbx から gpb , material ファイルに変換した「今川焼き」の 3D モデルを HSP3.6 の HGIMG4 のサンプル test1.hsp のプログラムの一部を変更することで回転しながら表示する手順と結果、プログラムとファイル構成について紹介しました。
前回の記事:HSP3 HGIMG4で3Dモデルの今川焼きを回転させる2/2 | Compota-Soft-Press

.gif)
今回は、Unity のシーンに配置した 3D モデルを fbx に変える FBX Exporter について紹介します。
Unity でデザインした 3D モデルを fbx に出力することで、さまざまな開発環境との連携が可能になります。
また、HSP3.6 向けに fbx を出力する設定と、現状筆者が調べた限りの HSP3.6 の HGIMG4 で物理演算を行う方法も紹介します。
※ Unity のバージョンは 2021.3.25f1 です。
Unity プロジェクトの作成
すでに FBX として出力したい 3D モデルがシーンに配置してある人は読み飛ばしてください。
今回は新規プロジェクトを作成して、そこに「プログラミング生放送」の Web サイトで公開されている「今川焼き」の 3D モデルを具体例としてシーンに配置するところから紹介します。
Unity Hub を起動して、新規プロジェクトの作成を選択してから、テンプレートに 3D を選択して、プロジェクト名と保存フォルダを指定して「プロジェクトを作成」ボタンを押します。

FBX Exporter のインストール
「HGIMG4 Unity連携ガイド」で基本的な手順は同じなのですが、現在 FBX Exporter は Unity アセットストアでは公開されていません。
FBX Exporter は現在 Asset Store から入手できません。
HSP3.7に向けたβテストについてのお願い – HSPTV!掲示板
パッケージマネージャでFBX Exporterを追加することで利用できます。
その代わりに、上記の引用の通り、 Unity エディタでメニュー「Window」→「Package Manager」を選択して開いた Package Manager ウィンドウからインストールできます。
Package Manager ウィンドウの左上の+の右側にあるリストで「Packages: Unity Registry 」を選択してから、右上の検索ボックスで FBX Exporter と入力すると FBX Exporter のページが表示されるので、右下の Install ボタンを押してインストールします。
これで、シーンのゲームオブジェクトを右クリックした際のメニューに Export To FBX というメニューが追加されました。

サンプルの 3D モデルの追加
サンプルのゲームオブジェクトを作るために、Unity プロジェクトに 3D モデルのファイルを追加します。
3D モデルは「[Blender][Unity] 今川焼き・回転焼き・大判焼き・ベイクドモチョチョ・精霊馬 3Dデータ公開 – プログラミング生放送」で公開されているふっくら感のある今川焼きです。
※取得方法については、以前の記事「HSP3 HGIMG4で3Dモデルの今川焼きを回転させる1/2!!!」をご覧ください。
imagawayaki.fbx とそれのテクスチャである bake.png を Project ウィンドウ内の任意のフォルダにドラッグ&ドロップします。

シーンに 3D モデルをゲームオブジェクトとして追加
FBX Exporter は、シーンのゲームオブジェクトを FBX として出力します。
そのため、Project ウィンドウの任意のアセットフォルダに追加した今川焼きの FBX を Scene ウィンドウにドラッグ&ドロップします。

FBX Exporter でゲームオブジェクトを FBX 出力
サンプルの今川焼きのゲームオブジェクトをシーンに追加したら、Hierarchy ウィンドウ内でそのゲームオブジェクトを右クリックして、メニューから Export To FBX を選択します。

Export To FBX を選択すると、「Export Options」ウィンドウが表示されます。
そのウィンドウでは、Export Name / Path から出力する fbx ファイル名や出力先のフォルダを指定できます。
HSP3 向けの設定
突然ですが、プログラミング言語 HSP3 の HGIMG4 では gpb 形式で 3D モデルを扱えます。
gpb は fbx を HSP3 の GPB converter ver.0.6 で変換することで作成できます。
もしも、 HSP3 用に fbx を出力したい場合は、「HGIMG4 Unity連携ガイド」で書かれている通り、「Export Options」ウィンドウの Export Format の項目を ASCII ではなく Binary に変更してください。
※gpb への変換や HSP3 での 3D モデルの配置については「HSP3 HGIMG4で3Dモデルの今川焼きを回転させる1/2!!!」と「「HSP3 HGIMG4で3Dモデルの今川焼きを回転させる2/2!!!」」をご覧ください。

ゲームオブジェクトの FBX 出力
「Export Options」での設定が済んだら、右下の Export ボタンを押します。

Export Path で指定したフォルダ(既定ではアセットフォルダのトップの Assets ) に FBX ファイルが出力されます。

Unity のゲームオブジェクトを FBX として出力することで、Unity を FBX 3D モデルのデザインツールとして利用できるようになりました。
複数の 3D モデルをまとめて FBX 出力
FBX 出力するゲームオブジェクトは、その下位に複数の 3D モデルを配置することもできます。

上位の空のゲームオブジェクトの位置が (0, 0, 0) だとしても、下位のゲームオブジェクトたちの位置が離れすぎていると、回転しながらの表示で遠すぎて表示されないこともあるので、中心位置は (0, 0, 0) に近づけて下さい。

空のゲームオブジェクトの下に 3D モデルを複数配置して、その空のゲームオブジェクトをさきほどの FBX Exporter で出力します。

出力された FBX は、エクスプローラでアクセスして、Unity とは異なる環境でも利用可能です。

例えば前回までの手順で、出力した fbx を gpb に変換して、前回紹介した HSP3 のプログラムの res フォルダにある imagawayaki.gpb を置き換えれば、下図のように HSP3 で Unity や blender で作成した FBX を表示できます。
「HSP3 HGIMG4で3Dモデルの今川焼きを回転させる1/2 | Compota-Soft-Press」
「HSP3 HGIMG4で3Dモデルの今川焼きを回転させる2/2 | Compota-Soft-Press」

HSP3 HGIMG4 による FBX の物理演算は不明
fbx を gpb に変換して 3D モデルを HSP3 で表示することはできました。
しかし、表示した 3D モデルの上に人型キャラクターを置くといった物理演算については、筆者も勉強中です。
数時間調べた結果なので感想みたいなものですが、HSP3.6 の HGIMG4 では gpload で読み込んだ 3D モデル自体のメッシュに対応した物理演算はできないと思います。
3D モデルのアニメーションなどはありますが、物理演算を絡ませたサンプルが見つけられなかったからです。
現段階では、gpbox, gpfloor で作られる立方体や床などの物理演算を利用して 3D モデルをそれに連動して動かす方法が実用的なのかなと思います。
開発が続けられている HSP3 と HGIMG4 の今後の拡張に期待です。
以下に参考にしているサイトを 2 つ紹介します。
地表を歩く | GHP(仮)
他サイト様「地表を歩く | GHP(仮)」では、gpraytest 命令を用いて、キャラクターの周囲の地形との交点を検出して制御する方法などをサンプルとあわせて詳細に紹介しています。
#ベクトル演算とか苦手なのでよくわかってません。
サイトの一部.png)
ぜんぶ食べないと出られない部屋 – SoupSeed
「ぜんぶ食べないと出られない部屋」は、HSP プログラムコンテスト 2022 の「秀和システム賞」受賞作品です。
珠音ちゃんが、床、坂道、シーソーの上を移動したり、箱を動かしたりその上にのってリンゴをとったり、今の筆者には驚きのゲームです。
プログラムも公開されていて、その中身もきれいで、さーっと流し読みしただけでも、素晴らしいと思いました。



基本的にすべては gpbox で作成された立方体で構築されていて、珠音ちゃんも物理演算自体は非表示にした立方体で行っているようです。
キャラクターの物理演算については、script.zip を展開して
- sr_Scene2.hsp の 664 行目 PC:コライダー読み込み
- sr_Scene2.hsp の 691 行目 PC:3Dモデル読み込み
を起点に読み始めると良いかもしれません。
まとめ
今回は、Unity のシーンに配置しているゲームオブジェクトを FBX 形式の 3D モデルのファイルとして出力する FBX Exporter について、Unity へのインストール方法から出力手順まで紹介しました。
複数の 3D モデルをまとめた fbx の出力例や、HSP3 の HGIMG4 での表示例、HSP3 で 3D モデルを物理演算している 2 作品についても紹介しました。
参照サイト Thank You!
- Unity のリアルタイム開発プラットフォーム | 3D/2D、VR/AR のエンジン
- Exporting FBX files from Unity | FBX Exporter | 5.1.0-pre.1
- プログラミング言語 HSP3 公式 – HSPTV!
- HGIMG4プログラミングガイド
- HGIMG4 Unity連携ガイド
- プログラミング生放送 – 略してプロ生
- [Blender][Unity] 今川焼き・回転焼き・大判焼き・ベイクドモチョチョ・精霊馬 3Dデータ公開 – プログラミング生放送
- HSP3.7に向けたβテストについてのお願い – HSPTV!掲示板
- 地表を歩く | GHP(仮)
- ぜんぶ食べないと出られない部屋 – SoupSeed
- HSPプログラムコンテスト2022 入賞作品詳細
- OHDL – gpbox
記事一覧 → Compota-Soft-Press
コメント