2024/12/11(水) [n年前の日記]
#1 [godot] Godot Engineでゴルフゲームっぽいものが作れそうか実験中
ゴルフゲームについて調べてるうちに、今時のゲーム制作ツールを使えば比較的楽に作れたりしないのかな、どうなんだろうと気になってきた。
そんなわけで、無料で利用できるゲームエンジン、Godot Engine を試用して実験してみることにした。
環境は Windows10 x64 22H2 + Godot Engine 4.3。
そんなわけで、無料で利用できるゲームエンジン、Godot Engine を試用して実験してみることにした。
環境は Windows10 x64 22H2 + Godot Engine 4.3。
◎ Godot Engineの入手 :
Godot Engine は以下から入手できる。
_Download for Windows - Godot Engine
最初は32bit版の Godot_v4.3-stable_win32.exe.zip (Windows - x86_32) を使ってみたけれど、blender からエクスポートしたモデルデータ(.glb、.fbx)がインポートできずに Godot Engine が落ちて落ちて落ちまくる不具合に遭遇して困ってしまった。.obj ならインポートできるのだけどな…。32bit版のバグなのか、それとも Godot 4.3 のバグなのか。
64bit版の Godot_v4.3-stable_win64.exe.zip (Windows - x86_64) を使ってみたら、.glb も .fbx もすんなりインポートできてしまった。インポートできなかったのは32bit版特有のバグらしい。どうやら 64bit版を使ったほうがハマらずに済むようだなと…。
さておき。解凍すると以下の2つのファイルが入ってる。
*_console.exe は、DOS窓(コマンドプロンプトウインドウ)が開いた状態で動作する版。DOS窓上に何か警告メッセージが表示されている時があるので、自分は *_console.exe を使ってる。
ひとまず、適当な名前でプロジェクトを新規作成。
_Download for Windows - Godot Engine
最初は32bit版の Godot_v4.3-stable_win32.exe.zip (Windows - x86_32) を使ってみたけれど、blender からエクスポートしたモデルデータ(.glb、.fbx)がインポートできずに Godot Engine が落ちて落ちて落ちまくる不具合に遭遇して困ってしまった。.obj ならインポートできるのだけどな…。32bit版のバグなのか、それとも Godot 4.3 のバグなのか。
64bit版の Godot_v4.3-stable_win64.exe.zip (Windows - x86_64) を使ってみたら、.glb も .fbx もすんなりインポートできてしまった。インポートできなかったのは32bit版特有のバグらしい。どうやら 64bit版を使ったほうがハマらずに済むようだなと…。
さておき。解凍すると以下の2つのファイルが入ってる。
Godot_v4.3-stable_win64.exe Godot_v4.3-stable_win64_console.exeどちらかを実行すると、Godot Engine の画面が表示される。
*_console.exe は、DOS窓(コマンドプロンプトウインドウ)が開いた状態で動作する版。DOS窓上に何か警告メッセージが表示されている時があるので、自分は *_console.exe を使ってる。
ひとまず、適当な名前でプロジェクトを新規作成。
◎ 3Dゲームっぽい画面の基礎 :
Godot Engine は、ノードと呼ばれるオブジェクトを追加していくことでゲームが作れる。
とりあえず、最低限の3Dゲームっぽい画面に見えてくれそうなノード構成を試してみた。
一応ざっくり説明。読み飛ばし推奨。
前述のようにノードを配置すると、Godot Engine の画面上では以下のような見た目になる。(箱のサイズ等は弄ってる)
画面右上の右向きの三角をクリックするか、F5キーを押せば実行できる。最初の実行時は「メインシーンが指定されてないけどどうする?」みたいなダイアログが開くけど、現在開いているシーンを使う、的な選択肢を選べばOK。
以下のような実行画面が表示された。画面内に、MeshInstance3D で指定したソレが表示されている。
そして、StaticBody3D を登録してあるので、この板はピクリとも動かない…。
とりあえず、最低限の3Dゲームっぽい画面に見えてくれそうなノード構成を試してみた。
- 画面左上にあるシーンタブの、左上の「+」ボタンをクリックすればノードを追加できる。
- 各ノードはドラッグアンドドロップで位置や階層を変更できる。
Node3D ├─ Camera3D ├─ DirectionalLight3D └─ StaticBody3D ├─ MeshInstance3D └─ CollisionShape3D
一応ざっくり説明。読み飛ばし推奨。
- Node3D は、3Dのオブジェクトの基礎となるノード。Godot 3.x では Spatial というノード名だったけど、4.x では Node3D に置き換わった。たぶん。
- Camera3D は、カメラ担当ノード。Godot Engine で3Dゲームっぽいものを作ろうとする場合、必ずカメラが必要になる。これを追加し忘れて、実行しても画面に何も出なくておかしいなー変だなーと悩むのは Godot Engine のあるあるネタ。
- DirectionalLight3D は平行光源。太陽の光の向きを指定するというか…。一方向から平行に照明を当ててくれる。
- StaticBody3D は、画面内で静止している物体を入れておくノード。地面とか床とか壁とか、その世界の中で動かないものを担当する。更に StaticBody3D は、見た目を担当するノードと、コリジョン(アタリ判定、衝突判定)を担当するノード、2種類のノードを含めることになる(子ノードとして登録する)。
- MeshInstance3D は、表示されるポリゴンモデルデータを担当するノード。見てくれ担当。
- CollisionShape3D は、コリジョン/アタリ判定のための領域を指定するノード。アタリ範囲担当。
前述のようにノードを配置すると、Godot Engine の画面上では以下のような見た目になる。(箱のサイズ等は弄ってる)
画面右上の右向きの三角をクリックするか、F5キーを押せば実行できる。最初の実行時は「メインシーンが指定されてないけどどうする?」みたいなダイアログが開くけど、現在開いているシーンを使う、的な選択肢を選べばOK。
以下のような実行画面が表示された。画面内に、MeshInstance3D で指定したソレが表示されている。
そして、StaticBody3D を登録してあるので、この板はピクリとも動かない…。
◎ 物理計算するオブジェクトを追加する :
重力が影響して落ちていくオブジェクトを追加したい。そんな時は、RigidBody3D ノードを使う。
今回は、RigidBody3D の子ノードの MeshInstance3D や CollisionShape3D に、球(SphereMesh、SphereShape3D) を指定してみた。
実行すると以下のようになる。
球が、重力で落ちていって、StaticBody3D の板の上で止まっていることが分かる。
これで、最低限、物理計算で何かが動いてるっぽい感じの画面は作れた。これをアップグレードして、それらしいゲーム画面を作っていく。
Node3D ├─ Camera3D ├─ DirectionalLight3D ├─ StaticBody3D │ ├─ MeshInstance3D │ └─ CollisionShape3D └─ RigidBody3D ├─ MeshInstance3D └─ CollisionShape3D
今回は、RigidBody3D の子ノードの MeshInstance3D や CollisionShape3D に、球(SphereMesh、SphereShape3D) を指定してみた。
実行すると以下のようになる。
球が、重力で落ちていって、StaticBody3D の板の上で止まっていることが分かる。
これで、最低限、物理計算で何かが動いてるっぽい感じの画面は作れた。これをアップグレードして、それらしいゲーム画面を作っていく。
◎ 補足。組み込みの形状を指定する流れ :
見てくれを担当するノード、MeshInstance3D は、あらかじめ簡単な形状を組み込みで持っている。その組み込み形状を選ぶ操作もメモしておく。
MeshInstance3D ノードを選んでる状態で、画面右端のインスペクタータブで形状を選ぶ。Mesh という項目が「空」になっているはずなので、その右の下向きの三角?をクリック。
選べる形状がずらりと表示される。
Box は箱。Sphere は球。アイコンを見れば、大体の形は想像できるかな…。
BoxMesh を選んでみた。箱が表示される。この箱の大きさを指定したい。箱のアイコン?をクリック。
変更できる項目がずらりと表示される。
Size を変更してみた。大きさが変わって、箱が板のような見た目になってくれた。
同様に、コリジョン形状も選択することができる。CollisionShape3D を選んだ状態で、インスペクタータブを操作する。Shape が空になっているのでクリック。
これも選べる形状がずらりと表示される。
BoxShape3D を選んでみた。これも大きさを変更できる。BoxShape3D と表示されてるところをクリック。
これも、Size を変更することで大きさを変えられる。先ほど MeshInstance3D で指定した値と同じにしておけば、表示されている箱(板?)と同じサイズのコリジョン範囲を指定できる。
MeshInstance3D ノードを選んでる状態で、画面右端のインスペクタータブで形状を選ぶ。Mesh という項目が「空」になっているはずなので、その右の下向きの三角?をクリック。
選べる形状がずらりと表示される。
Box は箱。Sphere は球。アイコンを見れば、大体の形は想像できるかな…。
BoxMesh を選んでみた。箱が表示される。この箱の大きさを指定したい。箱のアイコン?をクリック。
変更できる項目がずらりと表示される。
Size を変更してみた。大きさが変わって、箱が板のような見た目になってくれた。
同様に、コリジョン形状も選択することができる。CollisionShape3D を選んだ状態で、インスペクタータブを操作する。Shape が空になっているのでクリック。
これも選べる形状がずらりと表示される。
BoxShape3D を選んでみた。これも大きさを変更できる。BoxShape3D と表示されてるところをクリック。
これも、Size を変更することで大きさを変えられる。先ほど MeshInstance3D で指定した値と同じにしておけば、表示されている箱(板?)と同じサイズのコリジョン範囲を指定できる。
[ ツッコむ ]
#2 [godot][zatta] ゴルフコースモデルデータを作成中に悩んでしまった
blender を使ってゴルフコースっぽいモデルデータを作成しようとしたけれど、ゴルフコースには見えないモデルデータになってしまって悩んでしまった。どういうモデルデータならそれっぽく見えてくるのだろう…。
ここは一つ、実在のコースをトレースしてポリゴンモデルにできないか? と思ったところでまた悩んでしまった。その場合、権利関係が絡んできたりするのではないか…?
ここは一つ、実在のコースをトレースしてポリゴンモデルにできないか? と思ったところでまた悩んでしまった。その場合、権利関係が絡んできたりするのではないか…?
◎ 100年前に作られたコースのデザインは今でも保護されるのだろうか :
昔に作られたゴルフコースなら、さすがに色々な権利が切れてたりするのではないのかなと思いついた。でも、昔に作られたゴルフコースって、どんなものがあるのだろう?
ググってみたら、世界最古のゴルフコースは、セント・アンドリュース オールドコース、ということになっているらしい。1552年に作られた、とある。
_セント・アンドリュース オールドコース - Wikipedia
日本最古のゴルフコースは、神戸ゴルフクラブ、ということになっているらしい。1903年。明治36年に創立。
_歴史 | 一般社団法人 神戸ゴルフ倶楽部
日本で二番目に古いゴルフコースは、雲仙ゴルフ場らしい。1913年。大正2年。
_雲仙ゴルフ場
さて、約100年前、あるいは470年前のゴルフコースデザインは、今でも法的に保護されていたりするのだろうか…? どうなんだろ…? 著作権ですら70年も保護されることになっていてふざけんなって感じなのに、それより長期に渡って保護されちゃうとしたら、それはさすがにおかしい気もする…。
そもそもコースデザインって一体何で保護されるのか。意匠権? だとすると日本国内の場合25年で切れることになるのかな。ただしそれは最長の場合、とも書いてある…。しかも毎年登録料を払わないと維持されないっぽい…?
_意匠制度の概要 | 経済産業省 特許庁
あるいは著作権で保護されるのだろうか。しかし、ゴルフコースって著作権が適用されるものなのか? 著作権が認められるには条件があるはずだけど…。
_著作権とは?権利の種類・期限・著作権侵害にならないケースなどを分かりやすく解説!
ゴルフコースは一体何で保護されているのか。あるいは保護されていないのか。ググってみたけれど、それらしい解説には辿り着けなかった…。勝手に使っていいのか、使ってはいけないのか、どっちなんだろう…。
とかなんとか考えていくと、現実にはありえない奇抜なコースデザインのゴルフゲームがたくさんあることにもなんだか納得してしまう。実在するコースを盛り込むのは、ひょっとすると権利的に面倒臭い可能性が…? 法律に詳しい専門家に問い合わせをするより、最初からトンデモコースを作っちゃったほうが安心だよな…。
ゴルフ場の名前を出してしまうのはアウトだとしても、なんだか似た感じのコースがゲーム等で出てくるのは、アウトなのかセーフなのか。よく分からん…。
ちなみに、韓国ではアウトらしい。そういう裁判事例を見かけた。
_他人が運営するゴルフ場の様相を再現した3D映像を製作しスクリーンゴルフ運営会社に提供した行為は成果物盗用不正競争行為に該当するとされた事例 | 判例データベース - 知的財産に関する情報 - 韓国 - アジア - 国・地域別に見る - ジェトロ
日本ではどうなるの…?
ググってみたら、世界最古のゴルフコースは、セント・アンドリュース オールドコース、ということになっているらしい。1552年に作られた、とある。
_セント・アンドリュース オールドコース - Wikipedia
日本最古のゴルフコースは、神戸ゴルフクラブ、ということになっているらしい。1903年。明治36年に創立。
_歴史 | 一般社団法人 神戸ゴルフ倶楽部
日本で二番目に古いゴルフコースは、雲仙ゴルフ場らしい。1913年。大正2年。
_雲仙ゴルフ場
さて、約100年前、あるいは470年前のゴルフコースデザインは、今でも法的に保護されていたりするのだろうか…? どうなんだろ…? 著作権ですら70年も保護されることになっていてふざけんなって感じなのに、それより長期に渡って保護されちゃうとしたら、それはさすがにおかしい気もする…。
そもそもコースデザインって一体何で保護されるのか。意匠権? だとすると日本国内の場合25年で切れることになるのかな。ただしそれは最長の場合、とも書いてある…。しかも毎年登録料を払わないと維持されないっぽい…?
_意匠制度の概要 | 経済産業省 特許庁
あるいは著作権で保護されるのだろうか。しかし、ゴルフコースって著作権が適用されるものなのか? 著作権が認められるには条件があるはずだけど…。
_著作権とは?権利の種類・期限・著作権侵害にならないケースなどを分かりやすく解説!
ゴルフコースは一体何で保護されているのか。あるいは保護されていないのか。ググってみたけれど、それらしい解説には辿り着けなかった…。勝手に使っていいのか、使ってはいけないのか、どっちなんだろう…。
とかなんとか考えていくと、現実にはありえない奇抜なコースデザインのゴルフゲームがたくさんあることにもなんだか納得してしまう。実在するコースを盛り込むのは、ひょっとすると権利的に面倒臭い可能性が…? 法律に詳しい専門家に問い合わせをするより、最初からトンデモコースを作っちゃったほうが安心だよな…。
ゴルフ場の名前を出してしまうのはアウトだとしても、なんだか似た感じのコースがゲーム等で出てくるのは、アウトなのかセーフなのか。よく分からん…。
ちなみに、韓国ではアウトらしい。そういう裁判事例を見かけた。
_他人が運営するゴルフ場の様相を再現した3D映像を製作しスクリーンゴルフ運営会社に提供した行為は成果物盗用不正競争行為に該当するとされた事例 | 判例データベース - 知的財産に関する情報 - 韓国 - アジア - 国・地域別に見る - ジェトロ
日本ではどうなるの…?
◎ 宣伝材料にならないだろうか :
ゴルフ場のコースデザインをゲームだのアニメだので使っていいよと言い出すことで、ゴルフ場の宣伝になったりはしないかな、などとつい妄想してしまった。
「ウチのゴルフ場の名前を宣伝してくれるならコースデザイン使っていいよ」
「でもさすがに全ホールを使われるとなんかヤバそうだからウチの自慢のn番ホールだけなら使っていいよ」
「せっかくだからn番ホールの地形データも配布しちゃうよ」
みたいな。
例えば、アニメ番組の中で実在の場所が登場すると、聖地と称されて観光客が増えたりする現象が稀に起きたりするけれど、あんな感じの展開をほんのり期待できないか…。例のプール、みたいな感じで、○○業界では有名なあの○○ゴルフ場の○番ホール、として広まったりしないか…。そのうちどこぞのユーチューバさんが「ここがあの聖地! ○○ゴルフ場です!」と動画の中で紹介し始めたり、とか…。
そんなバカ妄想をしてみたものの、ゴルフ場と言うのはゴルフのプレイヤーさんに来てもらって商売してる場所だから、ゴルフをしない観光客が増えても旨味も何も無いよなと気が付いた。そもそも観光客の類が入ってもいい場所なの…? ダメなんじゃないの? 行ったことないから分からんです。
ゴルフ場の名前だけが広く知れ渡っても、これっぽっちも嬉しくない業界、なのではないかなあ…。他の業界とは色々違うはず…。たぶん。知らんけど。
「ウチのゴルフ場の名前を宣伝してくれるならコースデザイン使っていいよ」
「でもさすがに全ホールを使われるとなんかヤバそうだからウチの自慢のn番ホールだけなら使っていいよ」
「せっかくだからn番ホールの地形データも配布しちゃうよ」
みたいな。
例えば、アニメ番組の中で実在の場所が登場すると、聖地と称されて観光客が増えたりする現象が稀に起きたりするけれど、あんな感じの展開をほんのり期待できないか…。例のプール、みたいな感じで、○○業界では有名なあの○○ゴルフ場の○番ホール、として広まったりしないか…。そのうちどこぞのユーチューバさんが「ここがあの聖地! ○○ゴルフ場です!」と動画の中で紹介し始めたり、とか…。
そんなバカ妄想をしてみたものの、ゴルフ場と言うのはゴルフのプレイヤーさんに来てもらって商売してる場所だから、ゴルフをしない観光客が増えても旨味も何も無いよなと気が付いた。そもそも観光客の類が入ってもいい場所なの…? ダメなんじゃないの? 行ったことないから分からんです。
ゴルフ場の名前だけが広く知れ渡っても、これっぽっちも嬉しくない業界、なのではないかなあ…。他の業界とは色々違うはず…。たぶん。知らんけど。
[ ツッコむ ]
以上、1 日分です。