自作ゲームの大福島

プログラムの使えない素人がCF2.5(インディゲームクリエーター)を使ってゲームを作ってみるブログです

スポンサードリンク

いる物 いらない物

モフヲです。

現在製作中のアクションゲーは大方の機能は実装出来てきています。

タイプとしては探索型アクションを想定しています。

所謂メトロイドヴァニアってやつでございます。

昔から探索アクションは好物だったので、折角cf2.5持ってるんだし、一本作ってみたいと思った事がきっかけです。

 

この記事では、私が作成に当たって考えた事を書き連ねてみます。(誰得)

何からつくりゃいいかわかんねーよ、って方の参考にでもあれば幸いでございます。 

 

*完全に私の主観なので、世間一般の定義とは異なる可能性があります。

 というか異なっていると思います。

 

探索アクションゲームの定義

・自分の行きたい所に行ける

・進行する毎に徐々に出来る事が増える

(徐々に行けるステージが増える)

・(一般的に)ボリュームがある

 

といったところでしょうか。

ゲーム用語っぽく言い換えると、

 

・攻略順が限定されない

・可逆的にステージ編成されている(ステージの行き来が出来る)

→それ故にプレイボリュームも大きくなる

・スキルUPの要素がある

これが探索アクションの定義、だと考えています。

 

次に、この定義を満たす為に、CF2.5でどんな要素を自作したらいいか、について

考えてみました。

基本的なアクション部分を除いて列挙してみます。

 

■絶対必要な物■

・一方通行でなく、戻る事も自由なフレーム構成

・プレーヤーが迷わないようにMAPの表示

・複数の攻略ルートの準備

・進行度をセーブ&ロードするシステム

・移動スキルのレベルアップ(例 二段ジャンプ・空中移動・通行不可の開放 など) 

 

■あれば便利なもの■

・世界観を表す収集アイテム

・地点間ワープ(所謂ファストトラベル機能)

 ・キーコンフィグ機能

 

作るべき要素は洗い出せたので、次に、じゃあこの中でも特殊な機能をcf2.5というソフトでどうやって実装すればいいか?をザックリ考えてみます。

 

・MAPの表示=『サブアプリケーションオブジェクト』を使って、ゲームプレイ中

       にMAP表示専用のフレームを別に表示する

・収集アイテムの表示=MAP同様に『サブアプリケーションオブジェクト』を使用

・セーブ&ロード=『INIオブジェクト』を使ってセーブデータを保存、読み込み

・キーコンフィグ=wikiを参考に、変数を使ってボタン入力を制御する

 

といったところですか。

こうして洗い出せたところで、それぞれのオブジェクトを学習していったわけですが、それらに関してはまた別の記事で。

 

 

ちょいと帰ってきてみれば

久しぶりに海より深く暗いトンネル、ゲーム製作の世界に舞いもどってきました。

去年ふりーむ!に途中段階の物を投稿してからモデルの愛猫が旅立ちモチベーションが持たず放棄しておりましたが、最近ふとしたきっかけで再開しました。

 

再開の要因となったのが、steamでジャケ買い?した2本のゲーム。

 

store.steampowered.com

store.steampowered.com

どちらも洋ゲーでありますが、価格が購入当時併せて3000円程度でしたが、

いずれも振りきれた世界観に加え、独特かつ美麗なグラフィックで、価格以上に楽しませて頂きました。

また機会があればレビューします。

 

やっぱね、いいゲームに巡りあうと作りたくなっちゃいますね。

これがショボくてもゲ製畑の人間の性(さが)なんでしょうかね。

 

そんなロマンシング・サガ(性)に突き動かされて現在製作中の物は、やっぱりプラットフォームアクションです。

 

前回の猫アクションではステージクリア型でしたが、今回は所謂「メトロイドヴァニア」形式で作成しております。

SFCの『スーパーメトロイド』やPS『悪魔城 月下の夜想曲』に心酔していた世代です)

 

とは言え、現時点ではゲーム作成の基礎部分(キーコンフィグ機能とか)の作成段階ですので、何も公開出来る物がありません。

ですが、いくつかCF2.5に関してわかった事もありますので、ちょこちょこ公開させて頂く予定です。

それでは皆様よきゲ製ライフを

f:id:vobo:20170619024439j:plain

 個人的にrain worldは今年の一番でもいいと思っている(早)

くっそ鬼畜だけど…

 

 

看板娘モモ氏が旅立ちました

皆様お久しぶりで御座います。

突然ですが、当サイト看板娘のモモ氏(享年13歳)が旅立っていきました。

 

f:id:vobo:20160131002125p:plain

最期食事をしなくなり、寝たきりになって約1週間。

最期は家族の腕の中で眠るように息を引き取ったそうです。

f:id:vobo:20160118144903p:plain

私は彼女と出会って1年も経っておらず、直接触れ合う事は数度しかありませんでしたが、生き物とは不思議なもので、まるで我が家族のように悲しみがおそいました。

f:id:vobo:20160101170604j:plain

動物も人間もいずれは死ぬ時が来る事は分かりきっている事。そうは言っても割り切れなかったり、理解出来ていても感情が追いつかなかったりするのが人間という物でしょう。

ですが、彼女に関しては本当に家族から愛され、また、彼女も家族を愛していたと思います。急に脱走してみたり、と色々お騒がせもしていましたが、最期に愛する家族の下で過ごせた事は彼女にとっても家族にとっても素晴らしい事だっただろうと思います。

 

f:id:vobo:20151217012300j:plain

旅立つ直前、知人は「今日がお別れかな…」という予感があったと言います。

最期を看取る覚悟を決めていた知人は、改めて彼女を撫でながら、これまで共に過ごしてくれた事の感謝を伝えたと言います。

その言葉を聴いた後、まるでそれを待っていたかのように最期に一鳴きし、すっと長い眠りについたようです。

 

 

ペットと人との関わり方は人それぞれだと思います。(私は経験無いのにアレですが…)死生観に関しても人それぞれだと思います。

ですが、私はその話を聞いて、お互い本当に種族を超えて家族になっていたんだな、と感じました。

自分がもし残る人生、ペットを飼う事があれば、知人のように最期まで、旅たつ直前まで責任を持って愛してあげたいと感じました。

 

 

……と、ここは何のブログだ?という感じになってしまいましたが、一つのケジメ?として書かせて頂きました。

しばらく後になるかと思いますが、次回からも通常通りに続ける予定でおります。

今日まで当ブログを、というかモモ氏を御覧頂いて、心配してくださった方に大変感謝しております。ありがとう御座いました。

 

そして最期に、

f:id:vobo:20151204015227j:plain

f:id:vobo:20151213124418j:plain

f:id:vobo:20151207010453j:plain

f:id:vobo:20151224232347j:plain

f:id:vobo:20160229094603j:plain

 

モモ、本当に今までありがとう

 

猫回 終章  ~旅立ちの季節~

f:id:vobo:20151212005918j:plain

ふむ…春を迎え、そろそろ良い頃合で御座ろう。

拙者、約束通り旅に出ようと思うで御座る。

 

f:id:vobo:20151129140232j:plain

家人は本当に良くしてくれたで御座るが、拙者、同じ所に長く留まるは出来ぬ性分。

まだ見ぬ地への思いが抑え切れんで御座る。

 

f:id:vobo:20151204013659j:plain

家人よ、本当に世話になった。

…?何、心配には及ばぬ。離れておっても拙者は侍。何事かあれば必ずやこの刀で悪を斬る為、馳せ参じようでは御座らんか。

 

f:id:vobo:20151213130951j:plain

ほれ、そんな顔をするでない。

いつか又再会する時が来よう。その時まで地に足を付けて生きてゆくで御座るぞ。

 

f:id:vobo:20151211012448j:plain

それでは行くとしよう。

聞けば「虹の橋」という土地が彼方にはあるという…

そこは楽園のような場所だと言うが…

どれ、この目でしかと見届けようというものだ。

 

f:id:vobo:20160229094603j:plain

では参る。

皆の者、今日までご苦労で御座った!

それでは、また会う日までさらばだ。

 

             完

 

小ネタ PMOを使わずに『object is falling』状態を判定するには

f:id:vobo:20160324002336p:plain

…よこさんか。

早ようそのおトトを拙者によこさんかッ!!!!!

 

今日は小ネタ更新です。

前回から引き続きアニメーションネタですが、PMO(platform movement object)を使用すると、プレーヤーが空中にいる状態を、

・object is jumping(プレーヤーが背景に重なっていない)

・object is falling(プレーヤーが背景に重なっておらず、下方向に動いている状態)

の二つに判定してくれます。

これはつまり

 f:id:vobo:20160324005152p:plain

上方向に上昇中のアニメーションと、(ジャンプボタンを押した時)

f:id:vobo:20160324005219p:plain

下方向に落下中のアニメーション(高所から落ちた時も含めて)をそれぞれ簡単に設定出来るよ!という事になります。

 

で、これをPMO無しで上昇中と落下中をどう判定するか、という事ですが、

f:id:vobo:20160324005941j:plain

*変数『重力』は1フレーム毎のY軸方向への移動ピクセルです。

 これがマイナスなら上方向へ(ジャンプボタンを押した時)

    プラスなら下方向へ(落下中状態)

 

こんな感じで組んであげると、上手いこと「落下中」の状態を判定してくれます。

もっと綺麗に判定する方法はあるのかもしれませんが…

どう判定させるか悩んでおられる方は試してみてはいかがでしょうか。

では!

 

アニメーションとは一体

f:id:vobo:20160321232241j:plain

ほう、貴殿もここに目をつけておったで御座るか。

まさか我が家の中に南国が仕込んで御座ったとは…

灯台下暗しとはまさにこの事で御座ろう。

 

 

ここ最近海外ゲーが面白いで御座います。モフヲです。

数日間「unepic」という海外インディーズゲームにハマっておりました。

 

Steam:UnEpic

(steamより「unepic」掲載ページへのリンクです)

 

内容はシンプルな2D探索アクションゲームなのですが、見た目の地味さに反して、実に面白く、日本語訳、ステージギミックともに非常に良く出来ております。

難易度は選択出来るものの、根本的には非常に高難度のゲームですが、丁度良いタイミングでショートカットを発見出来たりと、古き良き探索ゲームといった味わいです。

久しぶりにいいゲームに出会ったなあ…という感じ。

また、見た目は王道の中世ファンタジー世界を彷彿とさせるも、主人公が

腐れ無職種馬野郎という素敵設定にも注目。

多分ここまでぶっ飛んだ設定でゲーム作れちゃうのはインディーズならではかと。

ビバ☆インディーズ。

興味のある方は是非「unepic」でググって見て下され。

 

 

と、他所様のゲームの話はここまでに致しまして、自作ゲームの雛形作りの続きです。

 f:id:vobo:20160321235309j:plain

ええ、相変わらず何の画面か分からない&何の面白味も無い画像で御座いますが、前回記事に引き続いて、主人公の動作とアニメーションの連携部分の基礎を作っております。

今日までに設定した部分は

①左右、ジャンプ移動とアニメーション連携

②地上攻撃アクション、ジャンプ中攻撃アクションのアニメーション連携

この二つだけ。

 

二段ジャンプの実装や攻撃アクションは前作猫ゲーで学んだ知識で、比較的楽に作れるのですが、アニメーション制御を苦手なままにしていた為、イベント組みに異常に時間がかかりました。

そして、アニメーションの種類を増やせば増やすほど過去に設定したアニメーションが再生されなくなっていくという安定の迷走っぷり。

ああ もう主人公は棒でいいや

 

f:id:vobo:20160321235814j:plain

とそうも言っていられないので、試行錯誤を繰り返した結果、何とか各アニメーションの制御に成功したわけですが、今回得た教訓は、特定のアニメーションが再生されない場合、

そのアニメーションが「再生されていない」のではなく、「再生されているが優先されていない」事が原因である

という事でした。

例えば、

①右キーを押しっぱなしにしている間は、「ダッシュ」アニメを再生するよ

 

というイベントを設定し、次に

 

②「攻撃」キーを押した時、攻撃オブジェクトを発射しながら、「攻撃」アニメを再生するよ

 

というイベントを連続して組むとします。

で、右キーを押したまま攻撃ボタンを押すとどうなるか、というと、結論「攻撃」アニメは再生されません。

何故なら、「攻撃」アニメを再生するより、右キー押しっぱなしによる「ダッシュ」アニメが優先されているからです。

正確には、攻撃アニメも再生されるんですが、1フレーム(60分の1秒)だけ再生されて、すぐ優先の高い「ダッシュ」アニメに上書きされてしまいます。

 

で、どうするかというと、画像で添付したように、「ダッシュ」アニメ側に、条件を付け加えるわけです。つまりイベント①を

 

①右キーを押しっぱなしにしていて、かつ、「攻撃」アニメが再生されていない間は、「ダッシュ」アニメを再生するよ

f:id:vobo:20160322001630j:plain

*「条件を反転」を使ってやりましょう。アニメーション「発射」が再生されていない間という意味になります

 

とやる事で、攻撃ボタンを押す=攻撃アニメが再生=ダッシュアニメの再生条件を満たさなくなる為、攻撃アニメーションが優位に立ってきちんと再生されるわけです。

 

発動条件の重なるアニメーションを複数設定している場合は、一つ一つのアニメーションの発動条件を「他のアニメーションが再生されていない間」という風に区別する必要があるよ、という事ですね。

 

ああ、ややこしい( ´_ゝ`) 

ですが、少しはアニメーション設定の基礎が分かったような気がします。

まだまだ勉強せなアカン事が多いですねえ…

再度雛形作りに挑戦

f:id:vobo:20160311010515j:plain

ふむ…時には人と戯れるのも悪くはないでござるなあ…

 

 

あああああダークソウル3がやりたいでござる

 

あああああ早くダークソウル3がやりたいでござるうう

…でもPCしか持っていないから4月までおあずけでござる

 

…申し訳ありません、完全にトリップしておりました。

毎回シリーズ発売直前に陥る病気の一種です。お気になさらず。

 

さておき、作るゲームがハッキリ見えてこないので、ここ数日は

f:id:vobo:20160311011121p:plain

ひたすらアクションゲームの雛形を作っておりました。

基本的な部分(ジャンプ、移動中のアニメーションや当たり判定など)を固めた物があれば、似たタイプのゲームを簡単に量産出来るんでないか?という安易な考えからです。

 

猫ゲーは「platform movement」という、導入するだけで超簡単にアクションゲームの基本が作れちゃう便利アイテムを使用しておりましたが、折角なんでそれを使用せずに作成。

f:id:vobo:20160311012336j:plain

 となると当然、主人公キャラの重力設定やジャンプの時の処理なんかも一から延々と組み立てて行くこととなります。

この当たりは以前にも書いたとおり、ペポソフト様の講座を参考にしながら組んでおります。

特に上画像のイベント行①で、

 

変数「重力」が変数「最大重力」以下の場合だけ、1フレーム毎に落下速度がどんどん速くなるよ

 

という処理を組んでおりますが、こいつを忘れると、例えば上下にスクロールするような縦長のステージを組んで、頂上から最下段まで落下すると、重力(=下方向への移動速度)が無限に膨れ上がって

光の速さでキャラが地面にブッ刺さる凶悪な鬼畜ゲーが誕生してしまいます。

 

また、今回は「2段ジャンプ」が使えるような設定を組んでいます。

変数でジャンプ可能回数を定義して、ジャンプボタンを押す度に、ジャンプ可能数を1マイナス。着地する毎にジャンプ可能数をリセットする、という仕組みですが、ここで苦労したのは、

ジャンプせずに、高所から落下した場合にどうやってジャンプ可能数を1マイナスするか?

という部分に地味に悩まされました。

f:id:vobo:20160311014623p:plain

何も定義せずに組んでしまうと、画像の×パターンのようになります。

「いや、それ3段ジャンプだから」となっちまうわけです。

これを○パターンに持っていくわけですが、これは言い換えると

「高所から落下している」状態をどう定義するのか?という問題になります。

PMOを使っていると「player on the ground」という便利な定義文があったんですが、自作の場合はそれもありません。

そこで考え付いたのは、

「ジャンプ中以外で、重力が1以上発生している時」

というもの。上の画像では7行目に当たる部分です。

説明しますと、

重力が1以上、と定義したのは、そうしないと床に接地しているだけで無限にジャンプ回数が減っていく為です。(主人公には常に微量の重力が発生している為)

ジャンプ中以外、の部分は、ジャンプボタンを押してから次に着地するまでの間を「ジャンプモード」という変数をフラグ代わりに認識させています。

 

ともあれこれで左右移動とジャンプ、当たり判定までの雛形が完成しました。

前回猫ゲーの反省を生かして、極力始めの段階でバグは潰しきっていく方向です。

 

で、ゲームとしては何を作るのか?という話ですが、今のところ考えているのは

①アイワナオマージュの鬼畜ゲー

メトロイドマンセー のメトロイドヴァニア系探索ゲー

まあどっちも手間と時間がおそろしく掛かりそうなので、決めかねております( ´_ゝ`) 

とりあえずは雛形作りをもう少し進めて行こうと思います。

閲覧ありがとう御座いました。

 

イベントグループの活用方法

f:id:vobo:20160229232819j:plain

ふむ…どっちが頭か分かるでござるかな?

 

ここ数日の記事だけ見ると

猫ブログにしか見えなくなっている気がするので、今日はゲームの話をメインで。

 

今日はイベントグループの話です。

f:id:vobo:20160229235741j:plain

ある程度触っている方はお馴染みのイベントグループ。

上の画像だと「ペナルティ」「アクション」とある、各イベント行を括っている部分ですね。

今まではこのイベントグループはただ見やすくする為だけに使っていたのですが、こいつを使えば簡単に動作の指定を出来る事に気づきました。

  

 

f:id:vobo:20160229235651j:plain

 試しにこんな画面を作ってみます。

人型が主人公。左右移動が出来ます。

右のスライムさんは左右、或いは重力を無視して上下に移動する二つの行動パターンを設定しています。

f:id:vobo:20160305002317j:plain

上がスライムさんの行動を制御するプログラムです。

分かりにくいですが、イベントグループ「ペナルティ」に含まれる「動作1」は左右移動をアホのように繰り返す行動パターンです。

対して、グループ「アクション」に含まれる「動作2」は上下移動をひたすら繰り返す気の触れた行動パターンです。

 

で、イベント行の⑧~⑩で、それぞれ

・フレーム開始時点の行動

・キーボードのCキーを押した時の行動

・キーボードのXキーを押した時の行動

をそれぞれ制御しています。

 

次に、両イベントグループの中身を見てみます。

 

「ペナルティ」に含まれる内容は、

・左右移動をひたすら繰り返すように行動をチェンジ。

・主人公と衝突すると、主人公は死ぬよ

 

「アクション」に含まれる内容は、

・上下移動をひたすら繰り返すように行動をチェンジ。

 

という内容です。「ペナルティ」にのみ、スライムとの当たり判定を設定しています。

で、このイベント内容でゲームを実行するとどうなるか、という事ですが、

イベント行⑧で、フレーム開始時点では「ペナルティ」の内容を反映していますので、ゲーム開始時点ではスライムさんは左右移動を繰り返しています。

主人公と接触すると、哀れ、主人公は即死します。

 

フレーム開始後、Cキーを押すと、「ペナルティ」に含まれる内容は無視され、「アクション」に含まれる内容に切り替わります。

つまり、左右移動を止め、Cキーを押した時点から上下運動に切り替わるわけです。

そして、「アクション」には主人公との接触を判定するイベントを記述していませんから、主人公とスライムさんが接触しても主人公は死にません。

行動だけでなく、接触判定に関してもきっちりと内容が判定されています。

 

いかがでしょうか?このイベントグループを使った制御方法の利点は、

フラグや変数を使わずに行動を切り替えられる事

にあると思います。

ゲームを作りこんでいくと、どうしても無駄に変数やフラグの種類が多くなっていき、管理が出来なくなりがちですが、この方法ならグループ名を工夫してやれば、視覚的にも分かりやすく管理出来るんではないでしょうか。

と、今日はこんなところで。

御閲覧ありがとうございました。

猫回~ざんぎり頭をたたいてみれば~

f:id:vobo:20160229191940p:plain

むう…なんでござるかこれは!?

机の下が紅く輝いておるでござるぞ!!

 

f:id:vobo:20160229192105j:plain

なんと…中が南国のようで御座った。

噂には聞いておったがこれが「炬燵」という物やも知れぬ…

 

f:id:vobo:20160229192247j:plain

いずれにせよ、これも源内殿の「エレキテル」が使われておるであろう事は想像に難くない。

あな素晴らしき事よ。流石源内殿。

これなら冬でも一日中暖をとれるでござ…

 

f:id:vobo:20160229192508j:plain

…暑いでござる…

近況

f:id:vobo:20160229091048j:plain

またサボっていたで御座るか…

貴殿、誠どうしようもない男で御座るなあ…

 

「モモのわんぱくアドベンチャー」がフリーム!様にてDL数90本を越えておりました。

数字の大小比較はキリがありませんから、ランキング等はいいとして、自分の創った稚拙なゲームが90人もの人に触れてもらえた事は大変嬉しく思っております。

ありがたやありがたや。

 

さて、記事の更新が、というか「はてなブログ」へのアクセス自体が約2週間ぶりとなってしまいました。

寝に家に帰るだけという過酷な生活が2週間程続き、ようやく落ち着けそうなので、更新を再開したいと思っております。

 

いやあこの2週間、色々な事がありましたが、何よりも驚かされた出来事としては、当ブログ看板娘(侍)のモモ氏が

行方不明になっていた

事でした。

それもつい昨日。

以前の記事で、体調が悪い事を記載しておりましたが、あれから又体調を崩してしまい、ここ数日全く食事を摂らない日々が続いていたようです。

そんな中で、夜中にフラッと外に出たまま何時間も帰ってこず。

病気を患っている事も知っていたので、家族の方と探し回りましたが、見つからず。

猫は最期に身を隠すといいますから、これはもしかしたら自分の意思で…

と、覚悟を決めた翌日

 

 

 

生還しました(笑)

f:id:vobo:20160229092933j:plain

…うむ。心配をかけたで御座った

 

あれだけ探しても見つからなかったのですが、近所の駐車場で車の下で暖をとっていらっしゃったようです。強制連行され無事帰還。心の底から「おかえり、あかんたれ」という言葉を差し上げたいと思います。

いや、ほんと、どれだけ心配をかけけけけけけ。

 

とりあえず一安心、なのですが、現在も闘病中である事は事実ですし、「猫は猫らしく過ごさせてやりたい」という御家族の考えの下、これからは無理な延命はせず、自然のままに過ごしていくと思います。

なので、私も少しでも多く、彼女と触れ合える時間を増やしたいなと考えております。

 

大福島としての活動で御座いますが、体験版と銘打ちましたが、当初の目的である、モモ氏を主役としたゲームもとりあえず形になって世に出しました。

この状況で続きを作るのも…というところで、どうしようか迷いがあります。

勿論ゲーム創りとブログは継続していきます!が…

 

まあようやくプライベートの事も考えられるようになりましたので、ボチボチ考えていこうと思います。

まだまだ今後とも大福島を宜しくお願いします。

f:id:vobo:20160229094603j:plain

よろしくおねがいいたすでござる!