RPGツクールXPのスクリプト

RPGツクールXPのスクリプトのテクニックなど

ツクールXPでSRPGを制作 第7回未発見処理

2005-05-25 23:40:43 | Weblog
 今回もネタと余裕がないため、雑談はお休みです。日曜遊んでいると、時間ありません。

 ツクールXPによるシミュレーションRPG制作講座、第7回未発見処理です。
 キャンペーン処理のサンプルのプロジェクトファイルはこちらはLZHこちらはZIPです。
 今回は、ノワールでやっていた建物の影に隠れて、敵から発見されないようにする処理です。
最初に、ゲーム中必要なステート、スキル、アニメーションの説明をします。
 まず、隠蔽スキル。このスキルを持っていると、敵から隠れることが可能です。
サンプルでは、81番目、「忍び歩き」という名前になっています。
 次に、未発見ステート。隠蔽ユニットが、敵の索敵範囲外にいると、このステートになります。
サンプルでは、17番目、「未発見」という名前になっています。
 最後に、発見時アニメーション。未発見状態のユニットが発見されるときに表示されるアニメーションです。
サンプルでは、98番目の「EM 驚き」を使用しています。
 以上のデータを SurumeSim_Sakuteki の最初で設定しています。
今まで通り、名前で判断しようと思いましたが、スキルやステートの名前は、
ゲーム中で使用するので止めました。
SurumeSim_Sakuteki の最初の=の後の数字を変更して下さい。 

# 未発見時ステート
$STATE_MIHAKKEN = 17
# 隠蔽ユニット(索敵範囲外なら攻撃されない)に必要なスキル
$SKILL_SINOBIASI= 81
# 発見されたときに表示するアニメーション
$ANIME_HAKKEN= 98

 また、スクリプトエディタで変更したくない人は(変更した場合、今後バグ修正・
ヴァージョンアップがあった場合、ダウンロード修正後変更しないといけなくなります)
最初に実行するイベントで、変更することをオススメします。
サンプルの左上のイベント「EV002」のスクリプトを変更、実行すれば、スクリプトエディタで変更することなく変えられます。
なお、サンプルでは、ここで設定していますので、SurumeSim_Sakuteki を変更しても反映されません。
 今回は特殊な処理のため、SurumeSim_Sakuteki のセクションを削除すれば、完全に効果をなくせるようになっています。
 次回はいよいよ、今までのスクリプトを使ってノワールを実現してみます。
と思ったら、ESC処理が全然できてませんね。
ESC処理が完成して余裕があったら、ノワールを作ってみます。

 さて、シナリオの締め切りまであと、1週間。
このままシナリオが来ないと、企画失敗ということで連載終了いたします。
今後の連載は続くのか、それとも失敗企画として静かに消え行くのか、決めるのはあなた達だ!

 以降は前回からの変更点です。
こちらのテキストを参考にして変更して下さい。


ツクールXPでSRPGを制作 第6回シナリオ例外処理

2005-05-18 18:43:05 | Weblog
 今回はネタと余裕がないため、雑談はお休みです。EYE2並行なので、忙しいです。

 ツクールXPによるシミュレーションRPG制作講座、第6回シナリオの例外処理です。

 シナリオの例外処理のサンプルのプロジェクトファイルはこちらはLZHこちらはZIPです。
 今回は、シナリオで特定のコマンドが実行できなかったり、特定のコマンドを入れた際
例外的な処理をできるようにします。
 コマンドと同じ名前で前に"コールバック:"をつけた名前のイベントを作って下さい。
例えば攻撃なら"コールバック:攻撃"ですね。
コマンドの入力が終了した場合、そのイベントの実行内容が実行されます。
 その際、以下の変数に、ゲーム実行時の変数が格納されます。

引数:実行ユニット    命令を与えたユニットのイベントID
引数:対象ユニット   攻撃などの対象になったユニットのイベントID
引数:使用スキル    スキルのとき、選択されたスキルID
引数:使用アイテム   アイテムのとき、選択されたアイテムID

 スクリプトで command_cancel を実行すると、選択されたコマンドをキャンセルして実行しないようにします。
チュートリアルなどで、特定のコマンドだけを実行させたいとき、
また攻撃ができない、スキルが使えないときになどお使い下さい。
 サンプルでは、アルシャスは攻撃できず、また今いる場所から移動して防御することはできません。
さらに、グロリアは回復を使えず、誰もポーションを使えません。
 この辺の処理は左上方にある4つのイベントで処理しています。
 ただし、現在ノワールのチュートリアルでやっていた、コマンドを選んだ瞬間、または移動場所を選んだ瞬間に
イベントを実行させて、コマンドをキャンセルさせることはできません。
変更箇所が多数に及ぶのでやりませんでした。今後必要になれば、追加していきます。
 次回は、ノワールでやっていた、未発見処理を行う予定です。

 未だ、シナリオの反応ありませんねー。実践編は開始できるんでしょうか?

以降は前回からの変更点です。
こちらのテキストを参考にして変更して下さい。

ツクールXPでSRPGを制作 第5回キャンペーン処理

2005-05-11 09:11:27 | Weblog
 最初はツクールとは関係ない雑談です。読みたくない方は、下の******まで読み飛ばして下さい。

 みなさんは「ユニーク」と聞いて何を連想しますか?
大抵の人は「面白い」とかを連想すると思います。
しかし、英和辞典で unique を調べると、「唯一(無二)の」「独自の」などの意味になっています。
 同様に「適当」と聞いて何を連想しますか?
大体「いい加減」「無責任」などを思い浮かべると思います。
しかし、数学的には文字通り「適切で妥当」なものを意味します。
 つまりユニークで適当とは、唯一無二で、適切で妥当を意味しているのです。
これって素晴らしいことですね。
他人にはできなくて、自分に適している、まさに人生の目標といえましょう。
これを人間関係に当てはめれば、そうです、これこそ結婚相手です。
さて、みなさんプロポーズのときに、こんな台詞はいかがでしょうか?

あなたは私にとって、…そう、ユニークで適当な人だ!

・・・多分振られると思います・・・

*************************************************************************************

 ツクールXPによるシミュレーションRPG制作講座、第5回キャンペーン処理(ユニット引継ぎ)です。
キャンペーン処理のサンプルのプロジェクトファイルはこちらはLZHこちらはZIPです。
 まず、プレイヤーのユニットは、初期パーティやアクターの入れ替えなどで全てパーティに入れて下さい。
そして、マップに配置するときは、リーダー等、固定アクターを指定したい場合、
今までどおりアクターのキャラクターグラフィックとイベントのキャラクターグラフィックを同じにして下さい。
もし、このアクターがパーティに入っていない場合、その面だけの参加となります。
 出撃メンバーを変更可能にする場合、キャラクターグラフィックを"801-PartyStock"
から始まるファイル名にすると、パーティメンバーを順に配置していきます。
 サンプルでは、最初に MAP01 の左上のイベントで、新たに仲間を4人加えて8人にしています。
また、横の人に話しかけると、武器を買うことができます。メニュー画面で装備できます。
下の人に話しかけるとシミュレーションゲームに移行します。
 1面は8対1なので、簡単に勝てます。2面は1対3なので、確実に負けます。
敵を全滅させてマップクリアしたときの処理は、クリアチェックという名前のイベントで行っています。
味方が全滅して敗北したときの処理は全滅チェックという名前のイベントで行っています。
御確認下さい。
 それから、シミュレーションゲーム中、以下の名称の変数に、ゲーム実行時の変数が格納されます。

引数:ターン数 現在のターン数が格納されます。
引数:味方の数 味方の残りの数が格納されます。
引数:敵の数 敵の残りの数が格納されます。

これを見て、マップクリアやゲームオーバーの処理をやっています。
 これで、大体ゲームは作れると思います。
次回は多分黒騎士の未発見処理の予定ですが、まだ未定です。

 最後に、再度シナリオ募集です。
今のところ何も反応ないですが、シナリオがないと次の実践講座に移れません。
謝礼は出せませんが、協力していただいた方のリクエストは優先的に受け付けます。
もし、複数の応募があった場合、申し訳ありませんがこちらで1つにしぼらせてもらいます。
条件は

・面数は6~10ぐらい。
・グラフィックはキャラクタ以外はRPGツクールXPの基本を使用。
・デザイナーは現状未定。ある程度完成してから考えます。
 今のところウチのデザイナーに任せたいと思っていますが、忙しい場合デザイナーも募集いたします。
・基本システムはノワールと同じ、敵に発見されないよう行動する黒騎士
 (忍者、潜入工作員などに変更可)が中心
・6月末頃から2週に1面ずつ発表予定

やってみたいと思う方は、5月31日までにストーリーのプロットと主要登場人物の設定を以下のアドレスにお送り下さい。
タイトルは必ず、「シミュレーションRPGのシナリオ」として下さい。
ウィルスメール多いもので。

surume@s140.xrea.com

以降は前回からの変更点です。使っている人いるのかな? まぁ、いいや。
こちらのテキストを参考にして変更して下さい。

ツクールXPでSRPGを制作 第4回スキルとアイテム

2005-05-04 03:17:19 | Weblog
 最初はツクールとは関係ない雑談です。読みたくない方は、下の******まで読み飛ばして下さい。

 先日、数年ぶりに歯医者に行って参りました。
 実はこの歯医者二件目で、ある理由で、最初の歯医者から変更しました。
前の歯医者は、看護婦が若くてきれいで、その辺はとても素晴らしかったのですが、いかんせん、

治療中の医師に話しかけて、「ちょっと待って下さい」と言われて「なにを待つんですか?」と聞き返したり、
歯の型を取るのに、5回も失敗したり、
明らかに新人と思える看護婦の練習台にされたり、

までは我慢できますが、はては、かぶせた歯が週に1回は取れる始末。さすがに変更します。
 で、次の歯医者ですが、そこはとても技術の高いところでした。
看護婦も年配の女性ばかりで、何の心配も要りません。
 それで、今回も安心して行ったんですが、なんとそこにも若くてきれいな看護婦が!
まぁ、ここなら若くても大丈夫だろうと、安心して治療を任せて、なんとか無事終了したようでした。
 ところが、治療が終わった後、婦長と思われる女性が、仕上がりを確かめるように、
「この辺はうまくできた」「ここはこうした方がいい」などと評価し始めたのです。
・・・また実験台にされた気もしますが、
若い女性と5cmの距離まで近づけたのでいいとしましょう。

 でも、一つだけお願いがあります。
「ここはこうした方がいい」といっているのに、そのまま帰さないで下さい。
私の歯はどうでもいいんでしょうか?

*************************************************************************************

 ツクールXPによるシミュレーションRPG制作講座、第4回スキルとアイテムです。

 スキルとアイテムのサンプルのプロジェクトファイルはこちらはLZHこちらはZIPです。
 スキルの設定ですが、射程の設定を追加すれば、OKです。
射程の設定は武器と同様に、チェックされた属性の名前の半角の数字だけ射程にプラスされます。
例えば、「無:距離+2」と「無:距離+4」をチェックすれば、射程6、
「無:距離+1」と「無:距離+4」と「無:距離+8」をチェックにすれば、射程13になります。
アイテムも同様に射程の設定をして下さい。

 起動させたら、前回同様下のキャラに話しかけて、シミュレーションマップに移動して下さい。
ヒルダがファイア(遠距離攻撃)、グロリアがヒール(回復)のスキルを持っています。
相手も魔法使いがファイアを撃ってきます。
 アイテムも、ポーション(回復)と炎の巻物(攻撃)を持っていますので使ってみて下さい。
 次はキャンペーン処理(ユニットの引継ぎ)の予定です。

 前回からの変更点です。今回なぜか多いです。
スクリプトを変更していない方は、サンプルプロジェクトからスクリプト全てをコピーした方が
早いと思います。
頑張って下さい。

①スキルの追加

 SurumeSim_Status の前にセクション挿入、名前は例えば SurumeSim_Skill にして、セクション内に
こちらをコピー。
 それに加えて

●SurumeSim_Attackの

・48行目の
$game_map.move_algorythm.set_move_action_by_move(selected_event.actor.range)
 を以下に変更

$game_map.move_algorythm.set_move_action_by_move(selected_event.max_range)

・832行目の
attack = $game_map.events[attack_id]
 の前に以下を追加

# 戦闘用の各種一時データを初期化
$game_temp.in_battle = true


・862(上記追加後は864)行目の
else

 の前にこちらを追加。

●Surume_MoveAlgorythm

・157行目
set_move_action_by_move(unit.actor.range)
 を以下に変更

set_move_action_by_move(unit.max_range)

・199行目の
# 敵の索敵範囲以外を初期化
 前に以下を追加

if dist == nil
dist = 0
end


●SurumeSim_Main

・581行目
# 移動できる範囲を計算
 の前に以下を追加

# 最大攻撃射程を計算
set_max_range($game_map.events[e])

・669(変更後は671),696(702)行目の
# キャンセル SE を演奏
 の前に以下を追加(両方)

# カーソルを元の位置に戻す
$game_player.moveto($game_map.events[@pick_event_id].x, $game_map.events[@pick_event_id].y)
# フレーム更新
update

・920(932)行目の前にこちらを追加。

②アイテムの追加

 SurumeSim_Status の前にセクション挿入、名前は例えば SurumeSim_Item にして、セクション内に
こちらをコピー。

スキル選択画面


アイテム選択画面