【Godot学習】脱衣ブロック崩し的なものができてきた(アンケート終了)
どうも、ばんくろです。
今回は、Godotを勉強しているというお話です。
お急ぎの方のための三行要約
- 脱衣ブロック崩しのようなものができてきたよ!
- "脱衣"をどう実現するかで手こずったよ!
- 課題は山積!どうしよう!
本題:Godotで脱衣ブロック崩し!?
序章:Godot使いたいな
私は最近、Godot Engineというゲームエンジンを使いこなせるようになりたいと思うようになりました。
そこで、習作としてブロック崩しを作ろうとしました。
しかし、すでに作り方を解説している先輩がいたので、「じゃあ私は脱衣ブロック崩しを作ろう」と思い直したのでした。
第1章:普通のブロック崩しなら楽勝
公式ドキュメントや先輩方の解説を参考にしつつ、まずは普通のブロック崩しを組めるように、部品を作っていきました。
当たり判定って、自分で処理を書くと結構な手間なんですが、Godotのみならずたいていのゲームエンジンではそれを自動でやってくれる仕組みが用意されているから助かります。
プレイヤーの操作を直接受けるパドルの動き(マウスカーソルを追いかけるように横移動する)を作るのもそんなに難しくないし、壁も言わずもがな。
しかし、苦難はここからなのでした……。
第2章:どうやって画像をマスクすればいい?
脱衣ブロック崩しのブロックは、服の画像を一部切り取ったものをたくさん並べて元通りに見えるようにして、ブロックが崩れたときに服が破れたように見せる必要があるのですが、いちいち画像加工ソフトで1枚1枚切り取ってられないので、プログラム上でそれを実現することになります。
ところが、これのやり方がしばらくわからなかったんです。
途方に暮れました。
(せっかく絵も描き下ろしたのに……)
第3章:シェーダースクリプト?
あれこれ調べた結果、シェーダーというものをいじるといいらしいということが分かりました。
しかし、そのためにはゲームエンジン本体で使うスクリプトとは別に、シェーダースクリプトなるものを覚える必要がありました。
そういえば、2年ほど前にモザイクをかけるシェーダーを作ったっけ……。
すっかり忘れてました。
第4章:欲は深くなる一方
それで、何とか形になったものをテストプレイしていると、「親切なUIにしたいな」とか「背景が寂しいから何かつけたいな」とか「ブロックが崩れたときにキャラの表情が変化してほしいな」とか、どんどん改善案が浮かんで要求がエスカレートしていっちゃうんですよね。
困ったもんです。
おわりに:解説記事、要ります?
ところで、この件に関する詳細な解説記事が必要だと思いますか?
もし作るとしても時間がかかりそうなんですが、よろしければ以下のアンケートにお答えください。