投稿記事

2020年 05月の記事 (5)

Heliodor 2020/05/30 22:24

最近の進捗とか(その2)

今回は有料支援者向けに、ネタバレを含む開発中のスクリーンショット数点です。


色々問題が起きたり時間が掛かったりしてますが、作業はちゃんと進んでますよという証拠です。

頑張ってますホント。

フォロワー以上限定無料

まずは無料プランで様子見を。 お気軽にフォローしてみて下さい。

無料

【 500円 】プラン以上限定 支援額:500円

このバックナンバーを購入すると、このプランの2020/05に投稿された限定特典を閲覧できます。 バックナンバーとは?

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

Heliodor 2020/05/23 18:32

最近の進捗とか

過去作の話が続いたので今作ってるゲームの話でも。
たいした話でもないんですが、一応製作中のゲームの話なのでフォロワー以上で。

フォロワー以上限定無料

まずは無料プランで様子見を。 お気軽にフォローしてみて下さい。

無料

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

Heliodor 2020/05/17 23:41

復活ポイント(続き)

ヴィータ大脱出は現在半額セール中です(追記:セール終了しました)

半額セールは5月18日の14時までです。
ヴィータ大脱出に限らず、DLsiteで何か買う予定の方はお急ぎを。


DLsite 販売ページへのリンク


さて、前回の続きです。
ヴィータ大脱出で、死んだときの復活ポイントをどこに設定するかという話でした。
大まかにいえば、ダメージを受けずに立つことのできていた場所を安全な場所と判断し、その座標を復活ポイントとして登録しておくというものです。

……ところがこれでは不十分でした。

思い出してください。ヴィータ大脱出には動く床があります。水平に動く床、垂直に動く床、鎖が付いていて上下に動く重りなどです。最後に立っていた場所へ素直に戻してしまうと、そこにあったはずの床が無いということが高確率で発生します。ではどの床に乗っていたかも一緒に記録しておいて、同じ床に戻してやればいい? いや、それもダメです。動く床のなかにはヴィータが立てない場所まで移動してしまうものがあります。障害物のぎりぎり下をすり抜けて動く床の場合、すり抜けている最中にヴィータが戻ってしまうとヴィータが障害物に押されて再落下してしまいますし、上下に動く重りが頂点まで上がりきった時にヴィータが戻ってしまうと天井と重りに挟まれて大変なことになります。


移動ブロック、壊せるブロック……。正直ステージ4は難し過ぎたかなと反省してます。

そこで、動く床に乗っている間も座標の記録をやめるようにしました。動く床の上で復活することを完全に諦めたのです。こうすると「普通の地面から動く床にジャンプし、そこからさらに飛び降りて死んだ」場合には普通の地面の場所まで戻ります。動く床から別の動く床にジャンプして…などと動く床の間をジャンプで移動した末に死んだ場合は結構前の場所まで戻されてしまいますが、まあそこは許してもらうことにしましょう。

……ところが、これでも不十分なんですね。

ヴィータ大脱出には破壊可能かつ上に乗ることのできるオブジェクトがあるんです。壊せる箱、壊せるブロックです。これらは動く床のように勝手に移動したりはしませんが、ヴィータが復活したときに既に存在しない可能性があります。例えば、ヴィータが箱の上からジャンプし、落下しながらその箱を攻撃して破壊し、さらに落下し続けた先で死んだ場合です。チャージショットを使うと反射してきた弾で自分が立っている箱を破壊できるので、もっと簡単に実現できます。このとき復活しようとしても復活ポイントにあった箱はすでに消えています。破壊可能なブロックも同様です。

それなら、破壊可能なオブジェクトの上にいた場合も復活座標の更新を止めておけばよさそうです。ヴィータが操作可能かつ接地していて、接地先が破壊可能なブロックでも動く床でもない場合に、その座標を復活ポイントとして記録します。

基本的にはこれでOKなのですが、ただ気になるのは、ほとんどすべてのブロックが破壊可能ブロックであるようなステージが存在することです。ここの場合、スタート地点以外の足場は大部分が破壊可能ブロックですので、スタート地点以外では復活ポイントの設定がなかなか行なわれず、ゴール直前で死んだ場合でもスタート地点に戻されてしまう可能性があります。それではあんまりですので、復活ポイント設定の方法を少し変えることにしました。

ひとつしかない復活ポイントを更新し続けるのではなく、復活ポイントの候補を追加していくようにしたのです。復活ポイントの追加は、最後に記録した復活ポイントから一定距離だけ離れた場合にのみ行われるようにしました。こうすれば、じっとしていた場合に同一座標が追加され続けてしまうという無駄がなくなります。


のちに調子に乗って追加した空中ダッシュ。色々な意味で問題あるけどこれはもういいかなって……。

ヴィータが死んだら最新の復活ポイントを調べ、床や地面が存在するならそこに戻します。床や地面が存在しない場合は一つ前の復活ポイントを調べます。そこがダメならさらに前の復活ポイントを見ます。こうして復活ポイントを戻しながら調べていくと、やがて復活可能な地点が見つかるはずです。万が一、すべての復活ポイントが使えなかった場合は仕方がないのでスタート地点に戻します。

これで、安心して落花死してもらえますね!


……ちなみに、今だから言いますが、これにはまだ罠があって、どこにジャンプしても届かずに落下してしまうという地形的に詰んだ状態の場合には対処できません。例えば画面内の大部分のブロックを破壊し、空中にポツンと残ったブロックの上に立っている場合です。どこにジャンプしても左右にある地面に届かず、下は奈落という状態ですので、そこから落下して死んで復活しても、どこにも行きようがありません。幸いにもそういうことが起こる可能性のある地形はエキストラステージだけですので、そこは目をつむることにしました。
ぶっちゃけエキストラステージは理不尽すぎてボツにしたデータの寄せ集めですので……。



ヴィータ大脱出は発売してもう何年もたちますが、落花死からの復活で詰んだみたいな苦情は届いていないので、多分大丈夫だと思います。多分……。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

Heliodor 2020/05/14 04:03

雑談

復活ポイントの続きの話がまた長くなったので推敲するの面倒臭(ry
息抜きに全然関係ない話というかラクガキ。



料理で使った包丁を洗う。




拭く前に軽く振って水気を払う。





!?






注:このお話はフィクションです。
刺さったりしてませんマジでいやちょっと飛(ry





みんなも気をつけようね!!

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

Heliodor 2020/05/05 02:34

復活ポイント

いつの間にかDLsite様にてヴィータ大脱出が1万ダウンロード達成していました。
本作を購入して頂いた皆様、本当にありがとうございます。

いつの間にかと言ってももう7年も前の作品ですし、半額セールでブーストも掛かってますし、人気アニメの二次創作ですし……なんか色々ズルいような気もしますが、それでも1万本という大台は本当に嬉しいです。


今後ともヘリオドールをよろしくお願いします。



ヴィータ大脱出は現在半額セール中(唐突な宣伝)
DLsite様では半額+10%還元、FANZA様はなんと半額+20%還元というお得状態。この機会に是非どうぞ。


DLsite 販売ページへのリンク
FANZA 販売ページへのリンク


さて、今回はそんなヴィータ大脱出の話でも。

ヴィータ大脱出でユニゾンヴィータを使うと、死んでもその場で自動復活します。これ、一見単純な処理のようでいて、けっこう試行錯誤したんですよ。

まず普通に敵にやられたら、その場で復活して(ダウン状態からむくりと起き上がって)完了です。簡単です。空中で敵にやられた場合でも、着地後にダウン状態になるので、そこから起き上がって復活完了です。ここまでは良いのです。でも、もし奈落の底に落ちて死んだら?


落下死は騎士甲冑フル装備でも一発即死。でもユニゾンヴィータなら何回落ちても大丈夫!?

ヴィータ大脱出では画面外に落下するとそこで終了ですので、着地という状態にはなりません。着地後にむくりと起き上がることはできないのです。仮にできたとしてもそれは画面外での出来事ですから、意味がありません。なので、画面外に落下して死んだら落ちる前の場所まで戻すようにします。落下後に地面のトゲに当たって死んだような場合も同様で、飛び降りる前の場所まで戻せば良いわけです。
(追記:すっかり忘れてましたが、落下即死はあまりにも評判が悪かったので、アップデートで通常のヴィータでも騎士甲冑が一段階壊れて復帰するようになりました)

落ちる前の場所とか飛び降りる前の場所とか気軽に書きましたが、具体的にはどこに戻れば良いでしょうか。真っ先に思いつくのは「最後に立っていた場所」です。ヴィータには接地状態と空中状態の2つがあります。接地状態とはキャラクターが地面の上で動いている状態で、空中状態とは完全に地面から離れているときの状態を指します。どちらの状態になっているかはキャラクターの足元に地面が存在するかどうかで決まります。ヴィータが接地状態の時にだけ座標を復活ポイントとして記録しておきくようにし、これを一定時間ごとに繰り返します。すると復活座標がどんどん上書きされますが、空中状態の時は位置を記録しないため、結果的には最後に接地状態だった場所、つまり最後に地面に立っていた場所が記録されている事になります。


空中で敵に当たって落下からの即死という理不尽なピ○ゴラスイッチ。……さて、どこに復活する?

余談ですが、ヴィータのアニメにも接地アニメと空中アニメの2種類があります。接地アニメとは地面の上で動作することを前提に描いたアニメで、空中アニメとは完全に地面から離れているという想定で描いたアニメです。接地アニメのときに何らかの原因で空中状態になってしまった場合は、自動的に落下アニメに移行します。逆に、空中アニメの時に接地状態になった場合は、自動的に着地アニメに移行するようになっています。こうすると、空中で立ってしまうという事故を無くすことができます。ちなみに、想定外の出来事で空中状態になってしまった場合は落下アニメに自動的に切り替わるようになっています。例えばスライディング中に落下したときなどに起こります。

話を戻します。前述のとおり、復活するには最後に接地状態だった場所に戻せばよいわけですが、このままだと針の床みたいに立っているだけでダメージを受ける場所に戻されてしまう可能性もあります。それではマズイので接地状態かつ非ダメージ状態の場合のみ復活座標を更新するようにしました。正確には「接地状態かつ操作可能状態だった場合のみ」です。ダメージを受けていたり、ダウンして地面に横たわっていた場合も含めて、とにかく操作不能になっている時には座標を記録しないようにします。あくまでも接地状態かつ自由に操作できている場合のみ、その場所を記録します。ただ、これだけですと「無敵アイテムを取っている最中にダメージ地形を通過した」ときにも復活ポイントとして記録されてしまう場合があるため、「マップに配置されているダメージ範囲と重なっていないこと」も条件に追加します

こうしておくと、奈落に落ちて死んだ時には直前まで立っていた(接地していた)場所まで戻ります。ジャンプ中に敵に衝突して死んだときはジャンプした場所まで戻ります。地面を走ってトゲトゲ地形に突入して死んだ時は、ダメージを受ける直前の場所に戻ります。普通に地上で敵にやられた時はその場で復活です。その場合は敵の目の前で復活する事になりますが、少しの間無敵にしておけば良さそうです。

これで大丈夫?

いいえ。
長くなったので続きは次回にします。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

月別アーカイブ

記事のタグから探す

限定特典から探す

記事を検索