PaganDogma完成といつものCF談義
おかか容疑者です。
というわけで、タイトルの通り。
自作ゲームの第一弾が昨晩完成しました~!
自分の中の構想としては、「とにかくキャラを出しつつ自分の創作世界を形作らせ、その話の合間にミニゲームが遊べるようにしよう」といったコンセプトで作ったゲームでした。
なのでどちらかといえばイメージとしてはノベルとかに近くてゲームバランスはたぶんヒドイんじゃないかなと思ってます(;´∀`) 個人的にはヌルゲーに近くしてなるべくストレスなく進められるようにしたつもりですが。
主役のアマット・ヒティに関してはまだドット絵ツールにEDGEを使っていた頃に作っていたキャラなので、うーん……1~2年前?くらいにはいたキャラですが、その他のキャラは今作が初登場となりました。
キャラの設定とかだけは脳内でずっと固めていたのですが、やっぱり早いところ形にして世に出しておきたいなと思い続けていました。
今作でそこんとこを吐き出せたのはとてもよかったなと思います(=^・^=)
ゲームバランスはいい加減で挙動もところどころおかしくて。悪い面を見ていったらキリがないようなゲーム。
でも、その中で自分のキャラがストーリーを演じ、動き、戦っている姿を見るのはなんだかんだ言っても楽しくて。
エンディングに自分の名前を入れてテストプレイで流れるのを見たとき、「ああ、これでこの作品は終わるんだな」という感慨深さが湧いてきたのは我ながらちょっと意外でした。
この瞬間は大作だったらきっとすさまじい達成感(と虚脱感)なんだろうなぁ。
そしてこの作品を完成まで導いてくれたのは、間違いなくClickteam fusion2.5のおかげです!!
このツールの仕様がわからず泣かされたことも幾度かありましたが、それでもそれを「おフランスてめぇこの野郎ふざけんなよ~!」と笑いつつ、どうにか実装してやろうと試行錯誤しているのもまた面白かったりしました。
まだ使いこなせているとは到底言えないレベルですが、購入したのが今年に入ってからなので、ゲーム開発ド素人が3~4ヶ月で不出来ながらも一つの作品を完結できたというのは驚くべきことだなと(当然開発だけやってたわけではないので実作業時間はもっと短い)。
あとAsepriteもドット絵制作マジでありがとう助かってます!!
今回もClickteam fusion2.5(CF25って略称が一番いいんだろうか)についてのあれこれを備忘録として書いておきましょ。
・インベーダー動作
オブジェクト動作に後付けで入れられたっぽい動作が下の方に並んでいて、その中で気になっていたのがこれ。
前半戦となるタルヒ戦のイメージがあまり浮かんでいなかったので、「これ使ってインベーダーリスペクトしよ!」と実装。
テストプレイでもしっかり動作するように調整し、ゲームが完成したのでビルドして実行。あとは動くかをブラウザで確認して………
なんか敵出た瞬間フリーズしてるんですけど??(マジギレ)
敵の数が多いのかと思って減らしながらビルド実行を繰り返すもダメ。
明らかに別の場所がおかしいなと思ったので試しに敵の動きをバウンスボールに変えてみたら何の問題もなく進みました。
オマエかインベーダー!!!
なんでこれだとフリーズしたのかがよくわかりません。他の後付け動作でもベクターとかは第五章で問題なく使えたんですけどね。
しかしインベーダーリスペクトは残したかったので、急遽自作でインベーダー動作を作ることとなったのでした。ふえぇ…。
・ループ処理
敵シスターが端の壁に衝突したら向きとY軸変更すればいいんだね~簡単簡単~
ぶつかった奴しか軌道変更しないんですけど!!!!(マジギレリターンズ)
なるほど、そりゃ確かに敵に弾が当たった時も当たった敵しか破壊されないもんね。条件満たしたオブジェクトしか処理されないの当たり前だよなぁ?
というわけでグロちゃんさん動画を調べてみたら最後の講座でちょうどピッタリのものが!
ご丁寧に高速ループとforeachループの解説を両方とも実践を交えて解説してくれていました。助かる 助かる(ローウェン)
同じオブジェクトのみを対象にするならforeachループの方が簡潔に処理できるっぽいですね。
MMF2はforeachループをするためにエクステンションが必要のようですが、CF2.5は元から機能として組み込まれているので講座動画とは設定の仕方が異なるようですな。
というわけでforeachループで敵シスターだけ対象にループ回して軌道変更!
こうやって多くのオブジェクトの処理ができ
できてないやん!!!!
何が悪かったのかよくわかりませんが結局foreachループだと普通に壁と衝突したときと何も変わりませんでした……(;´Д`)
なので講座動画の高速ループ+変数に通し番号をつける方法にしたら無事に処理ができました。
最初は登場した時に一度だけ通し番号をつける処理をしていたのですが、それだと一部の敵が軌道変更せずに別働隊みたいになってしまったので、壁に衝突した際に毎回通し番号をつけ直すようにしてみたらうまくいきました。
イマイチ理由がよくわかってませんが動いているからヨシ!(猫レベルの知能)
・背景を消す
今回は暗転処理に挑戦。
とはいえ大した話ではなく、ファミコンの暗転処理の仕方をもとにそれっぽく色変化しただけですが。
ファミコンの暗転処理は色数制限されていることもあり、愚直に少しずつスプライトの色を変更させて実装していたんですね。紹介しているページを見て知りました。便利機能なんてなかった。
必要なオブジェクトのみ色を変化させたアニメパターンを追加し、時間に応じてそれを変化させる。
あとは背景も色変化させて
変化させられないじゃん!!!!!!!
「背景オブジェクト」だと本当に何も変化を加えることができないんですねぇ……。
変な処理がなされないからある意味大事なのではあるけれども。むう。
なのでこの場合は「アクティブ背景オブジェクト」を使う必要があるんですな。
これなら破壊も可能だし、パターンを複数登録すればスプライトと同じように色変化も可能。よかったよかった。
これで最後には破壊させて消えると
破壊させても画面に残ってるじゃん!!!!!!(テスト時は問題なく消えたがビルド時の画面で確認)
どういうことなんですかねえ???
こういうときは必殺のゴリ押し。背景色(黒)にしたパターンを追加してそれに変更することで事なきを得ました。
急場しのぎスキルは結構高まってきたのではないかと感じている。強くなったぞ俺。
実際にビルドしてみると出てくる問題というのも結構あるんだなというのが痛感できました。
そこまでキッチリ見てこそのゲーム開発であるなと。
今後ゲーム開発を続けていくとこういう問題がいっぱい出るんだろうなと思うので、テストの余裕も持ちながら開発していきたいなと思います。
駄作であっても、一つのものを完成させたというのは多少なり自信につながります。
次はもっとゲーム性を高めたものを作って、遊んだ人が楽しいと思うゲームを目指していきましょうか!