Substanceでローポリモデルにハイポリの凹凸をノーマルマップとしてベークする方法

色々なサイトにやり方が書いてありますが、いつも忘れてしまうので自分用にまとめておきました。


【手順1】
ハイポリモデルを何かダウンロードしてくる。
今回は、「Sculpture showing “St. Anna” from 18th century」を使用させていただきました。
https://sketchfab.com/3d-models/sculpture-showing-st-anna-from-18th-century-f46414a1d86a42349e6cdb046f892a4e
ダウンロード形式は「obj」を指定


【手順2】
Blenderでハイポリモデルをimportする。
インポート画面
【手順3】
まずは、このハイポリをfbxファイルでexportする。
Blenderでfbxファイルの書き出し(Export)
export設定は自由だが、自分は以下のような感じ。
fbx書き出し設定
【手順4】
選択中のハイポリモデルにモディファイア「Decimate」を適応して、ポリゴンを削減する。
Decimateのほうがリメッシュよりも、UVを壊さないから便利らしいです。
BlenderのDecimateモディファイアー
Ratioを1.0から0.1とか、小さい数値にすると削減できるので、目標の削減値になったら、「apply」を適応して、ポリゴンを削減する。
DecimateモディファイアーのApply
【手順5】
ポリゴンを削減したモデルをfbxファイルでExportする。
設定は、ハイポリの時と同じでよい。
ファイル名は「Statue_lowpoly.fbx」などのようにローポリと分かるように書き出しておく。
fbxファイルの書き出し設定
【手順6】
Substance Painterを立ち上げて、New projectでローポリを開く。
Normal Map FormatはBlenderの場合は、OpenGLにしておく。
Substance Painterの新プロジェクト画面
【手順7】
TEXTURE SET SETTINGS内にあるMESH MAPSのところにある「Bake Mesh Maps」ボタンをクリックする。
TEXTURE SET SETTINGS画面
【手順8】
High Difinition Meshesの右側にあるメモのようなアイコンをクリックして、ハイポリのfbxファイルを選択する。
また、Matchのところは、「By Mesh Name」に設定しておく。
そのあと、「Bake selected textures」をクリックするとベーク開始
ベーク設定画面
【手順9】
手順8まで完了すると、MESH MAPSにベークされたテクスチャがセットされる。
よくわからないが、LAYERSで自分でペイントしたテクスチャとは別にデフォルトでセットされるテクスチャとなるようだ。(説明が難しい)
とりあえず、これで凹凸がリアルにつくようなったと思う。(ハイポリの凹凸がノーマルで焼き込まれるので)
ベーク後のTEXTURE SET SETTINGS画面

ベーク前
ベーク後
【手順10】
あとは、Substance PainterのLAYERSでいつも通りテクスチャをペイントしていけばOK
LAYERSで自分でテクスチャを貼り付けた画面
【手順11】
テクスチャ作成が終わったら、テクスチャを書き出す。
Substance PainterでテクスチャExport
【手順12】
設定は自由だが、Unityの場合は添付画像のように設定してExportボタンをクリック
主な設定箇所
・Output directory 保存フォルダ
・Output templete どの形式で出力するか
・File type pngかjpegかなど
・Size 1024pxで出力するかなど
・Padding 不明(UVの各ポリゴンの境界をどうするかなのか?)
テクスチャExportの設定画面

unityroomへアップロードするときのファイル拡張子が「.gz」の件

Compression FormatをGzipに変更しても、結局ビルドされるファイルが「.unityweb」だったのでどうすればいいのか迷ってしまった。

結論としては、「.gz」のファイルでビルドされるわけではなかった!
なので、「.unityweb」でビルドされたファイル群を手動で「.gz」にファイル名を変更したのちに、今までと同じようにunityroomへアップロードすれば問題なくプレイできた。
ビルドされたら生成されるファイル群
手動でファイル名を変更した
ちなみに、自分のサーバーなどで動作確認する場合は、拡張子を「.gz」にすると動かなかった。「.unityweb」に戻すと正常に動作した。

UnityのStandard Asset内のスクリプトで自分のスクリプトの変数にアクセスできない問題

非常にハマってしまったので、メモで残しておきたいと思う。

何をやりたかったかというと、UnityのStandard Asset内にある、FPS用のプレハブ「FPSController」を使って、FPSゲームを作ろうと思っていた。しかし、このプレハブにアタッチされているスクリプト「FirstPersonController.cs」内を編集しようとしたときに問題が発生した!GameManagerクラスを自作し、このクラスをシングルトンにしていて、このクラス内の変数に 「FirstPersonController.cs」 内でアクセスしようと思っても、アクセスできなかったのだ。原因は非常にシンプルだった。「Standard Assets」というフォルダ名は特殊フォルダーになるらしく、自作スクリプトよりも先にコンパイルされるらしい。そのため自作スクリプトへはアクセスできないということだった。

https://docs.unity3d.com/ja/current/Manual/ScriptCompileOrderFolders.html

対策としては以下2つが考えられる。
①フォルダ名「Standard Assets」を別のフォルダ名に変更してしまう。
②フォルダ「Standard Assets」内にある使いたいスクリプトだけを別フォルダへ移動する

自分は今回は①の方法で解決した。
フォルダ名変更

オリジナル3Dアバター「タロ屋の女将」をBOOTHで公開しました!

Virtual Market2021に出店用として、オリジナル3Dアバター「タロ屋の女将」をBOOTHで公開しました!12/4より始まるVirtual Market2021でも見れるようになっているので、是非見てみてください! Virtual Market2021 では女将が自らのアバターをモーション付きで説明してくれますw
出展ワールドは「復刻江戸城城下町 Re:エド華町」です。

アバター自体はBOOTHで無料配布しておりますので、是非ダウンロードしてみてください!
https://taroyan3rd.booth.pm/items/3461151
タロ屋の女将
  • 今回の制作にあたって、フルスクラッチでオリジナルアバターを作る上の手順をまとめておいたので、メモしておきたいと思います。以下、自分なりの作成手順です。
    • モデルの三面図作成
    • モデル作成
      • メッシュ作成
      • ボーン作成
      • ウェイトペイント
      • UV展開
      • テクスチャ作成
      • 表情(シェイプキー)作成
    • ダイナミックボーン割り当て
    • VRMファイル作成(VRM対応のため)
    • BOOTHで公開
まとめると非常に簡潔な感じですが、実際はかなりの時間がかかりました。自分はすごく作業スピードが遅いので、200時間くらいかかりました。また、その他にやらないといけないこととして、BOOTH公開用にサムネイル作成や、規約文章などの用意、Vketへ出店のためのブースをUnityで制作などがあり、こちらもトータルすると100時間くらいかかった気がします。でも何はともあれ、出店まで間に合ってよかった~(゚Д゚;)

TOKYO GAME SHOWのVRを見てきました!

TOKYO GAME SHOWで開催中のVR企画を見てきました!
GAME FLOATとGAME FLOAT SKYという2つのワールドがあり、それぞれコンセプトが違ったようです。

リンクはこちら(もう終了していますが。)



GAME FLOATのほうは、いわゆるコミケで言うところの企業ブースみたいな感じでした。
新作ゲームの宣伝などが主な目的っぽい感じですね。
GAME FLOAT SKYは企業ブースという点では同じですが、アバター限定のワールドのようでした。いわゆるVirtual Marketみたいな感じでしょうか。


どちらもサクサク動きました!かなり描画負荷を低減されて作られているような感じですね。
また、使っているプラットフォームがそれぞれ違い、GAME FLOATのほうは、xambrを、GAME FLOAT SKYのほうは、Doorを使っているようでした。

SKYのほうは、ブラウザでも見えるのがとても手軽でいいなと思いました。VRでも見れたんだと思うんですが、ブラウザだけでしか見なかったです。不満点としては、リンクをクリックすると別タブでリンクが開いてくれないので、ワールドを強制退去させられてしまうことでした。(もしかしたら回避策があったのか?!)

GAME FLOATはHTC VIVEとQUEST2で見てみました。どちらもサクサクで動きました。PC版の容量は300MBくらいあったので、1ワールドに結構多くのデータを取り込んでいる感じがしました。でも動画データがほとんどだったのかもしれません。LoDを使って、遠くのモデルは見えないようにするなどの負荷低減策も取られていて、細かい配慮がされている感じがしました。不満点としては、完全に個人的な意見ですが、ワープモードでの移動で、バックできないことと、ワープモードでワープできる距離が短すぎることくらいですかね。


どんどんVRのプラットフォームも洗練されてきている感じがしますね(^-^)

VKET MALL PROTOに参加してきました!

2021年8月14日~2021年8月21日まで開催されていたVKET MALL PROTOに出店しました。


サイトはこちら


3Dモデルを出展できるバーチャルイベントという点では、バーチャルマーケットと同じなのですが、おそらく内部的に使っているプラットフォームとかが違うんだと思います。VRChatを使用していないようなので、HMDやPC以外で、ブラウザからもアクセスできるという点が大きな違いかと思います。Vket Mall Protoもコンセプトに応じて複数のワールドがあり、私は日本風のワールド「五色屋」で出店いたしました。


出店の登録からUnityを使ってのアップロードまでは、今までのVirtual Marketと何も変わらなかったので、今回は特に迷うことなく作業が進められました。


今回は、ちょっとした3Dモデルを頒布しようと思って、今回は日本の草刈り鎌を展示しました!Boothでも無料で配布していますので、よかったらダウンロードしてください!


Boothで無料配布中の「シンプル鎌」はこちら


itch.ioのゲームジャム「GMTK Game Jam 2021」に参加してみた件

海外のunityroomのようなサイト(というか、こっちのほうが昔からありそうなくらい有名なサイト)のitch.ioで開催されていたゲームジャム「GMTK Game Jam 2021」に参加してみました。


投稿したゲームはこちら
https://tarosansei.itch.io/closedroom2

密室でおともだちと遊ぶゲームを以前unityroomで投稿したのですが、その続編になります。
タイトルは「Closed Room 2」(密室2)ってそのまんまですね!
プレイ動画はこちら
初投稿してみた所感としては、「とても簡単」でした。unityroomも非常に簡単に投稿できるように工夫されていますが、同じくらい迷うところがなかったです。また、おそらくゲームジャム自体はitch.ioとは関係ない団体が運営しているんだと思いますが、itch.ioとの連携がしっかりされていて、itch.ioへ投稿したゲームをそのままゲームジャム特設サイトでSubmission(提出)するだけでいいという、非常に簡単設計でした!

特に親切だと思ったところは、結構頻繁にメールでゲームジャムの案内が送られてくるところですね。「あと何時間ですよ~」とか「投稿の仕方の案内」とか。

投稿で少しunityroomと違うところは、WebGLでビルドしたデータをzipファイルに圧縮してその圧縮ファイルをアップロードするというスタイルですね。複数のファイルを一つずつアップしなくてもいいので、慣れればこちらのほうが結構楽かもしれません。(ですが、このアップの仕方が分からない人にとっては、一つ一つのファイルをアップするほうがわかりやすいのかも。)

また、いろいろなゲームジャムがやっているようなのでチャレンジしてみたいです。
以下、少し興味のあるゲームジャム
  1. Godot Wild Jam (Godotエンジン縛りのゲームジャム)
  2. a jam about time.(時間縛りのゲームジャム)
海外のゲームジャムは日本以上にとても沢山開催されていることを初めて知りました。いつもunityroomの1週間ゲームジャムだけ参加していましたが、特に日本だけにこだわっているわけでもないので、もっといろいろ視野を広くしていきたいですね。

何となく最近勉強していること

Unityをメインで使っているけど、最近は以下の勉強も少ししている。

1.Godot

何となく存在は知っていたけど、実際動かしたことなかったので、ちょっと勉強中。
凄くゲームエンジンの容量が小さく、軽量なところがメリットかな。
あと、エディタの見た目がシンプルでカッコいい!

2.UE5

アーリーアクセスが開始されたので、この機会にインストールしました。
とりあえず今はチュートリアル中。

3.Illustrator

「イラレのスゴ技」という本を完全に衝動買いしてしまったので、仕方なくやっている。
でも意外にIllustratorは使えるようになると楽しい!

Unityの大量のテクスチャの設定を一気に変えるエディタ拡張を作ってみた。

UnityProjectはGithubに公開しておりますので、ご自由にお使いください。

https://github.com/taroyan/TextureSettingChangeBatch

Unityのテクスチャ(pngやjpgファイルなど)で圧縮設定とかをMipmapの使用などを各テクスチャで切り替えたりすると思いますが、大量にテクスチャがあると1枚ずつやっているのが大変すぎるので、エディタ拡張を作りました。ちなみに1つのフォルダ内に入っているテクスチャであればファイルを複数選択して、インスペクター内で設定したい項目を変えれば一気に選択したファイルの設定を変えられるのですが、複数フォルダ内に入っているテクスチャの設定を変える場合はフォルダごとにファイルを複数選択しなくてはいけないため、複数フォルダを選択した状態でボタンを押すと、すべての選択中のフォルダ内のテクスチャの設定を一気に変えます。(多分複数フォルダ内の子フォルダも含めてすべて一気に変えることはUnityエディタでは標準ではできないはず。)

使い方は、フォルダを選択した状態で、ボタン「Import Settings Batch Conversion」を押すだけ!


テクスチャ設定の細かい項目をいじりたい場合は、スクリプトを直接変更してください。むしろ今は、最低限の変更(画像サイズなど)しかしないようになっています。
© 2024 Husky Studio, All rights reserved.