goo blog サービス終了のお知らせ 

挫折しそうなRPG制作記録

ウディタでRPGを作ろうとしていますが、なかなかうまくいかない初心者の記録。

すごろくのサイコロ

2010-08-15 21:03:06 | RPG制作
■すごろくのサイコロを作ってみる

サイコロを転がすソースを、覚書の意味も含めてアップしておきます。
以下のソースでは、すごろくでサイコロを振り
プレイヤーが出た目の分だけキャラクターを動かすというソースになります。
悪戦苦闘したため無駄が多く、自分用の覚書なので
わかりにくいうえにながいです。

※ピンクは加筆になります。

まず、サイコロを振ってもいい場面か判断させています。
フィールドマップのときや戦闘のときだけサイコロを振らせたいので
変数に10が代入されないかぎり、このイベントが起きないようにしています。

▼ 変数で、サイコロを振ってもいい場面か判断
■条件分岐(変数): 【1】V2[サイコロを振ってもいいか判断]が10と同じ
◇分岐: 【1】 [ V2[サイコロを振ってもいいか判断]が10と同じ ]の場合↓=サイコロを振ってもいい場合
 |■ウェイト:10 フレーム


次に、画面のどこにサイコロ画像を表示するかを決めます。
表示する場所のX座標とY座標を決めたら、コモンEVセルフ変数に、X座標、Y座標の数値を覚えさせます。

▼ セルフ0がX座標、セルフ1がY座標
|■変数操作: このコモンEvセルフ0 = 200 + 0
|■変数操作: このコモンEvセルフ1 = 200 + 0

さて、1~6のサイコロの画像がどんどん切り替わっていく処理を作ります。
1、2、3、4、5、6という数字のどれかを表示する という処理を、
決定キーが押されるまで何度もループするようにすればできますね。


|■ループ開始
||■変数操作: V1[サイコロのランダム数字用] = 1 ~ 6  =1~6の数字のどれかが、変数V1にランダムに入ります。
||▼ セルフ2はキー入力記憶用
||■キー入力:このコモンEvセルフ変数2 / 決定(10) キャンセル(11)
||■条件分岐(変数): 【1】このコモンEvセルフ2が10未満 =何もキーが押されていない場合。
|| ◇分岐: 【1】 [ このコモンEvセルフ2が10未満 ]の場合↓
|||■条件分岐(変数): 【1】V1[サイコロのランダム数字用]が1と同じ =ランダム変数が1の場合、1のサイコロ画像を表示するための条件わけ
||| ◇分岐: 【1】 [ V1[サイコロのランダム数字用]が1と同じ ]の場合↓
||||■ピクチャ表示:1 [左上]ファイル「Picture1.png」 X:このコモンEvセルフ0 Y:このコモンEvセルフ1 0(0)フレーム
||||■
|||◇分岐終了◇◇
|||■条件分岐(変数): 【1】V1[サイコロのランダム数字用]が2と同じ
||| ◇分岐: 【1】 [ V1[サイコロのランダム数字用]が2と同じ ]の場合↓
||||■ピクチャ表示:1 [左上]ファイル「Picture2.png」 X:このコモンEvセルフ0 Y:このコモンEvセルフ1 0(0)フレーム
||||■
|||◇分岐終了◇◇
|||■条件分岐(変数): 【1】V1[サイコロのランダム数字用]が3と同じ
||| ◇分岐: 【1】 [ V1[サイコロのランダム数字用]が3と同じ ]の場合↓
||||■ピクチャ表示:1 [左上]ファイル「Picture3.png」 X:このコモンEvセルフ0 Y:このコモンEvセルフ1 0(0)フレーム
||||■
|||◇分岐終了◇◇
|||■条件分岐(変数): 【1】V1[サイコロのランダム数字用]が4と同じ
||| ◇分岐: 【1】 [ V1[サイコロのランダム数字用]が4と同じ ]の場合↓
||||■ピクチャ表示:1 [左上]ファイル「Picture4.png」 X:このコモンEvセルフ0 Y:このコモンEvセルフ1 0(0)フレーム
||||■
|||◇分岐終了◇◇
|||■条件分岐(変数): 【1】V1[サイコロのランダム数字用]が5と同じ
||| ◇分岐: 【1】 [ V1[サイコロのランダム数字用]が5と同じ ]の場合↓
||||■ピクチャ表示:1 [左上]ファイル「Picture5.png」 X:このコモンEvセルフ0 Y:このコモンEvセルフ1 0(0)フレーム
||||■
|||◇分岐終了◇◇
|||■条件分岐(変数): 【1】V1[サイコロのランダム数字用]が6と同じ
||| ◇分岐: 【1】 [ V1[サイコロのランダム数字用]が6と同じ ]の場合↓
||||■ピクチャ表示:1 [左上]ファイル「Picture6.png」 X:このコモンEvセルフ0 Y:このコモンEvセルフ1 0(0)フレーム
||||■
|||◇分岐終了◇◇
|||■サウンド:SE ファイル[SESelect.wav] 音 100% 周 100% 再生 / 遅延:0フレーム =サイコロ画像が切り替わる度に音が出るようにしました。

|||■
||◇分岐終了◇◇
||■条件分岐(変数): 【1】このコモンEvセルフ2が11と同じ =キャンセルキーが押されたとき
|| ◇分岐: 【1】 [ このコモンEvセルフ2が11と同じ ]の場合↓
|||■
||◇分岐終了◇◇

決定キーが押された時の対応です。
同じように画像を表示するとともに、ループを中断してもらいましょう。


||■条件分岐(変数): 【1】このコモンEvセルフ2が10と同じ 
|| ◇分岐: 【1】 [ このコモンEvセルフ2が10と同じ ]の場合↓
|||■条件分岐(変数): 【1】V1[サイコロのランダム数字用]が1と同じ
||| ◇分岐: 【1】 [ V1[サイコロのランダム数字用]が1と同じ ]の場合↓
||||■ピクチャ表示:1 [左上]ファイル「Picture1.png」 X:このコモンEvセルフ0 Y:このコモンEvセルフ1 0(0)フレーム
||||■
|||◇分岐終了◇◇
|||■条件分岐(変数): 【1】V1[サイコロのランダム数字用]が2と同じ
||| ◇分岐: 【1】 [ V1[サイコロのランダム数字用]が2と同じ ]の場合↓
||||■ピクチャ表示:1 [左上]ファイル「Picture2.png」 X:このコモンEvセルフ0 Y:このコモンEvセルフ1 0(0)フレーム
||||■
|||◇分岐終了◇◇
|||■条件分岐(変数): 【1】V1[サイコロのランダム数字用]が3と同じ
||| ◇分岐: 【1】 [ V1[サイコロのランダム数字用]が3と同じ ]の場合↓
||||■ピクチャ表示:1 [左上]ファイル「Picture3.png」 X:このコモンEvセルフ0 Y:このコモンEvセルフ1 0(0)フレーム
||||■
|||◇分岐終了◇◇
|||■条件分岐(変数): 【1】V1[サイコロのランダム数字用]が4と同じ
||| ◇分岐: 【1】 [ V1[サイコロのランダム数字用]が4と同じ ]の場合↓
||||■ピクチャ表示:1 [左上]ファイル「Picture4.png」 X:このコモンEvセルフ0 Y:このコモンEvセルフ1 0(0)フレーム
||||■
|||◇分岐終了◇◇
|||■条件分岐(変数): 【1】V1[サイコロのランダム数字用]が5と同じ
||| ◇分岐: 【1】 [ V1[サイコロのランダム数字用]が5と同じ ]の場合↓
||||■ピクチャ表示:1 [左上]ファイル「Picture5.png」 X:このコモンEvセルフ0 Y:このコモンEvセルフ1 0(0)フレーム
||||■
|||◇分岐終了◇◇
|||■条件分岐(変数): 【1】V1[サイコロのランダム数字用]が6と同じ
||| ◇分岐: 【1】 [ V1[サイコロのランダム数字用]が6と同じ ]の場合↓
||||■ピクチャ表示:1 [左上]ファイル「Picture6.png」 X:このコモンEvセルフ0 Y:このコモンEvセルフ1 0(0)フレーム
||||■
|||◇分岐終了◇◇
|||■サウンド:SE ファイル[SEEnter.wav] 音 100% 周 100% 再生 / 遅延:0フレーム
||||■
|||◇分岐終了◇◇
|||■ループ中断
|||■
||◇分岐終了◇◇
||■ウェイト:1 フレーム
||■
|◇ループここまで◇◇


次に、出た目の数の分だけ、キャラクターが動けるようにします。
一つ動くたびに、ランダムで出たサイコロの数値が減っていき
ゼロになったら動けないようにします。
つまり、ゼロになるまで動き続けるループですね。
移動可能でない方向に移動しようとした場合、動いたとカウントされないようにしましょう。

▼ セルフ3が主人公のx、セルフ4が主人公Y座標
|■ループ開始
||■変数操作: このコモンEvセルフ3 = 主人公のX座標(マップ) + 0
||■変数操作: このコモンEvセルフ4 = 主人公のY座標(マップ) + 0
||■条件分岐(変数): 【1】V1[サイコロのランダム数字用]が1以上
|| ◇分岐: 【1】 [ V1[サイコロのランダム数字用]が1以上 ]の場合↓
|||▼ セルフ10がキー入力を記憶
|||■キー入力:このコモンEvセルフ変数10 / [入力待ち] 4方向
|||■条件分岐(変数): 【1】このコモンEvセルフ10が2と同じ
||| ◇分岐: 【1】 [ このコモンEvセルフ10が2と同じ ]の場合↓
||||▼ 2が押された時、主人公のY座標が1つ↓の位置が移動可能か
||||▼ タイル番号を読みこませて判断させている。
=移動してもいいチップは、タイル番号を1以上に設定してます。
タイル番号は、タイル設定(通行設定とかやるやつ)を開いて設定できますよ。

||||■変数操作: このコモンEvセルフ4 += 1 + 0
||||■変数操作+: このコモンEvセルフ11 = X:このコモンEvセルフ3 Y:このコモンEvセルフ4のタイルのタグ番号
||||■条件分岐(変数): 【1】このコモンEvセルフ11が1以上
|||| ◇分岐: 【1】 [ このコモンEvセルフ11が1以上 ]の場合↓
|||||■動作指定:主人公 / 下向 / 下
|||||■変数操作: V1[サイコロのランダム数字用] -= 1 + 0
|||||■サウンド:SE ファイル[SESelect.wav] 音 100% 周 100% 再生 / 遅延:0フレーム
|||||■動作完了までウェイト
|||||■
||||◇分岐終了◇◇
||||■
|||◇分岐終了◇◇
|||▼ ←を押したとき
|||■条件分岐(変数): 【1】このコモンEvセルフ10が4と同じ
||| ◇分岐: 【1】 [ このコモンEvセルフ10が4と同じ ]の場合↓
||||■変数操作: このコモンEvセルフ3 -= 1 + 0
||||■変数操作+: このコモンEvセルフ11 = X:このコモンEvセルフ3 Y:このコモンEvセルフ4のタイルのタグ番号
||||■条件分岐(変数): 【1】このコモンEvセルフ11が1以上
|||| ◇分岐: 【1】 [ このコモンEvセルフ11が1以上 ]の場合↓
|||||■動作指定:主人公 / 左向 / 左
|||||■変数操作: V1[サイコロのランダム数字用] -= 1 + 0
|||||■サウンド:SE ファイル[SESelect.wav] 音 100% 周 100% 再生 / 遅延:0フレーム
|||||■動作完了までウェイト
|||||■
||||◇分岐終了◇◇
||||■
|||◇分岐終了◇◇
|||▼ →を押したとき
|||■条件分岐(変数): 【1】このコモンEvセルフ10が6と同じ
||| ◇分岐: 【1】 [ このコモンEvセルフ10が6と同じ ]の場合↓
||||■変数操作: このコモンEvセルフ3 += 1 + 0
||||■変数操作+: このコモンEvセルフ11 = X:このコモンEvセルフ3 Y:このコモンEvセルフ4のタイルのタグ番号
||||■条件分岐(変数): 【1】このコモンEvセルフ11が1以上
|||| ◇分岐: 【1】 [ このコモンEvセルフ11が1以上 ]の場合↓
|||||■動作指定:主人公 / 右向 / 右
|||||■変数操作: V1[サイコロのランダム数字用] -= 1 + 0
|||||■サウンド:SE ファイル[SESelect.wav] 音 100% 周 100% 再生 / 遅延:0フレーム
|||||■動作完了までウェイト
|||||■
||||◇分岐終了◇◇
||||■
|||◇分岐終了◇◇
|||▼ 上を押したとき
|||■条件分岐(変数): 【1】このコモンEvセルフ10が8と同じ
||| ◇分岐: 【1】 [ このコモンEvセルフ10が8と同じ ]の場合↓
||||■変数操作: このコモンEvセルフ4 -= 1 + 0
||||■変数操作+: このコモンEvセルフ11 = X:このコモンEvセルフ3 Y:このコモンEvセルフ4のタイルのタグ番号
||||■条件分岐(変数): 【1】このコモンEvセルフ11が1以上
|||| ◇分岐: 【1】 [ このコモンEvセルフ11が1以上 ]の場合↓
|||||■動作指定:主人公 / 上向 / 上
|||||■変数操作: V1[サイコロのランダム数字用] -= 1 + 0
|||||■サウンド:SE ファイル[SESelect.wav] 音 100% 周 100% 再生 / 遅延:0フレーム
|||||■動作完了までウェイト
|||||■
||||◇分岐終了◇◇
||||■
|||◇分岐終了◇◇
|||■
||◇分岐終了◇◇
||■条件分岐(変数): 【1】V1[サイコロのランダム数字用]が0と同じ =動きおわったときの処理
|| ◇分岐: 【1】 [ V1[サイコロのランダム数字用]が0と同じ ]の場合↓
|||■動作指定:主人公 / 下向
|||■ループ中断
|||■
||◇分岐終了◇◇
||■ウェイト:1 フレーム
||■
|◇ループここまで◇◇

YADOT様を参考に作りました。
☆感謝です☆

←目次に戻る

マップ編(その後)

2010-03-06 23:16:48 | RPG制作
今回は、マップ編に頂いたコメントをもとに
実践してみましたので、ご報告をいたします。

お題は、「建物の端っこまでいけない」でした。

まずは、otomo様のコメントよりの実践です。
四分の一設定は知っていたのですが
1ます設定で作っている間は、あまりその機能の意味がわからず。
設定変えても特に変化がわからず、き~!!!となっておりました。
4分の1設定は、0.5幅のときに、有効ということですかね。
うーん難しい。
すう様の講座では、移動幅1ますが推奨されているので
講座卒業したて当時の、ブログでのゲームは1幅で作ってみたようです。
で。試しに、0.5幅設定で歩かせてみました。

おおむねOKなのですが
4分の1通行不可(?)になっているため、画像のように本棚と壁の間の歩行は無理そうです。
※すみません。この画像は内枠バージョンです。
外枠バージョンでしたら、建物内で本棚と挟まれることはないと思います。
ただし、外枠ですと、近接する建物外のオブジェクトとの間が通れないと思います。
そして、マップ編には書かなかったのですが
実はこの試行錯誤、以前やっていた気がします。
なぜ、この方法ではなくマップ編のような方法を採用したのか
この記事の一番下に書いていきますね。


さて、叶叱様のコメントを参考に、次はいじってみます。

通行設定を赤い枠で表したように設定し
☆常にキャラクターの上に表示ピンク色設定
○通行可オレンジ色設定
の両方で試してみました。
おかげさまで、無事、壁をつきぬけることもなく端っこまでいけるのですが……
上記画像ではわかりにくいとは思うのですが
家の外に手がつきぬけたり(ピンク)、家の上に手が表示されたり(オレンジ)?
これは一応、キャラクター幅1でやっています。
0.5幅設定でも、たぶん同じ結果だと思います。
突き抜けたりする件に関しましては
外枠でも内枠でも、似たり寄ったりな結果がおこります。


かといって「▲後ろにいくと隠れる」で通行方向設定しますと
こーんな素敵な状態になります(笑)

頭が壁上で、手が突き抜けているので
両方をミックスした状態ですね。

以上が、ツクール規格の歩行グラフィックの例なんですが(素材は、First Seed Material様)
試しに、ウルファールさん規格でやってみます。


おぉ!!!
常にキャラ上表示で、通行設定すると
もっとも壁近くまで移動できるようです!(青い方)
この青いバージョンの場合は、移動幅1でも同じ結果が得られたっぽいです。
(ちなみに緑は、▲なしの4分の1設定でも、変わらなかったと思います。
 そして1ます設定では、アウトです)
※すいません、この画像は外枠バージョンです。内枠ではありません。


【まとめ】
というわけで、壁側に近づけなくて気持ち悪い状況を解決するためには
いろいろな方法があり、長所短所がそれぞれあるということがわかりました。
個人的に一番気持ちがよい表示方法は
ウルファール規格の素材で
☆常にキャラクターの上に表示で、通行設定でを調整する方法
だと思います。
ただし、この方法では、ツクールの規格の場合画像がおかしなことになったりと
素材によって左右されやすいという面があることが、わかりました。


(とか、まとめておいて、情報間違ってたらどうしよう。。。)

コメントにて、助言くださった、otomo様、叶叱様、ありがとうございました☆

←目次に戻る



さて。
なぜ、筆者は、マップ編のような方法で、建物外を囲んだかをお話していきます。


画像をみていただくとわかるとおり
私の理解でできるかぎり、0.5幅で、四分の一設定した場合(赤字、右側)
外枠内枠ともに、どちらかが、オブジェクトと壁の間を通ることができないのですね。
そのため、マップ編では、外枠にして木でもぞもぞっと囲いすぐ近くには近づけないようにしました。

一方、叶叱様のコメントで教わった、通行方向設定のやり方を採用すると
少なくとも、外枠バージョンは、両側ともオブジェクトとの間を通れそうです。
じゃぁ逆に、内枠バージョンは、どうして内側通れなくなってるんだっけ?とか思うんですが
眠い頭では考えられないので、ごめんなさい。
とりあえず、通行方向設定のやり方だと、木でもぞもぞっと囲わずとも
両サイドから近づける方法があるようです。


なんだか、何度も記事編集&画像加工&テストプレイをして
ぐったりしてしまいました。
マップ編集って、奥が深いですね。。。

メニュー自作への挑戦2

2010-02-22 01:52:47 | RPG制作
■データベースの内容を読みこんでコモンセルフに代入したいのにエラーがおこる
■文字列変数……。


はい、いきなりエラーのっけてみました。
上から順番にアイテム選択メニューを作ろうと思ったのですが
処理がいまいちわからないので、ステータスの表示に挑戦……そしてエラーです。

一応これは、データベースにある主人公の名前を
ステータス上に表示させるため、一度コモンセルフに格納しようとしているときに起きたエラーです。
なぜうまくいかない?と思ったので、さっそく
WOLF RPGエディター エラーコレクション - 非公式 - 様をみにいってきました。
いやー、便利なサイトがあるものですね。管理人様に感謝です。

……が、似たようなエラーの対処を読んでもわかりませんでしたORZ.
書いてあることが理解できるほど、ウディタを理解できていないようです。


困った時は、基本システムのソースを確認です。
同じように、データベースのキャラクター名を読みこんでいる場所があったので
そこと比べて、何が違うのか考えてみます。

【文】このコモンセルフ5:

同じ選択欄の中に【数】というのもありました。
そういえば、レベルなどの数字のデータだけを試しに読みこませてみたときは
特に問題なく動作した気がします。
ということから、どうやら
文字データを読みこませるときは
【文】と書かれた特別な変数に代入する必要があるようです。
たぶん!



文字列って特別待遇なのね。

←目次に戻る

メニュー自作への挑戦0

2010-02-20 23:11:10 | RPG制作
■メニュー自作への挑戦準備。

メニュー自作への挑戦の補足です。
メニュー自作を行う前に、準備しておきたいことと
初心者の自分がつまづきそうになったピクチャー表示について
要確認事項を書いておきます。

【準備】「どんなメニューを自作したいのか紙にアイデアを書いてみる」
なにせ、初心者なので、汎用性のあるソースを
はじめっから書けるわけがないのです。
大きな修正はしにくいプログラムになる可能性が高いので
後からなるべく追加しなくても済むようにデザインを考えておきましょう。
どこに、どんな項目を、どれくらいの大きさで表示するかを考えておくと
実際に作っていった時に、この表示が足りないという困ったことが起きにくいはず。

【ピクチャーの表示】
ピクチャーの表示方法を理解している必要があります。
マニュアルの「イベントコマンド ピクチャ」を一度読んでおきましょう。
特に、使っているピクチャー番号に、また別のピクチャーをあてて表示すると
それまで表示されていたピクチャーが消去されることには注意です。

例)ピクチャー番号1に画像Aを登録
  続いて、ピクチャー番号1に画像Bも登録
  →結果、一瞬で画像Aが消えてBが表示という処理になる。


画像の色で囲んだところが、原因で何度かうまくいかなくなりました。
①まず、同じピクチャー番号を使っていないか
②お手軽ウィンドウに指定する画像を選択し忘れていないか
③ピクチャー番号の右側にチェックを入れていないか
をチェックすると、正常動作になりやすいです。

「メニュー自作への挑戦1」へ

←目次に戻る


ところで、なんで基本システムの改造から手をつけなかったのかというと
手をつけたけど、理解を超えていて挫折してきたところです。
……しっかりしすぎていて、変数と計算式がちょっと理解できなかったのです。
汎用性が高く作られているからこそ、わからない人には複雑に思えます。
また、理解せずによくわからないまま改造すると
行き詰ったときに困ったり、応用が利かないなぁと。
というわけで、単純なメニュー自作に挑戦してみた後に
基本システムを再度読み込めることを期待して、挑戦したいと思います。

メニュー自作への挑戦1

2010-02-20 18:33:01 | RPG制作
■初心者が、メニュー画面を自作しようとする過程の記録その1。

今回は、以下のようなメニュー画面を表示して
上下キー操作で、カーソルが動くところまで作ってみました。


この画面は、3つのピクチャーの表示で作られています。
一つ目は、茶色のウィンドウベース。
(素材は、A. (ア・ドット) 様)
二つ目は、アイテム~相談までの文字をピクチャー化したもの。
三つめは、選択カーソルの赤い色の画像。

また、以下の2サイトの講座と、コモン44を参考にしながら作ってます。
YADOT 様
【Wolf RPG エディター】 ウディタ技術解説Wiki 様


ちょっと長いですが、今回書いたソースとその意味を合わせて以下に書きます。
無駄がけっこう多いと思いますが
自分で理解できる範囲でソースを作ることを目標に書いてみました。
※ピンク部分はブログ説明用に加筆しております。
なお、このメニューコモンは、コモン44とは別に
イベントから呼び出しでテストしているので、そのまま流用すると不具合があるかもしれません。


①3種類のピクチャーを表示している部分
ピクチャーの番号は、一つ一つ違う番号にする必要があります。
ピクチャー表示の行にある「X:2 Y:2」で、そのピクチャーの表示位置を設定しております。

▼ ●メニュー欄Aの設定
▼ ピクチャー1はカーソル用
▼ ピクチャ0はメニュー欄Aの枠
▼ ピクチャー2はメニュー欄Aの項目名

■ピクチャ表示:0 [左上]ウィンドウ「SystemGraphic/WindowBase.png」サイズ[65,120] X:2 Y:2 0(0)フレーム
■ピクチャ表示:2 [左上]文字列[ アイテムn 特殊能] X:5 Y:7 0(0)フレーム
 メニューを文字ピクチャーとして打っていますが、ソース上に内容が表示しきれていないようです
■変数操作: このコモンEvセルフ2 = 6 + 0 コモンセルフ2を、カーソルのY座標に利用
■ピクチャ表示:1 [左上]ウィンドウ「SystemGraphic/CursorBase.png」サイズ[55,14] X:7 Y:このコモンEvセルフ2 0(0)フレーム
■変数操作: V9-39[メニュカーソル位置] = 1 + 0
変数V9-39を、カーソルを表示する位置の判断用に利用
一番上の位置を、1として考え、初期位置1から動かします。



②キー入力に対し、カーソルをどの方向に動かすか決めている部分

▼ カーソル移動処理
●ラベル地点「カーソル選択」 ラベルを設置
■キー入力:このコモンEvセルフ変数1 / [入力待ち] 4方向 決定(10) キャンセル(11)このソースでは、キー入力は、セルフ1に格納しました。
■条件分岐(変数): 【1】このコモンEvセルフ1が2と同じ 【2】このコモンEvセルフ1が8と同じ 【3】このコモンEvセルフ1が11と同じ
コモン1に格納したキー入力により条件分岐。今回は、上下方向に動くカーソルを作っているので、↓↑キーで入力されてる数字2と8で条件分岐

◇分岐: 【1】 [ このコモンEvセルフ1が2と同じ ]の場合↓ つまり、↓キーを押されたとき
|■サウンド:SE 変数[Sys18:選択肢SE番号:選択(Sys3)] 再生 / 遅延:0フレーム カーソル選択音をならす
|■条件分岐(変数): 【1】V9-39[メニュカーソル位置]が5と同じ 【2】V9-39[メニュカーソル位置]が5以外
| ◇分岐: 【1】 [ V9-39[メニュカーソル位置]が5と同じ ]の場合↓
||■変数操作: V9-39[メニュカーソル位置] = 1 + 0
||■
  ※今回のメニュー欄は5項目です。五番目の位置にカーソルがあるとき、
 ↓キーを押されたら、一番上の項目に戻るように変数に1を代入するよう、条件分岐で行ってます。


| ◇分岐: 【2】 [ V9-39[メニュカーソル位置]が5以外 ]の場合↓
||■変数操作: V9-39[メニュカーソル位置] += 1 + 0
||■
|◇分岐終了◇◇
|■


◇分岐: 【2】 [ このコモンEvセルフ1が8と同じ ]の場合↓ つまり、↑キーを押されたとき
|■サウンド:SE 変数[Sys18:選択肢SE番号:選択(Sys3)] 再生 / 遅延:0フレーム
|■条件分岐(変数): 【1】V9-39[メニュカーソル位置]が1と同じ 【2】V9-39[メニュカーソル位置]が1以外
| ◇分岐: 【1】 [ V9-39[メニュカーソル位置]が1と同じ ]の場合↓
||■変数操作: V9-39[メニュカーソル位置] = 5 + 0
||■
| ◇分岐: 【2】 [ V9-39[メニュカーソル位置]が1以外 ]の場合↓
||■変数操作: V9-39[メニュカーソル位置] -= 1 + 0
||■
|◇分岐終了◇◇
|■


◇分岐: 【3】 [ このコモンEvセルフ1が11と同じ ]の場合↓ つまりキャンセルキーを押したとき
|■サウンド:SE ファイル[SE/Cancel.wav] 音 0% 周 0% 再生 / 遅延:0フレーム
|●ラベル「終了」に飛ぶ
|■
◇分岐終了◇◇


③実際に、カーソルの表示位置を決める部分
■条件分岐(変数): 【1】V9-39[メニュカーソル位置]が1と同じ
 カーソルが1番上に来た時の表示
◇分岐: 【1】 [ V9-39[メニュカーソル位置]が1と同じ ]の場合↓
|■変数操作: このコモンEvセルフ2 = 6 + 0
|■ピクチャ表示:1 [左上]ウィンドウ「SystemGraphic/CursorBase.png」サイズ[55,13] X:7 Y:このコモンEvセルフ2 0(0)フレーム
 y座標を表すコモンセルフ2の変数を変更してから、再度ピクチャー表示処理をすることによって、カーソルが見掛け上動くようです。
|■
◇分岐終了◇◇
■条件分岐(変数): 【1】V9-39[メニュカーソル位置]が2と同じ
◇分岐: 【1】 [ V9-39[メニュカーソル位置]が2と同じ ]の場合↓
|■変数操作: このコモンEvセルフ2 = 15 + 6
 二番目は、一番上の項目に対し、15ピクセル(?)低い位置にカーソルを設定してみました。
|■ピクチャ表示:1 [左上]ウィンドウ「SystemGraphic/CursorBase.png」サイズ[55,13] X:7 Y:このコモンEvセルフ2 0(0)フレーム
|■
◇分岐終了◇◇
■条件分岐(変数): 【1】V9-39[メニュカーソル位置]が3と同じ
◇分岐: 【1】 [ V9-39[メニュカーソル位置]が3と同じ ]の場合↓
|■変数操作: このコモンEvセルフ2 = 30 + 6
|■ピクチャ表示:1 [左上]ウィンドウ「SystemGraphic/CursorBase.png」サイズ[55,13] X:7 Y:このコモンEvセルフ2 0(0)フレーム
|■
◇分岐終了◇◇
■条件分岐(変数): 【1】V9-39[メニュカーソル位置]が4と同じ
◇分岐: 【1】 [ V9-39[メニュカーソル位置]が4と同じ ]の場合↓
|■変数操作: このコモンEvセルフ2 = 45 + 6
|■ピクチャ表示:1 [左上]ウィンドウ「SystemGraphic/CursorBase.png」サイズ[55,13] X:7 Y:このコモンEvセルフ2 0(0)フレーム
|■
◇分岐終了◇◇
■条件分岐(変数): 【1】V9-39[メニュカーソル位置]が5と同じ
◇分岐: 【1】 [ V9-39[メニュカーソル位置]が5と同じ ]の場合↓
|■変数操作: このコモンEvセルフ2 = 60 + 6
|■ピクチャ表示:1 [左上]ウィンドウ「SystemGraphic/CursorBase.png」サイズ[55,13] X:7 Y:このコモンEvセルフ2 0(0)フレーム
|■
◇分岐終了◇◇
●ラベル「カーソル選択」に飛ぶ
 ラベル「カーソル選択」から同じ処理を繰り返すために戻す


●ラベル地点「終了」
■ピクチャ消去:1 0(0)フレーム
■ピクチャ消去:2 0(0)フレーム
■ピクチャ消去:0 0(0)フレーム
■変数操作: このコモンEvセルフ2 = 0 + 0
■変数操作: このコモンEvセルフ1 = 0 + 0

キャンセルキーを押された場合、このラベルまで飛びます。
ピクチャーをすべて消去。
念のため、セルフ変数もすべて〇に戻しています。


「メニュー自作への挑戦2」へ

←目次に戻る

変数操作で代入している数字

2010-02-07 21:38:13 | RPG制作
コモンイベントを読むための覚書その2です。

■変数操作で代入してるこの数字って何?
■予備変数ってどこにあるんだっけ?

コモンイベントの「044 ×■メニュー基本処理」7行目に
以下のような一文が登場するのですが……。

■変数操作: このコモンEvセルフ1 = 2900042 + 0

この2900042は、
マニュアルの「変数呼び出し値一覧」を確認すると意味がわかります。
というか、それを読まないと、謎でしかありません。
マニュアルを読みましょう。

つまり
2000000+900000+42に分解できるので
この場合は、予備変数9の42番だと思います。


ここで、ふと予備変数ってなんだっけ?
どこにあったっけ?と思ったので
もやもや解消のため、はっときます。

システムデータベースの下の方にありました。
マニュアルにも書いてありました。
(マニュアル→データベース→システムデータベース→各タイプの説明)



一方、通常変数は、「タイプ14通常変数名」で管理しているようです。


←目次に戻る

DB読み込み内容

2010-02-07 21:17:29 | RPG制作
ただいま、何を血迷ったか、コモンイベント解読に挑戦中。
この変数はなんだろうとか、そういうことやってます。
さて、一つ覚書に書いておきます。

■データーベースの読み込みってどこ読み込んでるの?
コモンイベントの「044 ×■メニュー基本処理」8行目に
以下のような一文が登場するのですが……。

■DB読込(ユーザ): このコモンEvセルフ2 = ユーザDB[15:0:49](メニュー欄1 内容)

とりあえず、どこ読み込んでるんだ?と思いました。
というわけで、読み込んでいるところを、ばーんと視覚的にはっときます。



正直、まだあんまりよくわかってないので、たぶんなんですが
ユーザDB[15:0:49] というのは、
ユーザーデータベース15番目(赤で囲ったところ)
ID 0 番目のデータ(緑で囲んだところ)
49番目(ピンクで囲んだところ)
の内容を指しているんだと思います。


……違ってたらごめんなさい。


←目次に戻る

マップ編2(通行設定)

2010-02-03 23:29:42 | RPG制作
マップ編2です。

■建物の後ろを通らせたいんだけど、つっかかる件について

ゲームを作るとき、マップ上で
海だから主人公は歩けないとか、壁だから通り抜けできないという設定を
通行設定で決めるようです。
ウディタに、マップを入れると
新たに自分で全部設定しなくてはいけないのでちょっと面倒ですね。
ゲームって地味な作業の積み重ねでできているんだなぁと。


初期設定では、オレンジ色で囲んだところの後ろが通れなくなっていたりします。
ので、主人公が通るとき、ちょっと家のまわりを大回りすることになります。
青い色で囲んでいるように
何度かクリックして▲に変更すると、キャラクターが後ろを通れるようになります。

あと、イベントとしてマップチップを
三つのレイヤーの上に重ねてしまうことができます。
こうすると、3レイヤーをすべて使いきっても、四つ目のマップを重ねられます。
これを使うと、主人公が
イベントとして重ねた該当マップチップの下を通って移動とか
簡単にできます。
そしてなにより、通行設定では通れない設定にしても
イベントとして配置すると、通行設定に関係なく通れるマップにできるっぽいです。
よくわからないけど。


マップの通行設定は
実際にマップを組みながら、適宜主人公を動かしてみながら
設定しなおしております。
使わないマップチップまで律儀に設定するのはめんどうなので。


←目次に戻る

画面外からキャラクターが登場するには

2010-01-27 23:00:30 | RPG制作
■画面の外からキャラクターが登場する演出
■キャラクターの動作指定が途中で詰まる件

イベントとして
画面の外から、キャラクターが登場するイベントを作りたいと思いました。
しかし、主人公をそのまま動かすイベントを作ると
主人公が常に画面の中心となって、画面が動いてしまいます。
うまくいきません。
画面のスクロールを中止させるなり、なんかでできるのかもしれませんが
もっと手っ取り早い方法として、以下の方法でこのイベントを作ってみました。

とりあえず、主人公は空白にし、邪魔にならないところにおく。
主人公とは別に、主人公のイベントを作って、それを動かす。

こうすると、グラフィックを空白にした主人公の位置が
画面の中心となるので、別イベントで作った主人公がどう動いても問題ありません。
まぁ、そのあとに、主人公グラフィックを操作可能にして
場所移動させてしまうと、イベントのときと比べて
画面の中心地点が異なって、一瞬およっと思うことがおきますが……。

図でいうと、黄色の丸が主人公(プレイヤーが操作する方)位置で空白になってます。
画面外の赤い部分に、イベントを作成しました。
イベントは、動作指定で左に進んできています。


さて。
このイベントを作っていて、動作指定が完了しないという問題がおきました。
一つは、マップの空白部分に
パレットの左上以外の余白を使ってしまうことによる問題でした。
左上以外の余白を使うと、通行設定の問題で通れなくなったり、おかしくなります。

もうひとつの理由に、なかなか気づきませんでした。
それは、主人公の位置とイベントの移動先の問題。
主人公がたとえ空白だろうと
イベントの移動する道上に設定してしまうと
ぶつかってしまって、進めなくなるようです。

教訓として、主人公の位置は、邪魔にならない位置におこうと思いました。


毎度のことですが、初心者なので試行錯誤して作っています。
もっとよい方法があるかもしれません。
もし気が向いたら、ぜひアドバイスください。


←目次に戻る

キャラクターの表示

2010-01-27 02:49:11 | RPG制作
これを一つ目に記録しておくべきだった。
もう、やり方を忘れかけている……記録しなきゃ。
適当に書くので、間違ってたらすいません。

初心者用講座を流し読みでおえて(すいません)
基本システムを利用してゲームを作ろうとしてまず挫折しかけたこと。

■キャラクターがいない
基本システムを利用してテストプレイしたら、まずここで詰まりました。
特殊設定のゲームの基本設定で、キャラクター表示できるって
初心者講座で習った気がするのに、あれれ?と思いました。

タイトル画面を作ることを考えると、主人公邪魔なんですけどね。
最後にタイトル作るつもりだったので、ちょっとあせりました。

基本システムを使ってる場合は
コモンイベントの005番メンバーの増減で簡単にできるみたいです。
ただ、ちょっとその場合は、電車ごっこ状態で表示されるので
それが嫌な場合は、コモンいじるなり
加入のたびに、イベント組むなりしたらよいみたいです。



まぁ、可変データベースの3パーティ情報で
初期メンバーに人を入れることで、キャラクターが表示されるようです。

また、途中でキャラクターを入れたり、入れ替えたりするには
イベントから
コマンド入力画面を開いて
変数操作、可変データベースのタイプ3に
変数を導入することで、できたっぽいです。

ここでは、1を足し算しているので、データベースの1番の人が代入されてるのではないかと。
0番に登録した人をパーティにいれるなら、計算式を零にしませう。

あと、イベントの、キャラ画像でグラフィックも入れました。



←目次に戻る