2010年4月28日

前回に引き続き、なんと!
ダイゴの百人斬りの原作、「Berceuse〜神々に捧ぐ唄〜」作者の錆龍さんが
サイトの日記でダイゴの百人斬りの攻略をしてくださっています!


錆龍堂

ENTER → Diary → 〜真・錆龍日記〜
で攻略をごらんいただけます!
ダイゴの百人斬りで全く触れていない(←問題)、
本編シナリオの解説まで付いていて超お得!必見です!

錆龍さん、重ね重ねありがとうございますm(_ _)m

さてさて、私も負けていられません。
引き続きアクションゲーム作りのノウハウを書かせていただきます。

本日のテーマは「並列処理多用時の注意」です。

[その1]
並列処理のイベント末尾にはウェイトを入れ、
処理の周期をコントロール&PCの負荷を軽減しましょう。


「定期的に並列処理する」の「定期」は、実はすごく速くて、
ウェイトを入れないとものすごい頻度で処理を繰り返します。
ウェイトを入れて処理の周期をコントロールしましょう。
また、当たり判定などはできるだけ高頻度で繰り返して欲しい処理ですが、
それでもウェイト0.0秒を入れます。
ウェイトを入れることでPCの負荷が軽減され、多くの並列処理を同時に実行できます。

[その2]
当たり判定処理では判定だけをして、当たり時の処理は別イベントに任せましょう。


例えば主人公と敵が当たったときの主人公のダメージ処理はコモンイベントに実装し、
当たり判定処理の中では主人公ダメージ処理スイッチをONにするだけです。
当たり判定処理はできるだけ高頻度で、当たり判定を繰り返さなければなりません。
例えば主人公の攻撃が2体の敵に当たったとき、
1体の当たり判定、ダメージ処理が終わってからもう1体のダメージ処理というわけにはいきません。
2体の当たり判定をほぼ同時に行い、それぞれのダメージ処理を開始するべきです。
よって、当たり判定処理では当たり時の処理を行う暇などないのです。

[その3]
キャラクターの指定動作の全実行・全解除のタイミングに注意です。


敵、アイテム、主人公などの動作をイベントで指定し、実行させるときは、
タイミングに注意してください。
指定した動作が実行し終わってないのに他の動作が開始したりすると、
他の動作が完了するまで元の動作もウェイトしてしまったり、ゲームがフリーズすることもあります。
「何故か思ったタイミングで動かないな」「何故かフリーズするな」
と思われたときは、この問題を疑いましょう。

[その4]
並列処理のイベントでは一時変数は使わず、専用の変数を用意しましょう。


ツクールは変数を使った計算結果を別の変数に代入、演算するという処理が存在しないため、
2つ以上の手順で演算をするときは「temp」などと名前を付けた、一時的な変数を使うと便利です。
しかし、並列処理が複数ある場合は一時変数に複数のイベントがアクセスしてしまい、
処理が正しく行われないことがあります。
結局は専用の変数を用意する必要があると気がつかれることになるでしょう。

さあ、みなさんもレッツ・並列!
レッツ・アクション!
ですよ。


2010年4月25日

今週ついにリリースしましたダイゴの百人斬りですが、
なんとさっそくレビューをしていただきました!

フリーゲームレビュー

toramanさんのブログ、フリーゲームレビューです。
4月22日の記事でダイゴの百人斬りについて書いていただいております。
簡潔な文章の中にポイントを押さえていただいており、
丁寧にやりこんでくださったことがよくわかります。ありがとうございました!

さて、今回もアクションゲーム作りのノウハウを少しご紹介させていただこうと思います。
今回ははっきり言って長いです。ご容赦くださいませm(_ _)m

本日のテーマは「並列処理」です。

RPGツクール2000のイベント開始条件には、「定期的に並列処理する」というものがあります。
その内容はと言いますと、指定したイベントの内容を繰り返し処理し、
複数のイベントにこの開始条件を設定すると、全てが並列して繰り返し処理されるというものです。

普通のRPGを作る場合にはそれほど使うことのない開始条件だと思いますが、
アクションゲームを作る場合には多用します。
はっきり申し上げて、ダイゴの百人斬りは「定期的に並列処理する」ばかりです。

<各ステージにおけるイベントの構成> イベントの構成

上の図はダイゴの百人斬りの各ステージにおけるイベントの構成の概略です。
実際には、敵がもっと多いですし、アイテムや破壊可能オブジェクトの処理もあります。
しかし、この図の中だけでも「メインイベント」、「敵」、「コモンイベント×4」という
6つのイベントが並列処理をしていることがおわかりいただけると思います。

以下、各イベントの詳細の説明です。

<敵>

まずは一番わかりやすそうな敵から。

★ページ1では、移動しながら自分の座標の更新をします。

  1. 敵1体ごとにX座標(画面横方向の位置)とY座標(画面縦方向の位置)を変数で作成しておく
  2. 敵はこの変数を更新し、自分の最新の座標を他の処理が参照できるようにする

★ページ2では、主人公の攻撃が敵に当たった場合のダメージ処理をします。
  1. 敵のライフを主人公の攻撃力分減らす
  2. ライフが0以下であれば、死亡スイッチをONする
    ライフが1以上であれば、ダメージ処理スイッチをOFFにする

★ページ3は、死亡時の処理です。特に何もしません。

<メインイベント>

全てのステージに共通した初期化、時間切れ、クリアなどの処理です。
このイベントを、ここでは仮に「メインイベント」と呼ばせていただきます。

★ページ1では、主人公の座標取得と各種当たり判定をします。
  1. 主人公の座標を取得、更新する
  2. 当たり判定(4月10日の記事参照)
    主人公と敵、主人公とアイテム、主人公の攻撃と敵などについて順番に行う
※主人公はイベントではないので自分で座標の更新ができないため、メインイベントが主人公の座標を取得、更新します。

★ページ2では、時間切れ処理をします。
  1. 時間切れになったらゲームオーバースイッチをONにし、ゲームオーバー処理に移行する

★ページ3では、ステージクリア処理をします。
  1. 残りのライフ、時間に応じてボーナス得点を加算する
  2. 次ステージの表示に関するスイッチの初期化をする
※これは厳密には並列処理にはなっていません。イベント開始条件はページごとに設定できます。

<コモンイベント>

役割はメインイベントと似ていますが、
ステージごとの違いがない、本当に共通の処理をコモンイベントで実装しています。
コモンイベントにはページがないので、上の図に出てくる4つの処理は別々の4つのイベントになります。

★ピクチャ表示更新は、主人公のライフやスコアの表示を更新します。
  1. ライフとスコアの変数を参照し、表示するピクチャを変更する

★キー入力受付はプレイヤーの操作を受け付けます。
  • 決定キーが押されたときは遠距離攻撃
  • キャンセルキーが押されたときは近距離攻撃
  • shiftキーが押されたときはゲームを停止

★攻撃範囲更新は、主人公攻撃時の攻撃範囲を更新します。

★主人公ダメージ処理は、主人公が敵や敵の弾に当たったときのダメージ処理をします。
  1. 主人公のライフを敵の攻撃力分減らす
  2. ライフが0以下であれば、ゲームオーバースイッチをONする
    ライフが1以上であれば、無敵時間経過後に主人公ダメージ処理スイッチをOFFする

さて、長くなりました。

今回ご紹介した並列処理を活用すると、
世界地図を画面の隅に表示し、主人公の位置をマーカーで表示するFF6のような地図システム、
キー入力を受け付けて、パーティの仲間と会話ができるドラクエのようなシステム
なども作成可能です。

さあ、みなさんもレッツ・自作システム!
レッツ・アクション!
ですよ。


2010年4月20日

格好良いタイトル画面

来た来た、来ましたよ!
ダイゴの百人斬り、ついに公開開始です!
Vectorの配布ページは、こちら

一生懸命作りましたので、よろしければ遊んでみてください。
どうか宜しくお願いいたしますm(_ _)m
1回のプレイ時間は20〜30分ほどになります。

さらによろしければ、掲示板でのハイスコア報告にもお付き合いくださいませ。

よろず掲示板2


2010年4月18日

やったー!やりました!
ダイゴの百人斬り、ついにVECTORへの登録手続きまで完了です!
さてさて、あとは公開を待つばかり。
早ければ今週中にも公開開始されると思いますので、どうか宜しくお願いいたしますm(_ _)m

作品ページも開設いたしました。
左の「配布ゲーム」→「ダイゴの百人斬り」より飛べます。
見てやってください。

さて、作品の公開に合わせて掲示板にスレッドを立ち上げました。
その名も「ダイゴの百人斬り ハイスコア報告」!(まんまですな・・・)
プレイしてくださった皆さん、もしよろしければご報告をお願いいたします。

よろず掲示板2

うーむ、それにしても久々の達成感、高揚感。
公開までドキワクです。

〜拍手コメント返信〜

>こんにちは!錆龍です。
>遅くなりましたがバトン回答ありがとうございました。やっぱり人様の回答を見るのは面白いですね。
>そしてツクール講座、参考になりました。ダイゴの百人斬りはこんな風に作られているんですね。


こちらこそバトンありがとうございました。
楽しくお返事させていただきました。
そして講座。講座・・・なんて言えるほどのクオリティではありませんが、
今後も何かしら還元できるノウハウはあればご紹介させていただきたく思います。


2010年4月10日

ダイゴの百人斬りで蓄積した、アクションゲーム作りのノウハウ。
この場で少しだけ皆さんにフィードバックさせていただこうと思います。

本日のテーマは「当たり判定」です。

プレイヤーと敵の当たり判定、
プレイヤーと敵の弾の当たり判定、
プレイヤーの攻撃と敵の当たり判定、
プレイヤーとアイテムの当たり判定など。
アクションゲーム作りの基本となる処理です。

特に難しい話ではなく、
「座標が一致(または隣接)=当たり」という処理で良いと思います。
以下、3つの場合に分けて当たり判定の解説をさせていただきます。

<点と点の当たり判定>

左の図をご覧ください。
青い点と赤い点の当たり判定は、以下のイベントでできます。

条件分岐:変数[青点のX座標]が変数[赤点のX座標]と同値
 条件分岐:変数[青点のY座標]が変数[赤点のY座標]と同値
   <当たり時の処理>
 :分岐終了
:分岐終了

まあ、そりゃそうだろって感じですね。以上。

<点と面の当たり判定>

さてお次。
青い点と赤い面の当たり判定は、以下のイベントでできます。

条件分岐:変数[青点のX座標]が変数[赤面の右端のX座標]以下
 条件分岐:変数[青点のX座標]が変数[赤面の左端のX座標]以上
  条件分岐:変数[青点のY座標]が変数[赤面の下端のY座標]以下
   条件分岐:変数[青点のY座標]が変数[赤面の上端のY座標]以上
     <当たり時の処理>
   :分岐終了
  :分岐終了
 :分岐終了
:分岐終了

1つ目の例と比べて、条件文の数が2倍になっただけです。
難しくないですよね?

<面と面の当たり判定>

最後です。
青い面と赤い面の当たり判定は、以下のイベントでできます。

条件分岐:変数[青面の左端のX座標]が変数[赤面の右端のX座標]以下
 条件分岐:変数[青面の右端のX座標]が変数[赤面の左端のX座標]以上
  条件分岐:変数[青面の上端のY座標]が変数[赤面の下端のY座標]以下
   条件分岐:変数[青面の下端のY座標]が変数[赤面の上端のY座標]以上
     <当たり時の処理>
   :分岐終了
  :分岐終了
 :分岐終了
:分岐終了

どうでしょう?
多少複雑な内容ですが、条件文の数は2つ目の例と同じです。

さあ、もうこれでアクションゲームの基本はわかってしまいましたね!?
皆さんもレッツ・アクション!です。

〜拍手コメント返信〜

>ごんぎつねです。
>やや無茶振りかと思っていた要望に対応して頂いているというのは恐れ多いです。
>さすがです。本公開楽しみにしてまーす。
>バトンのほうも興味深く拝見させていただきました。


こちらこそ、プレイヤー視点でのご意見ありがとうございます。
現在、鋭意実装中ですので、公開はもう少々お待ちください。
バトンはごんぎつねさんも答えられてましたね。
そちらも楽しく拝見させていただきましたよ。


2010年4月4日

ダイゴの百人斬りは仕上げ段階に入りました。
先週、テストプレイのお願いをしたところ、1週間以内に報告メールが!
テストプレイヤーのお二方、優秀すぎます・・・
バグ、誤字脱字などはなかったのですが、追加仕様のご要望をいくつかいただいたので、
対応してます。

GW前公開の目標が達成できるか、最後のがんばりどころです。

それはそうと、錆龍堂の錆龍さんから創作者バトンなるものをいただいたので、
お返事させていただきます。

創作者バトン

Q1 小説、漫画などの創作媒体は何ですか、またそれを選んだ理由はありますか。
主にRPGツクール。昔は短編の小説や詩もやってました。
何故ツクールかって・・・そこにツクールがあるからさ。ゲーム好きなんで。

Q2 主に行っているのは一次創作ですか二次創作ですか。
一次創作・・・と思っていたんですが、ハロワも二次創作っぽいところがあるし、
ダイゴの百人斬りを公開したら2対1で二次創作のほうが多くなりますな。

Q3 得意なジャンルは何ですか、また苦手なジャンルは何ですか。
得意・・・そのようなものはねえ!大体すべて苦しみながら作ってます。

Q4 作品を作る際にプロットや設定資料のような物を作りますか。
メモ書きしたり、エクセルにまとめる程度のことはすることもあります。
頭の中でまとめていきなり作り始めることが多いかも。

Q5 創作中に設定の練り直しや、文章の推敲等は行いますか。
まあ、嫌でもやっちゃいますよね。
本当は練り直しが必要ないくらい最初に考え抜くのが良いと思います。

Q6 Q5を答えた方でその際に修正に気がとられて創作が先に進まなくなることはありますか。
よくあります。テストプレイ大好き人間なので。

Q7 ジャンル、メディアを問わず、自分に大きな影響を与えていると思う作品はありますか。
いろいろなものから影響を受けていますが、やはりドラクエ、FFが大きいと思います。
ロマンスなんて意図的にドラクエ1〜3、FF1〜3をオマージュしてますし。

Q8 スランプ等は経験したことがありますか、その原因は何だと思いますか。
今がまさに長期のスランプかと。原因がわかったらもう直してます。
誰か助けて。

Q9 自分が創作を行う際の目的や原動力はなんだと思いますか。
自分が面白いと感じるものを発信したいという欲求。自己満足とか、自己顕示欲に近いです。

Q10 作った作品は公開していますか、またその方法は何ですか。
自分のサイトやベクターで配布させていただいております。
というか、ロマンスについてはベクター一本に絞れば良かったなと。
今や正確なダウンロード数がわかりません。

Q11 こういった作品は好きになれない、苦手だというようなものはありますか。
俺は心の狭い人間なので、いろいろあります。
特にツクール作品は、面倒くさいと感じたものはプレイを続けるのが辛いです。
自戒の意味を込めて書きますと、
「複雑すぎるシステム」、「長すぎるイベント」、「強すぎる敵」などは危険ワードです。
程度問題なので度が過ぎなければ良いんですが。

Q12 あなたの作品を色にたとえると何色だと思いますか。
作品によります。ダイゴの百人斬りは黒かな?何となく。

Q13 あなたの作品を風景にたとえるとどのような風景だと思いますか。
ゲーム画面そのものしか思いつきません。

Q14 自分的には良い出来だと思う作品、真剣に作った作品が、他人からは評価を受けなかった場合はありますか。
よくある話ですが、一度本当に深く反省したことがあります。
その反省が今のゲームに対する考え方に非常に大きく影響していると思います。

Q15 Q14とは逆に自分では失敗作だと思った、手を抜いていた作品が、他人から評価された場合はありますか。
短編小説でならありましたね、そんなことも。

Q16 自分の作品はどういった人に評価してほしいですか、またどのような人に見てもらいたいですか。
人を選べる立場じゃないんでなんとも・・・
一応プレイヤーとして意識しているのは、自分と同世代くらいのゲーム好きの方です。

Q17 科学的な根拠や、現実性の追求等、リアリティにこだわりますか。
考えたこともないです。

Q18 創作を始めたきっかけは何ですか、またそれはいつ頃ですか。
小学生の頃、紙でボードゲームを作ったのがきっかけです。漫画を描いたこともあります。
それがRPGに凝縮されていきました。

Q19 ストーリーを前半、中半、後半に分けた場合、それぞれの場面でどういったことに注意しますか。
起承転結の転でどれくらい落差をつけられるかに命を懸けている気がします。
次は結のカタルシス。
ということは、前半は手薄ってことですね。気をつけよう。

Q20 創作をしていてよかったことはありますか、また苦労したことや悩みはありますか。
良かったことは、たま〜にですが、面白かったという感想をいただけること。これに尽きます。
最近の悩みは、シナリオや台詞が考えられないことです。

Q21 自分の作品に共通するようなテーマやキーワードはありますか。
主人公はプレイヤーの分身であるというのが共通した考えです。

Q22 自分の作品の気に入らないところ、改善したいところはありますか。
いろいろありますが、
ハロワで主人公2人を戦闘メンバーとして固定してしまったのが大きな失敗の1つです。
連携技や支援会話といったシステムと合わないんですよ。考えがまとまってなかったなと思います。

Q23 過去の創作で一番気に入っている作品は何ですか、またその作品のどのような点が気に入っていますか。
何だかんだ言ってどの作品も可愛い我が子。甲乙付けがたいです。

Q24 その作品のキャッチコピーを考えてみてください。
ダイゴの百人斬りは「二刀流アクション」として売り出すつもりです。

Q25 主要登場人物の年齢や性別に傾向はありますか、また作中の人物の男女比などを気にしますか。
20歳前後にすることが多いです。
男女比は1:1に近く、やや男多目と思っていますが、ロマンスのパーティはみんな男。

Q26 未完成で投げてしまった作品はありますか、またその作品を完成できなかったのはなぜだと思いますか。
RPGツクール3で、スイッチの数が足りなくなってあきらめたことがあります。

Q27 その時の流行等を意識して作品を作りますか、またそういった作品に対してどういった考えを持っていますか。
ある程度、意識することはあります。
多くの方に楽しんでいただこうと思ったら、
流行を取り込むのは1つのアプローチとして良いのではないでしょうか。

Q28 その時自分が熱中している物事の影響が作品に出やすいですか。
出ますね。そこはやはり趣味なので。

Q29 自分の作品が販売されることになったとします、表紙等はどのようにしたいですか。
誰か得意な方かプロの方にお願いしたいです。

Q30 登場人物を作る際、どのようにして人柄やイメージを作りますか、また人物で重要視することは何ですか。
パーティメンバーの場合、色を変えるように意識してます。
人柄は作品のテーマに沿って、肯定と否定の両極端なキャラクターを作り、後は間を埋めていく感じ?

Q31 自分は登場人物を殺す方だと思いますか。登場人物を殺すことに対してどのような考えを持っていますか。
最近はあまり殺してないつもりです(ダンジョンのボスキャラとかは除く)。
登場人物を殺すのはあまり安易にやらないほうが良いですが、
効果的な演出になることもあると思います。

Q32 暴力やグロテスクな表現、性描写に対してどのようなスタンスを持っていますか、また自分は使用しますか。
特別な理由がなければ、あまり直接的過ぎるのは良い趣味とは言えない気がします。
とはいえ、短編小説では私も結構使用していました。年頃かな。

Q33 日常的(食事風景等)な描写に対してどのような価値観を持っていますか、また自分は使用しますか。
ちゃんと描写できれば、それは素晴らしいと思います。
私は苦手です。誰か助けて。

Q34 作品の評価ポイントはどこにあると思いますか、他人の作品を見る際はどのような点に注目して見ていますか。
面白さ(何が売りなのか、どのように遊べば良いのか)、
わかりやすさ(ルールは複雑すぎないか、見た目と動きが一致しているか)、
テンポの良さ(敵が強すぎてはまらないか、アイテムが高すぎないか、イベントは長すぎないか)、
共感(好きになれるキャラクターがいるか、キャラクターの考えや行動に納得できるか)
ぱっと思いつくのは、こんなところです。

Q35 意図的であるなしにかかわらず作中で多用する表現、台詞、描写などはありますか。
キャラクターにキメ台詞を作って、繰り返させることがあります。「笑止!」とか。

Q36 登場人物と自分とを切り離して考えていますか、性格や思考などが登場人物に出やすいことはありますか。
いろいろなキャラクターを作ろうと思ったら切り離すべきですが、できてません。
すべてのキャラクターは我が分身、我が子です。

Q37 他の創作を行っている人に対して聞いてみたいことはありますか。
創作の理由や意図を聞いてみたいですね。

Q38 今後はどのように創作と関わっていきたいと思いますか、あなたにとって創作とは何ですか。
状況の許す限り、今後もゲームを作って公開していきたいです。
大事な趣味なので。

Q39 おつきあいくださり有り難うございました。バトンを回したい方がいましたらあげてください。
こちらこそありがとうございました。
次は、もし見ていたら、ヘタっぴなアルコール蒸留のGreenBard。どうかな?

拍手コメント返信〜
>(本文略)・・・錆龍
ご連絡ありがとうございました。
数字は反映させておきますー。



トップページへ