2021/06/24(木) [n年前の日記]
#2 [love2d] love2dでマンホールっぽいADVの雛形を書いてみた
love2dを使って、
_マンホール
だか
_MYST
だかっぽい感じのADVの雛形になりそうなものを書いてみた。環境は Windows10 x64 20H2 + love2d 11.3。
以下のような感じ。8bit時代からパソコンを触ってる人なら「ああ、ハイハイ。あのタイプね。懐かしいわ」と思うソレ。
ソースや画像一式は以下。
_advtest_20210624.zip
尚、JSONの解析処理に、以下のライブラリを利用させてもらいました。ありがたや。
_rxi/json.lua: A lightweight JSON library for Lua
一応、ソーススクリプトも別途置いておきます。
_main.lua
_conf.lua
基本的には、JSONデータファイルを読み込んで、そこに記述された画像ファイルを表示して、指定領域がマウスクリックされたら次のシーンに移行するだけのプログラムというか…。
JSONデータファイルは以下。
_data.json.txt
JSONデータは、以下のような内容になっていて…。
ざっと眺めれば、なんとなく分かるだろうけど。
てなわけで、以前妄想していた通り、「JSONを用意するだけで、そういうタイプのADVを作れますよ」みたいなソレは、その気になれば簡単に実現できそうだなと…。
以下のような感じ。8bit時代からパソコンを触ってる人なら「ああ、ハイハイ。あのタイプね。懐かしいわ」と思うソレ。
ソースや画像一式は以下。
_advtest_20210624.zip
尚、JSONの解析処理に、以下のライブラリを利用させてもらいました。ありがたや。
_rxi/json.lua: A lightweight JSON library for Lua
一応、ソーススクリプトも別途置いておきます。
_main.lua
_conf.lua
基本的には、JSONデータファイルを読み込んで、そこに記述された画像ファイルを表示して、指定領域がマウスクリックされたら次のシーンに移行するだけのプログラムというか…。
JSONデータファイルは以下。
_data.json.txt
JSONデータは、以下のような内容になっていて…。
{ "Title": { "path": "imgs/img01.png", "start": 1, "area": [{ "link": "Hall", "type": "rect", "pos": [561, 399, 718, 582] } ] }, "Hall": { "path": "imgs/img02.png", "area": [{ "link": "RoomYellow", "type": "poly", "pos": [80, 201, 310, 355, 308, 594, 84, 706] }, { "link": "RoomGreen", "type": "rect", "pos": [471, 378, 673, 564] }, { "link": "RoomBrown", "type": "poly", "pos": [1059, 337, 1231, 194, 1225, 706, 1059, 587] } ] }, "RoomYellow": { ...(以下略)...
ざっと眺めれば、なんとなく分かるだろうけど。
- "Title", "Hall" がシーン名。
- "path" で、そのシーンで表示する画像ファイル名を指定。
- "area"でマウスクリックできる領域を指定。
- "link" は、移行先のシーン名を指定。
- クリック領域は、"rect"(矩形), "poly"(ポリゴン) の2種類を選べる。
- "pos" に、領域の座標値を列挙する。
- "rect" の場合の "pos" は、矩形の左上x,y座標、右下x,y座標を列挙。
- "poly" の場合の "pos" は、ポリゴンの頂点x,y座標を時計回りで列挙。
てなわけで、以前妄想していた通り、「JSONを用意するだけで、そういうタイプのADVを作れますよ」みたいなソレは、その気になれば簡単に実現できそうだなと…。
◎ 課題。 :
色々課題も見えてきた。
まず、JSONデータを作るのが面倒臭い。こんなのをエディタで手打ちとか、やってられないよなと…。JSON作成ツールを作るべきだろうけど、どういう仕様なら簡単に作れそうな印象になるのだろうか。再生プログラムに編集・書き出し機能もつけておくのが妥当なのかな…。
もう一つ。こういうタイプのソレでゲームなんか作れるの? という根本的な疑問も。いやまあ、「こんなショボい仕様でゲームなんか作れるわけないだろ」派と、「全然余裕で作れるわ」派が居るとは思うけど…。
まず、JSONデータを作るのが面倒臭い。こんなのをエディタで手打ちとか、やってられないよなと…。JSON作成ツールを作るべきだろうけど、どういう仕様なら簡単に作れそうな印象になるのだろうか。再生プログラムに編集・書き出し機能もつけておくのが妥当なのかな…。
もう一つ。こういうタイプのソレでゲームなんか作れるの? という根本的な疑問も。いやまあ、「こんなショボい仕様でゲームなんか作れるわけないだろ」派と、「全然余裕で作れるわ」派が居るとは思うけど…。
◎ 妄想。 :
課題と言うか、妄想だけど。マウスクリック領域にSE(効果音)の種類を指定出来たら雰囲気が出るかもなあ、とも。ドアをクリックしたら「ギイィ…」。階段をクリックしたら「タッタッタッタッ」。そういう音が鳴るだけでも印象は違ってくる予感。
シーンによってはループ動画を流してしまうのもアリかも。love2d の機能を調べたら、Ogg Theora 形式の動画ファイルなら再生できるらしいので、そういう仕様追加も不可能ではないのかもしれない。
_love.graphics.newVideo (日本語) - LOVE
動画再生ができれば、「夢見館の物語」っぽいのも作れるんじゃないかなあ、と…。
まあ、ゲームと言えば3DCGをリアルタイム描画するのが当たり前の昨今、今更こんなの作ってどうするのショボ過ぎるだろと言われそうだけど。ショボいが故に誰でも簡単に作れそう、という面には、また違った需要があったりしないか、と。
絵を描くのは大変だけど、写真を撮るのは誰でもできると思うので、スマホであちこちの写真を撮って適当に繋げたらゲームっぽいのができますよ、てな感じならイケたりしないかねえ、みたいな。分からんけど。
シーンによってはループ動画を流してしまうのもアリかも。love2d の機能を調べたら、Ogg Theora 形式の動画ファイルなら再生できるらしいので、そういう仕様追加も不可能ではないのかもしれない。
_love.graphics.newVideo (日本語) - LOVE
動画再生ができれば、「夢見館の物語」っぽいのも作れるんじゃないかなあ、と…。
まあ、ゲームと言えば3DCGをリアルタイム描画するのが当たり前の昨今、今更こんなの作ってどうするのショボ過ぎるだろと言われそうだけど。ショボいが故に誰でも簡単に作れそう、という面には、また違った需要があったりしないか、と。
絵を描くのは大変だけど、写真を撮るのは誰でもできると思うので、スマホであちこちの写真を撮って適当に繋げたらゲームっぽいのができますよ、てな感じならイケたりしないかねえ、みたいな。分からんけど。
◎ そういうソフトがあった記憶も。 :
昔、写真をクリックすると別の写真にズームで移行する感じで、バーチャルツアーっぽいWebコンテンツを作れるソフトがあった気がするのだけど。ググっても出てこないんだよな…。そういうコンテンツを目にして感心した記憶があるので、ソフト自体は存在してたはずなんだけど…。
もっとも、当時のことだから、Javaアプレットか Flash で再生してそうだし、仮に当時のコンテンツが残っていても、今のWebブラウザ上では表示すらできない可能性が高そう。
もっとも、当時のことだから、Javaアプレットか Flash で再生してそうだし、仮に当時のコンテンツが残っていても、今のWebブラウザ上では表示すらできない可能性が高そう。
[ ツッコむ ]
以上です。