進捗
今現在のゲーム画面です。(色々な要素が仮)
以前の記事に挙げた、探索型アクションに必要と思っている要素の8割は実装を終えたので、現在は背景などのグラフィックを準備しつつ、仮の画像を使って敵AIを作る作業です。
とりあえず先人の技術を参考に自力で実装出来た要素としては
・セーブ&ロードシステム(ファイルは一個のみ)
・MAP画面、アイテム画面
・PMOでのハシゴ昇降、壁ジャンプ動作
・ファストトラベル(セーブポイントから他セーブポイントへ)機能
・キーコンフィグ機能(エクステンション無し、ゲームパッド対応)
といった所です。
と言っても先ずは探索型アクションの雛形を作りたい、という思いがありましたので、演出等は殆どなく、あくまで機能のみの実装に留まっております。
お陰で、荒削りではあるものの、最低限ゲームとして機能はするかな…という所までは何とか来ました。
な…長かった…
で、こいつが作成途中の敵AIイベントです。
前作同様、敵の動きに関してはオブジェクトイベントに全て書き込み、
オブジェクト単独でコピペが簡単に出来るようにしています。
オブジェクトイベントには、
・オブジェクトグループが使えない
・イベントリストエディタが使えない
など、結構嫌な制約も多いのですが、やはりアプリケーションを跨いで簡単にコピペ出来るというのは大きな利点だと思っています。
素晴らしい動きをするAIをオブジェクトイベントで完結させる事が出来れば、今後他の作品にも簡単に使いまわし出来ますし、一つの財産と言えますよね!
まあそんな財産持ってないんですけどね…。
という事で本日はこのへんで。
ヌルヌルニャンコの魔界大冒険 rain world レビュー(ネタバレはありません)
今回は、前々回あたりに掲載しました、今年私のハマったゲーム、
『rain world』のレビューです。
*公式サイト(海外サイト)のURLです ゲーム画面等は著作権の関係上こちらから
本作は、家族とハグれてしまった「slug cat」と呼ばれる猫型生物が、弱肉強食の世界でサバイバルしつつ、家族との再会を目指して奇妙な生物で満ち溢れた世界を冒険するというもの。
海外製の作品であり、2017年7月現在、日本語版は存在しません。
ですが、徹底して言語を廃したUIの為、英語が分からなくとも楽しむ事が出来ました。
*厳密にはストーリーを追う為に英語力が必要な場面もあるにはありますが、日本人の方の実況動画等で和訳解説されている為、楽しむ分には問題ありませんでした。
タイプとしては、比較的シンプルな2Dドット絵探索型アクションゲームです。
一般的な同型探索ゲームのように、主人公のスキル獲得による探索範囲が広がる要素は無く、プレーヤーの腕と、気合さえあれば、攻略順はほぼ自由です。
冒険の舞台は、お好きな人にはたまらない、廃墟に次ぐ廃墟、正に廃墟祭!!
私は好きです。ええ、
本作の長所と短所です。
■長所
・グラフィック(ドット絵)が繊細で魅力的
・『食物連鎖』システムが新鮮
・アニメーションが豊富で、まるで本当に生きているかのようにヌルヌル動きます
■短所
・レベルデザインが鬼畜すぎ!
・コンティニュー時が冗長だったり、若干テンポが悪い
■総評
世界観・雰囲気=100点…個人的にドストライクな世界観です
グラフィック =90点…ドットの緻密さは勿論、リアルタイムで変化する空気感の演出は圧巻でした。unityで作られているようですが、
これcf2.5で再現出来るのかなあ…出来る人は出来るんだろうなあ…
没入感 =90点…言語を介さず、プレイする人の想像に全てを任せる感じ。バックストーリーも多くは語られず、想像の余地が多く、
グラフィックの美麗さも相まって、どっぷりと世界に浸れます。
操作性 =60点…キビキビとは動きません。癖が非常に強いです。
この操作性も高難易度の要因になっています。
運ゲー度 =90点…多少はプレイスキルによって緩和されるというのは分かっていますが…また後日の記事に記載しますが、ゲームのシステム上かなり運に左右されます。
親切度 =50点…所謂プレイアビリティです。上述の通り、頻繁に死ぬ前提のゲームデザインの割りにコンティニューが冗長だったりと、快適性は著しく低く感じました。
という事で、総じて言える事は、
ポストアポカリプスな世界観や、美麗な廃墟グラフィック、敵性MOB同士が
相互作用しながら食物連鎖を演出するなど、
お好きな方にはたまらないゲームと言えます。
逆に、サクサクと時短プレイしたい方にはお勧め出来ません。
個人的な感想としては、『雰囲気ゲー』の側面が強いと思います。
じっくりと世界観に浸れるゲームだと思いました。
さて、操作性やゲーム性では辛口のレビューとなってしまいましたが、世界観は本当に秀逸で、よりプレイしやすさを増した続編を大いに期待出来る一作です!
興味を持たれた方は是非プレイしてみて下さい♪
デバッグは大切(後編)
前回、CF.2.5標準搭載のデバッグ機能をご紹介しましたが、もう一つの方法は
非常に泥臭いやり方で御座います。
*もっといいやり方はあると思うんですけどね。
はい、こんな感じでフレーム画面に「静的テキスト」と「カウンタオブジェクト」を組み合わせて表示し、それぞれ確認したい変数にカウンターをセット。
この状態でアプリを実行する事で、標準デバッグよりも高精度のリアルタイムデバッグを行う事が出来ます。
作るのは面倒くさいですが、まとめてコピペすれば簡単に別のフレームに移行出来ますので、汎用性は高いと思います。
■二つのデバッグ方法の長所・短所
標準デバッグ
長所)
・一度に大量の変数を確認出来る
・簡単に表示が出来る
短所)
・タイミングがズレる為、精度は高くない
・特定の変数のみをコンパクトに表示する事が出来ない
自作カウンタデバッグ
長所)
・必要な変数のみを抽出して確認出来る
・フレーム単位の正確な変数変動を確認出来る
・グローバル変数、内部フラグ、オブジェクト変数など、母体の違う
変数を一まとめで確認出来る
短所)
・作るのがシンプルに面倒くさい
あくまで私見ですが、アクションゲームを例に出せば、こんな風に使い分けてやると良いと思います。
標準デバッグ
・敵、味方の体力増減や、アイテムを取得した時のフラグON、OFFなど
比較的ロングスパンでの変数遷移の確認。
自作カウンタデバッグ
・特定のイベントでフリーズしてしまう。
何となく目星はついているが、瞬間的に発生してしまうバグの調査。
にそれぞれ向いている気がします。
特に初級→中級くらいの事をやろうとして、フレーム間、又はアプリケーション間の遷移を繰り返すような処理を組んでいると、信じられないくらいバグリまクリスティですので、どちらを使うにせよ、デバッグは必須だなと思いました。
前回猫アクションの時はデバッグの方法を知りませんでしたので、勘のみに頼っていましたが、デバッグに時間を割くようになってから、比較にならないくらい理想に近いイベントが組めるようになってきましたので、まだ使っていない方は是非使ってみて下さい♪
デバッグ。
それは目にみえる地獄。
デバッグは大切(前編)
長い苦しみを経て、ようやく探索型アクションゲームの基礎が完成。
一体何時間PCと向き合ったんだろうか…
あれだね。独り言の量が牢獄で自分に話しかけるしかなくなっちゃった人と同レベルだったと思う。割とマジで。
というわけで、今日は何とかこんな私でも自分のやりたい事の6割程度を実装出来た要因。「デバッグ表示」のお勧めです。
基本このブログは私と同じ、初心者(もしくは長く使ってるけど初心者レベルだ、と思ってらっしゃる方。私のように。。。)の方向けなので、熟練した剛の方にはお役に立ちませんのでご了承を…。
また、管理人はノンプログラマーですので、世間一般的なプログラミング業界の常識とは異なる完全な私見ですのでご了承を。
って事ですが、CF2.5に於いては、とにかく
変数が自分の思い通りに動いているのか
をリアルタイムで確認する行為だと思っています。
アクションゲームを例に出せば、ソフト内臓の動作プログラムである「ジャンプとはしご」や、PMOのようなパッケージングされた動作を除いて、全ての動きは「変数」によって構成されていますよね。
変数さえ自分の思い通りに動いていれば、そのイベントは成功しているといえます。
逆に変数が自分の思い通りに動いていないのに、想定どおりのイベントは絶対になりえません。経験上。
とにかく、『変数の動きをリアルタイムで監視する』事がイベント作りの第一歩だと思います。
■で、どうやってやんのよ?
「アプリケーションを実行(F8)」メニューで出てくる、左上のツールバーです。
当初何の為にこのツールバーが存在するのかさえ分かっていなかった、いや、調べる事さえめんどくさかったのですが、この+マークをクリックすると、
こんな感じでツリーメニューが表示されました。
更に「グローバル変数」フォルダの+マークをクリックすると、
こんな形で、設定している全てのグローバル変数が一覧表示されます。
日本語表記の部分が自身で設定した「変数名」。:の右側の数字が、現時点での変数の値となっています。
下部のH(#8)とか書いてある部分は、自身で変数名をいじっていないグローバル変数となっています。
で、ここに表示されたグローバル変数はアプリを実行中にリアルタイムで変動していきますので(若干タイミングはズレますが)、自分の思うように変数が動作しているのかどうかを、膨大な量の変数を一度に確認出来るわけです!
いや、本当これを知らなかった時の私の苦労って何だろう…。
ちなみに、オブジェクトに持たせている変数も見たい時は、フレームイベントの
見たいオブジェクト行をクリック、画像のようなコマンドを行う事で、デバッグ画面に追加表示する事が出来ます。
もう一つ、デバッグの方法として一般的な物がありますが、記事が長くなってしまいましたので、次回に分けたいと思います。
それでは!
いる物 いらない物
モフヲです。
現在製作中のアクションゲーは大方の機能は実装出来てきています。
タイプとしては探索型アクションを想定しています。
所謂メトロイドヴァニアってやつでございます。
昔から探索アクションは好物だったので、折角cf2.5持ってるんだし、一本作ってみたいと思った事がきっかけです。
この記事では、私が作成に当たって考えた事を書き連ねてみます。(誰得)
何からつくりゃいいかわかんねーよ、って方の参考にでもあれば幸いでございます。
*完全に私の主観なので、世間一般の定義とは異なる可能性があります。
というか異なっていると思います。
探索アクションゲームの定義
・自分の行きたい所に行ける
・進行する毎に徐々に出来る事が増える
(徐々に行けるステージが増える)
・(一般的に)ボリュームがある
といったところでしょうか。
ゲーム用語っぽく言い換えると、
・攻略順が限定されない
・可逆的にステージ編成されている(ステージの行き来が出来る)
→それ故にプレイボリュームも大きくなる
・スキルUPの要素がある
これが探索アクションの定義、だと考えています。
次に、この定義を満たす為に、CF2.5でどんな要素を自作したらいいか、について
考えてみました。
基本的なアクション部分を除いて列挙してみます。
■絶対必要な物■
・一方通行でなく、戻る事も自由なフレーム構成
・プレーヤーが迷わないようにMAPの表示
・複数の攻略ルートの準備
・進行度をセーブ&ロードするシステム
・移動スキルのレベルアップ(例 二段ジャンプ・空中移動・通行不可の開放 など)
■あれば便利なもの■
・世界観を表す収集アイテム
・地点間ワープ(所謂ファストトラベル機能)
・キーコンフィグ機能
作るべき要素は洗い出せたので、次に、じゃあこの中でも特殊な機能をcf2.5というソフトでどうやって実装すればいいか?をザックリ考えてみます。
・MAPの表示=『サブアプリケーションオブジェクト』を使って、ゲームプレイ中
にMAP表示専用のフレームを別に表示する
・収集アイテムの表示=MAP同様に『サブアプリケーションオブジェクト』を使用
・セーブ&ロード=『INIオブジェクト』を使ってセーブデータを保存、読み込み
・キーコンフィグ=wikiを参考に、変数を使ってボタン入力を制御する
といったところですか。
こうして洗い出せたところで、それぞれのオブジェクトを学習していったわけですが、それらに関してはまた別の記事で。
ちょいと帰ってきてみれば
久しぶりに海より深く暗いトンネル、ゲーム製作の世界に舞いもどってきました。
去年ふりーむ!に途中段階の物を投稿してからモデルの愛猫が旅立ちモチベーションが持たず放棄しておりましたが、最近ふとしたきっかけで再開しました。
再開の要因となったのが、steamでジャケ買い?した2本のゲーム。
どちらも洋ゲーでありますが、価格が購入当時併せて3000円程度でしたが、
いずれも振りきれた世界観に加え、独特かつ美麗なグラフィックで、価格以上に楽しませて頂きました。
また機会があればレビューします。
やっぱね、いいゲームに巡りあうと作りたくなっちゃいますね。
これがショボくてもゲ製畑の人間の性(さが)なんでしょうかね。
そんなロマンシング・サガ(性)に突き動かされて現在製作中の物は、やっぱりプラットフォームアクションです。
前回の猫アクションではステージクリア型でしたが、今回は所謂「メトロイドヴァニア」形式で作成しております。
(SFCの『スーパーメトロイド』やPS『悪魔城 月下の夜想曲』に心酔していた世代です)
とは言え、現時点ではゲーム作成の基礎部分(キーコンフィグ機能とか)の作成段階ですので、何も公開出来る物がありません。
ですが、いくつかCF2.5に関してわかった事もありますので、ちょこちょこ公開させて頂く予定です。
それでは皆様よきゲ製ライフを
個人的にrain worldは今年の一番でもいいと思っている(早)
くっそ鬼畜だけど…
看板娘モモ氏が旅立ちました
皆様お久しぶりで御座います。
突然ですが、当サイト看板娘のモモ氏(享年13歳)が旅立っていきました。
最期食事をしなくなり、寝たきりになって約1週間。
最期は家族の腕の中で眠るように息を引き取ったそうです。
私は彼女と出会って1年も経っておらず、直接触れ合う事は数度しかありませんでしたが、生き物とは不思議なもので、まるで我が家族のように悲しみがおそいました。
動物も人間もいずれは死ぬ時が来る事は分かりきっている事。そうは言っても割り切れなかったり、理解出来ていても感情が追いつかなかったりするのが人間という物でしょう。
ですが、彼女に関しては本当に家族から愛され、また、彼女も家族を愛していたと思います。急に脱走してみたり、と色々お騒がせもしていましたが、最期に愛する家族の下で過ごせた事は彼女にとっても家族にとっても素晴らしい事だっただろうと思います。
旅立つ直前、知人は「今日がお別れかな…」という予感があったと言います。
最期を看取る覚悟を決めていた知人は、改めて彼女を撫でながら、これまで共に過ごしてくれた事の感謝を伝えたと言います。
その言葉を聴いた後、まるでそれを待っていたかのように最期に一鳴きし、すっと長い眠りについたようです。
ペットと人との関わり方は人それぞれだと思います。(私は経験無いのにアレですが…)死生観に関しても人それぞれだと思います。
ですが、私はその話を聞いて、お互い本当に種族を超えて家族になっていたんだな、と感じました。
自分がもし残る人生、ペットを飼う事があれば、知人のように最期まで、旅たつ直前まで責任を持って愛してあげたいと感じました。
……と、ここは何のブログだ?という感じになってしまいましたが、一つのケジメ?として書かせて頂きました。
しばらく後になるかと思いますが、次回からも通常通りに続ける予定でおります。
今日まで当ブログを、というかモモ氏を御覧頂いて、心配してくださった方に大変感謝しております。ありがとう御座いました。
そして最期に、
モモ、本当に今までありがとう
猫回 終章 ~旅立ちの季節~
ふむ…春を迎え、そろそろ良い頃合で御座ろう。
拙者、約束通り旅に出ようと思うで御座る。
家人は本当に良くしてくれたで御座るが、拙者、同じ所に長く留まるは出来ぬ性分。
まだ見ぬ地への思いが抑え切れんで御座る。
家人よ、本当に世話になった。
…?何、心配には及ばぬ。離れておっても拙者は侍。何事かあれば必ずやこの刀で悪を斬る為、馳せ参じようでは御座らんか。
ほれ、そんな顔をするでない。
いつか又再会する時が来よう。その時まで地に足を付けて生きてゆくで御座るぞ。
それでは行くとしよう。
聞けば「虹の橋」という土地が彼方にはあるという…
そこは楽園のような場所だと言うが…
どれ、この目でしかと見届けようというものだ。
では参る。
皆の者、今日までご苦労で御座った!
それでは、また会う日までさらばだ。
完
小ネタ PMOを使わずに『object is falling』状態を判定するには
…よこさんか。
早ようそのおトトを拙者によこさんかッ!!!!!
今日は小ネタ更新です。
前回から引き続きアニメーションネタですが、PMO(platform movement object)を使用すると、プレーヤーが空中にいる状態を、
・object is jumping(プレーヤーが背景に重なっていない)
・object is falling(プレーヤーが背景に重なっておらず、下方向に動いている状態)
の二つに判定してくれます。
これはつまり
上方向に上昇中のアニメーションと、(ジャンプボタンを押した時)
下方向に落下中のアニメーション(高所から落ちた時も含めて)をそれぞれ簡単に設定出来るよ!という事になります。
で、これをPMO無しで上昇中と落下中をどう判定するか、という事ですが、
*変数『重力』は1フレーム毎のY軸方向への移動ピクセルです。
これがマイナスなら上方向へ(ジャンプボタンを押した時)
プラスなら下方向へ(落下中状態)
こんな感じで組んであげると、上手いこと「落下中」の状態を判定してくれます。
もっと綺麗に判定する方法はあるのかもしれませんが…
どう判定させるか悩んでおられる方は試してみてはいかがでしょうか。
では!
アニメーションとは一体
ほう、貴殿もここに目をつけておったで御座るか。
まさか我が家の中に南国が仕込んで御座ったとは…
灯台下暗しとはまさにこの事で御座ろう。
ここ最近海外ゲーが面白いで御座います。モフヲです。
数日間「unepic」という海外インディーズゲームにハマっておりました。
(steamより「unepic」掲載ページへのリンクです)
内容はシンプルな2D探索アクションゲームなのですが、見た目の地味さに反して、実に面白く、日本語訳、ステージギミックともに非常に良く出来ております。
難易度は選択出来るものの、根本的には非常に高難度のゲームですが、丁度良いタイミングでショートカットを発見出来たりと、古き良き探索ゲームといった味わいです。
久しぶりにいいゲームに出会ったなあ…という感じ。
また、見た目は王道の中世ファンタジー世界を彷彿とさせるも、主人公が
腐れ無職種馬野郎という素敵設定にも注目。
多分ここまでぶっ飛んだ設定でゲーム作れちゃうのはインディーズならではかと。
ビバ☆インディーズ。
興味のある方は是非「unepic」でググって見て下され。
と、他所様のゲームの話はここまでに致しまして、自作ゲームの雛形作りの続きです。
ええ、相変わらず何の画面か分からない&何の面白味も無い画像で御座いますが、前回記事に引き続いて、主人公の動作とアニメーションの連携部分の基礎を作っております。
今日までに設定した部分は
①左右、ジャンプ移動とアニメーション連携
②地上攻撃アクション、ジャンプ中攻撃アクションのアニメーション連携
この二つだけ。
二段ジャンプの実装や攻撃アクションは前作猫ゲーで学んだ知識で、比較的楽に作れるのですが、アニメーション制御を苦手なままにしていた為、イベント組みに異常に時間がかかりました。
そして、アニメーションの種類を増やせば増やすほど過去に設定したアニメーションが再生されなくなっていくという安定の迷走っぷり。
ああ もう主人公は棒でいいや
とそうも言っていられないので、試行錯誤を繰り返した結果、何とか各アニメーションの制御に成功したわけですが、今回得た教訓は、特定のアニメーションが再生されない場合、
そのアニメーションが「再生されていない」のではなく、「再生されているが優先されていない」事が原因である
という事でした。
例えば、
①右キーを押しっぱなしにしている間は、「ダッシュ」アニメを再生するよ
というイベントを設定し、次に
②「攻撃」キーを押した時、攻撃オブジェクトを発射しながら、「攻撃」アニメを再生するよ
というイベントを連続して組むとします。
で、右キーを押したまま攻撃ボタンを押すとどうなるか、というと、結論「攻撃」アニメは再生されません。
何故なら、「攻撃」アニメを再生するより、右キー押しっぱなしによる「ダッシュ」アニメが優先されているからです。
正確には、攻撃アニメも再生されるんですが、1フレーム(60分の1秒)だけ再生されて、すぐ優先の高い「ダッシュ」アニメに上書きされてしまいます。
で、どうするかというと、画像で添付したように、「ダッシュ」アニメ側に、条件を付け加えるわけです。つまりイベント①を
①右キーを押しっぱなしにしていて、かつ、「攻撃」アニメが再生されていない間は、「ダッシュ」アニメを再生するよ
*「条件を反転」を使ってやりましょう。アニメーション「発射」が再生されていない間という意味になります
とやる事で、攻撃ボタンを押す=攻撃アニメが再生=ダッシュアニメの再生条件を満たさなくなる為、攻撃アニメーションが優位に立ってきちんと再生されるわけです。
発動条件の重なるアニメーションを複数設定している場合は、一つ一つのアニメーションの発動条件を「他のアニメーションが再生されていない間」という風に区別する必要があるよ、という事ですね。
ああ、ややこしい( ´_ゝ`)
ですが、少しはアニメーション設定の基礎が分かったような気がします。
まだまだ勉強せなアカン事が多いですねえ…