桃丼屋のblog

18禁の2D横スクアクションゲームを制作しています。

※18さいまでのひとはみてはいけません。

閲覧・コメントありがとうございます。

コメント欄での返信はしたりしなかったりしますがご了承下さい。
バグ・不具合報告等、ソフトウェアのご利用に関するお問い合わせにつきましては次回以降の記事中でご回答します。

下からすり抜けられる床として設定したアクティブオブジェクトで動く床を作成していたのですが、縦に動く床の挙動で詰まってしまいました。
 ○着地したにもかかわらず、次の瞬間にすり抜けて落ちてしまうことがある
 ○床が降りていくときに、プレイヤーが一瞬浮いてすぐ着地を繰り返してしまう
いろいろいじったり、wikiやアップローダーを徘徊した結果、これらの問題は下からすり抜けられない通常の床なら発生しないことが判明。
解決方法として、
 1.プレイヤーが動く床に乗ると同時に、すり抜けられる床と同じ位置に通常の床を作成。
 2.プレイヤーが床から降りてY座標が床以下になったとき、またはX座標が床の範囲外になったときに通常の床を破壊。
これで上記の問題は解決。

ところがまだ、
 ○結構な確率で、縦に動く床の上でジャンプボタンを押しても一瞬反応するが次の瞬間には着地してしまう
という問題が残ってしまいました。
いろいろ手を尽くしてもダメで、「縦に動く床にこだわるのはやめて、別のギミックを考えるかなあ」と諦めかけた頃に、ふと床の動きをsin関数で制御するのをやめて、プロパティから楕円運動を選んで横の動きを0にしてみたら、あっさりと上記の問題が発生しなくなりました。
 ただこの方法だと、中心点が固定値なので、コピペで増やしてひとつの命令の高速ループ+通し番号で制御というのができず、動く床の数だけ同じ命令を繰り返さなきゃならないという手間が発生するのですが、他に方法が無いのでしょうがない。

なんだかなあ、こういう既成エンジンって、ゲーム作成のための便利機能が沢山あって、取っ掛かりはすごくいいのですが、その分ブラックボックスの中にあることも多く、どうなってるのか分からない、どうすればいいのか分からないことが多々あるんですよね。
 NscripterでBasic脳でアクションを作ってたときは、すべて自分でゼロから作ってたので、行き詰って散々悩んだ問題が解決したときは「なんでこんなことが分からなかったんだ俺のばかばかばか」と、全てが自分の脳味噌次第だったのですが、CF2.5に移行してからは、「トライ&エラーを繰り返しまくった果てに問題解決。原因は不明のまま」ということがちょくちょくあります。
 取っ掛かりが良くて致命的エラーが出ないけどブラックボックスが多い既成エンジンか、全てが自分次第のプログラミングか。
 ものづくりにラクな道はないってことですね。

ようやく迷宮脱出、これからはサクサク進みそう、と思ったらCF2.5使い始めて以来初めて落ちた・・・
半日分の作業が泡と消えました。
重くなってきてるのかも。
こまめなバックアップは必要ですね。

すっかりブログ放置してしまいまして申し訳ありません。
製作のほうは年度末の忙しさを縫って日々進めております。
Clickteam Fusiion2.5は、初期のとっつき易さは抜群で、「あんなに苦労したシステムがこんなに簡単に!」と感動していたのですが、進めれば進めるほど、プログラミングで組んでいくのと難易度が変わらなく(時には余計に難解に)なっていって、現在悪戦苦闘しています。
複雑なプログラムを要することが簡単に実現できるために、かえって応用が効かず、簡単にできるだろうと考えていたことで行き詰っています。
一度形になったものの焼き直しなのでそれほど苦労しないだろうと考えてたのですが、甘く見てました。

それでもCF2.5で組み直すメリットは、「エラーメッセージを吐いて強制終了するようなバグが出ない」ということです。
それこそが今の自分にとって何にも換えがたい要素、というか、最初からちゃんとした既成エ品のゲームエンジンで作ってればとっくにリリースできてたのに、と後悔しきりです。
あと、元のゲームに比べスクロールが格段に滑らか!
女キャラが常に画面中央に来る女主人公ゲーに比べ、女キャラが画面のあちこちに動き回る男主人公ゲーではスクロールの滑らかさは重要です。スクロールがカクカクだと、男主人公だけちゃんと見えて肝心の女キャラが見にくいですから。

Clickteam Fusion2.5(旧MMF2)への移植作業を進めてます。
去年末にSTEAMでセールしてたのでチャンスとばかりに購入。
やっぱり2Dアクション専用のゲームエンジンだけあってよく出来てますね。
去年までのエラーとバグの迷宮がウソみたいです。
始めのステージを作って、1対1で敵と戦えるまでは拍子抜けするぐらい簡単に組めました。
一番気になる全画面アニメとズーム機能もいけそうだし、とりあえずやりたかったことはこのエンジンで実装可能かと。

問題は、敵をどうやって量産するか。
マニュアルの、横スクジャンプアクションのサンプルプログラムを見る限りは、単純に敵キャラを置くだけならフレームエディタ上でコピペしていけばOKらしい。
けど、当たり判定用の別オブジェクトとシンクロさせて、PMOエクステンションと関連付けて・・・となると、数日考え込んでしまいました。
グーグル先生にご教示願ったところ、某スレ過去ログに貼られてた、一種類のPMOで複数の敵を動かすサンプルプログラムが役立ちそう。
で、理解も浅いままに組み込んでみたけど動かない。
丸一日あれこれ検証して、当たり判定用オブジェクトとアニメーション用オブジェクトを分けたからにはもうひと手間必要と気付きました。
フレーム開始時に高速ループでPMOオブジェクトと一緒にアニメーション用オブジェクトもクリエイトして、そのオブジェクトに仕込んだ変数pfxに当たり判定オブジェクトの固有値を代入。
以降の高速ループ時に、PMOオブジェクトとアニメーション用オブジェクトそれぞれの変数pfxと当たり判定用オブジェクトの固有値がイコールになるのを条件に加える、でようやく敵キャラが個別に動いてくれるようになりました。

新規

ループインデックスと通し番号と固有値がこんがらがって、私のつるぺた脳では理解するのに骨が折れました。

 ※上のGIFはブログ用にフレームレート10fpsぐらいに落としてます。

追記:
「コメント欄での返信は基本的にしていません」の方針は保留することにしました。
自分は好意的なコメントでも雑談コメントでも、もらうと浮かれてどう返事しようか小一時間(時には数時間)考えてしまう性質なので、「そんな時間があるなら制作に当てなきゃ」という焦りで「返信はしない」縛りにしていましたが、なんかこれじゃ素っ気なさすぎですね。
これからは適当にその日の作業状況や忙しさで返事したりしなかったりすると思いますが、コメントはいただけると大喜びします。
見ていただいている方もコメント下さる方もありがとうございます。



↑このページのトップヘ