2025/01/21(火) [n年前の日記]
#1 [godot][cg_tools] ゴルフボールを作りたい。その2
_昨日の作業
の続き。Windows10 x64 22H2 + Godot Engine 4.3 64bit でゴルフゲームっぽいものが作れないものかなと試してる。
そろそろゴルフボールを画面に出したい。Godot Engine なら、球のメッシュ(SphereMesh)にテクスチャ画像を貼るだけでゴルフボールのように見えるのではないかな、と思って調べていたけれど、それはちょっと難しいことが分かってきた。
そろそろゴルフボールを画面に出したい。Godot Engine なら、球のメッシュ(SphereMesh)にテクスチャ画像を貼るだけでゴルフボールのように見えるのではないかな、と思って調べていたけれど、それはちょっと難しいことが分かってきた。
◎ ゴルフボールのテクスチャ画像が見つからない :
問題点その1。フリーで使えるゴルフボールのテクスチャ画像が見つからない。有償でも存在するかどうか怪しい。
もっとも、あくまで、3Dモデルに使えそうなテクスチャ画像の話、だけど。
考えてみたら当たり前かもしれない。何故なら、ゴルフボールのテクスチャ画像ってゴルフボール以外には使えないから。汎用性が全く無い…。
要するに、極めてニッチな需要なわけで…。だから、ゴルフボール用のテクスチャ画像がネット上のどこでも配布されていないのは至極当然なのかもしれない。
ちなみに、ゴルフボールそのものの写真素材やイラスト素材ならネット上のあちこちで見かけた。ポスターだかイラストだか分からんけれど、2D的な画像編集用の素材であれば、まだ需要があるのだろう。
もっとも、あくまで、3Dモデルに使えそうなテクスチャ画像の話、だけど。
考えてみたら当たり前かもしれない。何故なら、ゴルフボールのテクスチャ画像ってゴルフボール以外には使えないから。汎用性が全く無い…。
- まず、3DCGで、画面にゴルフボールを出さなきゃいけない場面なんて、フツーは存在しない。
- 仮に映像作品内でゴルフボールを要求されるとしても、その際はハイポリゴンでゴルフボールを作ってレンダリングしてしまうだろうから、テクスチャ画像なんて要らない。
- テクスチャ画像を貼ってそれらしくしたい、なんて需要があり得るのは、ポリゴン数を減らしたモデルを要求されてしまうゲーム開発ぐらい。
- そのゲーム開発においても、ゴルフボールを画面に出したいと思うのは、せいぜいゴルフゲームの開発ぐらい。それ以外のゲームジャンルでゴルフボールが必要とされる場面なんてまず無いし、仮にあったとしても2Dのドット絵として用意しておけば事足りる。
要するに、極めてニッチな需要なわけで…。だから、ゴルフボール用のテクスチャ画像がネット上のどこでも配布されていないのは至極当然なのかもしれない。
ちなみに、ゴルフボールそのものの写真素材やイラスト素材ならネット上のあちこちで見かけた。ポスターだかイラストだか分からんけれど、2D的な画像編集用の素材であれば、まだ需要があるのだろう。
◎ テクスチャ画像を作るのが面倒 :
問題点その2。Godot Engine の球(SphereMesh)に使えそうなゴルフボールのテクスチャ画像を用意するのは面倒臭そう。
Godot Engine の SphereMesh にテクスチャ画像を指定すると、以下のような見た目になる。
使用したテクスチャ画像は以下。

つまり、上(北極?)、もしくは下(南極?)に行くに従って、テクスチャ画像の横方向が狭くなっていく見た目になるわけで…。
となると、ゴルフボールのように見せるためのテクスチャ画像は、正距円筒図法に近い感じのテクスチャ画像になるのだと思う。上や下に近づくと、横方向に伸びていく感じの画像というか…。
_正距円筒図法 - Wikipedia
しかし、そうなると…。これはちょっと自作が難しいのでは…。
ゴルフボールの表面のディンプル(くぼみ)が、等間隔でタイル状に並んでるテクスチャ画像なら簡単に自作できるだろうけど…。そういった画像を Godot Engine の SphereMesh に設定してしまうと、ゴルフボールの上、もしくは下のあたりのディンプルが、妙に小さくて歪んだ形になってしまうはず。
であれば、元のテクスチャ画像をあらかじめ歪ませておいて、3Dポリゴンモデルを描画した際には歪みが無くなるようにするのだろうけど、そんなテクスチャ画像、一体どうやって作ったらいいのか…。
Godot Engine の SphereMesh にテクスチャ画像を指定すると、以下のような見た目になる。
使用したテクスチャ画像は以下。

つまり、上(北極?)、もしくは下(南極?)に行くに従って、テクスチャ画像の横方向が狭くなっていく見た目になるわけで…。
となると、ゴルフボールのように見せるためのテクスチャ画像は、正距円筒図法に近い感じのテクスチャ画像になるのだと思う。上や下に近づくと、横方向に伸びていく感じの画像というか…。
_正距円筒図法 - Wikipedia
しかし、そうなると…。これはちょっと自作が難しいのでは…。
ゴルフボールの表面のディンプル(くぼみ)が、等間隔でタイル状に並んでるテクスチャ画像なら簡単に自作できるだろうけど…。そういった画像を Godot Engine の SphereMesh に設定してしまうと、ゴルフボールの上、もしくは下のあたりのディンプルが、妙に小さくて歪んだ形になってしまうはず。
であれば、元のテクスチャ画像をあらかじめ歪ませておいて、3Dポリゴンモデルを描画した際には歪みが無くなるようにするのだろうけど、そんなテクスチャ画像、一体どうやって作ったらいいのか…。
◎ 解決策 :
解決策として思いつくのは、以下の2つだろうか…。
blenderでハイポリゴンのゴルフボールを作成するだけなら、YouTube上で「blender ゴルフボール」のキーワードで検索するとチュートリアル動画が出てくるので、そこはどうにかなりそう。ただ、ゲーム用のローポリモデルにしないといけないので、おそらくノーマルマップ用画像かバンプマッピング用画像にベイク(焼き付け)する作業も必要になるのではないかなと…。
- 頑張ってテクスチャ画像を自作する。頑張る。何をどう頑張ればいいのか分からないけど。
- あるいは、Godot Engine の SphereMesh を使うことを諦めて、blender でゴルフボール用モデルデータを自作してソレを利用する。
blenderでハイポリゴンのゴルフボールを作成するだけなら、YouTube上で「blender ゴルフボール」のキーワードで検索するとチュートリアル動画が出てくるので、そこはどうにかなりそう。ただ、ゲーム用のローポリモデルにしないといけないので、おそらくノーマルマップ用画像かバンプマッピング用画像にベイク(焼き付け)する作業も必要になるのではないかなと…。
◎ 魚眼レンズ画像から正距円筒図法に変換 :
魚眼レンズ画像から正距円筒図法に変換できるツールを使えば、既存のゴルフボール画像から、Godot Engine の SphereMesh用テクスチャ画像を作成できるのではないかと思いついた。
魚眼レンズ画像から正距円筒図法に変換可能なツールとして、Cube2DM という、無料で利用できるツールがある。試用させてもらった。ありがたや。
_Cube2DM -- Image Projection Converter
_Cube2DMの詳細情報 : Vector ソフトを探す!
Cube2DMx64_170315.zip を入手。解凍して任意のフォルダにコピーして、Cube2DM.exe を実行。
試してみたけれど、ビミョーな結果になった。
入力画像は以下。

出力画像は以下。
たしかに、180度分だから、1024x512 の半分の領域は埋まっているし、上や下の部分が横方向に引き延ばされた感じになったけれど…。左右端のディンプルが、横方向に狭まってしまっているような気がする。そのあたりは真ん中と同じ大きさになってくれないとテクスチャ画像としては利用できないのではないか。
他のツールで処理してみたらどうなるだろうと、パノラマ画像作成ソフトの Hugin 2024.0.1b で試してみたけれど、そちらも似たような状態になった。
_Hugin - Panorama photo stitcher
左右の端のディンプルの大きさが期待したソレとは違うものになってるし、半球として3Dプレビュー表示しても、左右の端のディンプルが狭まってしまっている。
球の画像を魚眼レンズ写真に見立てて処理するやり方では、上手く行かないようだなと…。
魚眼レンズ画像から正距円筒図法に変換可能なツールとして、Cube2DM という、無料で利用できるツールがある。試用させてもらった。ありがたや。
_Cube2DM -- Image Projection Converter
_Cube2DMの詳細情報 : Vector ソフトを探す!
Cube2DMx64_170315.zip を入手。解凍して任意のフォルダにコピーして、Cube2DM.exe を実行。
- 入力画像として、ゴルフボールの部分だけを円状に切り抜いた画像を渡す。
- 入力形式は、魚眼レンズ(等立体各射影)を選んでみた。
- 入力画角は180.00度。
- 出力形式は、全球パノラマ形式(正距円筒図法)。
- 出力サイズは、1024x512。
試してみたけれど、ビミョーな結果になった。
入力画像は以下。

出力画像は以下。
たしかに、180度分だから、1024x512 の半分の領域は埋まっているし、上や下の部分が横方向に引き延ばされた感じになったけれど…。左右端のディンプルが、横方向に狭まってしまっているような気がする。そのあたりは真ん中と同じ大きさになってくれないとテクスチャ画像としては利用できないのではないか。
他のツールで処理してみたらどうなるだろうと、パノラマ画像作成ソフトの Hugin 2024.0.1b で試してみたけれど、そちらも似たような状態になった。
_Hugin - Panorama photo stitcher
左右の端のディンプルの大きさが期待したソレとは違うものになってるし、半球として3Dプレビュー表示しても、左右の端のディンプルが狭まってしまっている。
球の画像を魚眼レンズ写真に見立てて処理するやり方では、上手く行かないようだなと…。
[ ツッコむ ]
以上です。


