上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
2012.07.31 【雑記】耳が
ダンボ ピンチです;
土曜日寝るまでは何ともなかったのに、日曜日、目が覚めたら右耳が聞こえにくい。
トンネルとか抜けた後に、気圧差で耳がキーンとなる事がありますが、あれがずっと続いているような感じ。

最初は風邪の症状くらいに考えて気にもしていなかったのですが、火曜日になった今でも治らないのでちょっと怖くなってきた。
明日は半休をいただき、耳鼻科に行ってきます。

店のスタッフ曰く「中耳炎は熱も出ますよ」
確かに体調はよくないんですが、何しろ暑いので、熱があるのかないのかも分からない。
困ったものです;
スポンサーサイト
2012.07.30 音楽の魔力
オリンピックが始まってから、テレビを見る事が多くなっているいぬです^^

Dブロック制作進んでおりますが、かなりスローペース。
というか、マップとかイベントとかBGMとか、考える事が多くて進みが遅いというか^^;

FPLで特に重視しているのが、BGM。

BGMというのは本当に演出面で重要な役割を担っているものでして。
ウォークマンに入っている、1000曲を超えるBGM素材を聴いており、シーンに合ったBGMを常に模索しております♪

おいらは最初、「シーンに合ったBGMを選択する」ものだと思っていたのですが。
実際は逆なのかも知れないと、最近は感じ始めています。
つまり、実際のシーンがどうであろうと、BGMがシリアスならシリアスなシーンになるし、ギャグっぽい曲ならギャグっぽいシーンになるのではないかとw
逆に、特定のBGMを使いたいが為のイベントまであったりしますし(笑
それだけに、BGMの選定にはこだわっているのですよ^^

最近は、曲にループタグを入れる作業もお手軽にできるようになってきて、レベルアップしています~!

さて、今日は何をツクろうかな~
それほど重大な事は書いてありませんが、先に「※素材(?)について」をお読み下さい^^

昨日ついにメソッドとして完成する事ができた(といっても、本格的に素材屋さんをやっている方々にとっては子供だましのようなものだと思いますが)、リアルタイムを参照するイベントスクリプトを用いたイベントその②です。
実は、昨日紹介した1日1回の限定イベントより、こちらの方が先に完成していました。
いやあ、努力で何とかなるもんです。
今回紹介するのは、朝昼夜で商品が変わるお店を作れるイベントスクリプトになります。
昨日公開したものと、ほとんど変わらないとか言わない(笑)

「ゲーム内の時間」ではなく、「実際の時間」を参照するイベントスクリプトです。ご注意下さい。

お手軽さ:2
根気:2
スクリプトを弄る必要性:有

必要なもの
変数:7つ

①イベントコマンドの3ページ目の右下隅に「スクリプト」という項目があります。これをクリックして、まずは以下のように記述します。

t = Time.now
$game_variables[1] = t.year
$game_variables[2] = t.month
$game_variables[3] = t.day
$game_variables[4] = t.wday
$game_variables[5] = t.hour
$game_variables[6] = t.min
$game_variables[7] = t.sec

method22.png

こう。昨日書いたものとまったく同じです。
これも、実行内容の最初に必ず記述して下さい。
これを記述しなければ、リアルタイムを変数に格納する事ができません。
上に載せてあるものをコピペで貼り付けていただければ大丈夫ですよ^^
これにより、変数1にリアルの「年」、変数2に「月」、変数3に「日」、変数4に「曜日」、変数5に「時」、変数6に「分」、変数7に「秒」がそれぞれ格納されます。

②次に条件分岐を使い、話しかけた時間帯によって会話内容が分岐するようにイベントを作ります。
例では、4~11時、12~19時、20~3時で朝、昼、夜を区分しています。

method26.png
method27.png

条件分岐を使い、変数5「時」の変数が4未満(つまり0~3時)なら夜、4以上12未満(4~11時)なら朝、12以上20未満(12~19時)なら昼、20以上(20~23時)なら再び夜の商品が販売されるようになります。
テストしてみましょう。
なお、このテストプレイを行った時の時刻は9時35分だったので……

method28.png

朝の商品を売ってくれました。
時間が経ってから、再度話しかけると……

method29.png

今度は、昼の商品を売ってくれるようになりましたね(14:23に確認)。

これを応用すれば、曜日によって商品が変わる店、日によって商品が変わる店、あるいは話しかけるたびに商品が変わる店などを作る事もできますね(もっとも、話しかけるたびに商品が変わる店なら、変数の乱数代入を用いた方が簡単ですが(笑))

店に限定しなくても、例えば1日1回話しかけたらアイテムをくれるが、話しかけた時間帯によってもらえるものが違うとか、特定の時間帯にだけ(昼間だけとか)発生するイベントだとか、ポケモンの「ジョギング」や「けいびいん」のように、特定の時間帯に話しかけた時だけバトルになるとか、発想次第でいろんな応用ができそうですね。
FPLにも実装してみようかなぁ……絶対面白そうだもの!!

検索ワード:RPGツクール VX ACE ace ツクール スクリプト RGSS3 イベント イベントコマンド イベントスクリプト 時間帯 変数 リアル リアルタイム 変わる 実際 時間 時 素材
それほど重大な事は書いてありませんが、先に「※素材(?)について」をお読み下さい^^

スクリプトの勉強を始めた時から作りたいと思っていた、リアルタイムを参照するイベントを作る事にようやく成功しましたん♪
スクリプトの勉強のかたわら、素材屋さんのまねごとみたいな事をたま~にやってたりするんですが(いや、文字通り「まねごと」です。今までに公開したような内容で素材屋さんとか言ってたら、本当の素材屋さんに失礼だw)、これはちゃんとお役に立てるかも知れない!

てことで、1日1回とか、1時間に1回とか、リアルタイムを参照して、一定時間が経過しなければ再度発生しないイベントを作ってみました~。

「ゲーム内の時間」ではなく、「実際の時間」を参照するイベントスクリプトです。ご注意下さい。

お手軽さ:2
根気:2
スクリプトを弄る必要性:有

必要なもの
変数:8つ

○前提
・一度イベントが発生したら、一定時間経過するまでイベントは発生しなくなる。

このイベントは、スクリプトを使用する必要はありますが、スクリプトエディタをいじる必要はない、比較的初歩的なイベントスクリプトで作る事ができますから、スクリプトなんて分からない! という人でも安心してご利用いただけます。
(そもそも勉強中のおいらに、複雑なRGSS3を操る力はありません)

スクリプトの勉強を志してからというもの、たびたびヘルプの中にあるスクリプトリファレンスを読んで、文法を勉強していまして……その中に、「Timeのクラス」というものがあります。
これを使うと、リアルタイムを変数に代入したりできるようになります。

今回はこれを使い、例として「1日に1回だけプレゼントをくれる子供」というイベントを作成いたしました。

①イベントコマンドの3ページ目の右下隅に「スクリプト」という項目があります。これをクリックして、まずは以下のように記述します。

t = Time.now
$game_variables[1] = t.year
$game_variables[2] = t.month
$game_variables[3] = t.day
$game_variables[4] = t.wday
$game_variables[5] = t.hour
$game_variables[6] = t.min
$game_variables[7] = t.sec

method22.png
こんな感じ。

これは、実行内容の最初に必ず記述しなければなりません。
これを最初に記述する事で、変数1に「年」、変数2に「月」、変数3に「日」、変数4に「曜日」、変数5に「時」、変数6に「分」、変数7に「秒」がそれぞれ代入されます。
これを記述する事で、初めてリアルタイムをゲーム変数として使用する事が可能になるのです。

②次に、子供に話しかけたら、アイテムをくれるようにイベントを作りましょう。
これについては、別に何も難しい事はないので、割愛します。
そして、このイベントの最後に、変数8に変数3「日」を代入する事だけは忘れないようにして下さい。

③最後に条件分岐。
変数8が変数3「日」と同じ値である場合は、アイテムがもらえないようにイベントを分岐させます。
先ほど、アイテムをもらった後に変数8に変数3「日」を代入しましたから、これで2回目以降はアイテムがもらえなくなるはずなのです。
そして、翌日になった時、変数8と変数3は同じ値ではなくなりますから、また一度だけアイテムをもらう事ができます。

method23.png
できあがったのがこちら。「1日に1回だけ、フルポーションをくれる子供」です。なんて気前がいいのでしょうか。
テストしてみましょう。



method24.png



話しかけると、子供からフルポーションをもらう事ができました。
続けて話しかけてみると……。



method25.png



ちゃんと(?)断られました。
実際の日付が変わって翌日になったら、またフルポーションをもらう事ができます。

変数8に代入する変数を2「月」にすれば月に1回だけのイベント、1「年」にすれば年に1回だけのイベントも作れます(年1回のイベントとか、めちゃくちゃレアですねw)。
4「曜日」なら週1回のイベント、5「時間」なら1時間に1回限定のイベントとなります。
応用すれば、プレイヤーの誕生日限定のイベントなんかも作る事ができそうですし、何かと応用が利くのではないかと思います^^

ただ、5「時」を使って、1時間に1回限定のイベントを作る時には気をつけて下さい。
誤解されやすいのですが、一度発生したら「1時間イベントが発生しない」のではなく、「同じ時間(例えば12時なら12時である間だけ)はイベントが発生しない」なので、極端な話、12時59分にイベントが発生した場合、1分後に13時になると、再度イベントが発生します。
また、0時台の場合、初めてであってもイベントが発生しません
なぜなら、変数は何も設定しなければ、初期状態は0だからです。
変数8と変数5「時」が同じ値だとイベントが発生しないよう条件分岐を作っていますから、0時台だと、イベントが発生しなくなってしまうんですよw
この場合は、ゲームを開始した瞬間に、変数8に「25」とかあり得ない数値を代入しておくと、これを避ける事ができます。

なにげに汎用性が高そうなので、おいら自身への備忘録も兼ねて、ここに紹介いたしました♪
スクリプト素材を配布されている素材屋さんはたくさんあるんですが、イベントコマンドで使えるスクリプトを紹介しているサイトさんって、少ないんですよね。おいらが見つけられていないだけかも知れないですけどw

おいらと同じく、いろんな方々の助けを借りながら、少しでも楽しいゲームを作れるように日々頑張っているゲーム仲間の方々へ、少しでも恩返しになればいいなと思います♪

検索ワード:RPGツクール VX ACE ace ツクール スクリプト RGSS3 イベント イベントコマンド イベントスクリプト 限定 1日 1回 リアルタイム 実際 時間 時 回数 制限 素材
いぬは ひがわりイベントをつくれる
スクリプトを おぼえた!



やったー、成功したー!!



スクリプトの勉強を重ねながら、作りたいと思っていたのが、リアルタイムに関連するイベント。
ポケモンのように、1日1回だけ発生するイベントなんか、作れたらいいなと思っていたんですが……その一歩手前(?)の、特定の日や特定の曜日、特定の時刻の時だけ発生するイベントを作る事ができるようになりました!

素材屋さんからお借りしたスクリプト素材ではなく、イベントスクリプトを用いた(つまり、自作の)スクリプトでイベントを動かすのはかなり久しぶりなので、レベルアップを実感しております♪
せっかくだからFPLのどこかで実装したいなぁ……曜日によって売っている物が変わるお店とか、1時間限定で入手できる隠しアイテムとか……。
たぶん、このイベントスクリプトの理屈で、1日1回限定のイベントも作れると思う。
もうちょっと研究して、さらにスクリプトのレベルを上げるぞお♪
Dブロックの制作、スローペースながら始まっております~。
さて、その件で、あらかじめおことわりしておかなければならない事があります。

次回が最後の大型更新になる予定(細かい修正などはもちろん今後も続けていきますが)で、Dブロックどころか、エンディングまで作ってしまう予定です。
その際、重要な演出系スクリプトを投入するつもりでいまして、これを投入すると、またしても現在のセーブデータとの互換性が失われてしまい、最初からやり直さなければならなくなってしまいます……。

一応この件につきましては、かなり前の日記でお伝えしていたように記憶はしておりますが、念のため、再度ご連絡しておきます。
たびたびご迷惑をおかけいたしまして、申し訳ありません。
開発途上のゲームの宿命として、ご了承いただけると幸いです。
セーブデータの互換性が失われる大幅な変更は、今回を最後にするつもりなので、なにとぞよろしくお願いします。
公開してからあれこれ変更するのはもはやFPLの恒例(笑

ver.0.3公開後、変更になった部分。

○一部、キャラのセリフがおかしかったりしたのを修正。
公開後発見した、セリフがおかしかったりしたのを訂正。

○「ワープの館」新設
公開範囲がかなり広がってきた事で、だんだん大変になってきた移動を少しでも楽にするため、ブロック間をワープできる「ワープの館」をニューオープンいたしました♪

○バトルチュートリアル導入
Aブロックのインフォメーションにて、チュートリアルとしてサーラさんと戦えるようになりました(笑
なお、勝っても負けても何もありませんので、あしからずw
チュートリアルを入れる事で、完全初心者の人にもある程度とっつきやすくなったかな? 様々な人の事を考えて、FPLは作られております^^

さてさて、今日は何を作ろうかなー
おいらが作っているのは、RPGです。

RPGって、何の略ですか?

おそらくおいらと直接の付き合いがある人で、この質問に答えられない人はいないと思います。
もちろん、「ロールプレイングゲーム」です。

では、「ロールプレイングゲーム」って、何ですか?

ロールプレイングゲームは、「役割(ロール)を演じるゲーム」の事を指します。

これは、コンピュータRPGでも、テーブルトークRPGでも変わる事がない、絶対の共通点です。

相違点は、プレイヤーがキャラクター自身になりきってロールプレイするのがテーブルトークRPGで、プレイヤーがキャラクターというアバター(分身)を借りて、動かすのがコンピュータRPG……と言ってしまえば簡単でしょうか?(厳密にはちょっと違うと思いますが)

今回このような日記を書こうと思ったのは、この原点を知っている、あるいは覚えている人がどれだけいるのか気になったからです。

コンピュータRPGでもTRPGでも変わらない大原則。それは、「キャラクター視点に立ってものを考える」という事です。

ゲームの世界の人々は、たとえ一般人Aであろうとも、一般人Aなりの生活を送っているわけです。
基本的に一般人は、冒険者の生活や活動に興味なんてありません。
それが何を意味するのか?
「冒険者にとって、有益な情報を持っている事の方が少ない」という事です。
それゆえ、冒険者は情報を得るために、さまざまな人から聞き込みをしなければなりません。
もちろんゲームですから、最終的にはクリアできなければ困ります。
ですから冒険者が欲しい情報を持っている人が、ただの一人もいないという事はまずありえないのですが、出会う人出会う人全員が何らかの冒険のヒントを知っていたり、有益な情報を持っているという事は、ありえないんですよ。
聞き込みが面倒で、いろんな人に話しかけていかないと進まないゲームなんてやってられない という人がいたとしたら、それはプレイヤーのエゴでしかありません。

ダンジョンにしてもそう。
そもそもダンジョンはどうして作られるのか、という事をキャラクター視点に立って考えるだけでも、いろんな事が見えてきます。
ダンジョンというのは原則として、特定の場所に近づけさせないため、あるいは、特定の場所から外へ出さないために作られる というものがほとんどです。
という事は当然、中には様々なトラップが仕掛けられているわけですよ。
このトラップにも目的によって、様々な種類が使われます。
最初から殺傷目的で仕掛けられるトラップならば、爆弾や致死性の青酸ガス、釣り天井などが挙げられます。
しかし、生け捕り目的で仕掛けられるトラップだって存在しますよね?
侵入者を生け捕りにしたいのに、仕掛けられているトラップが爆弾や釣り天井ならば、これは不適切という事になります。
もちろん他にも、たくさんのトラップがあります。
ある場所に近づけさせないため、侵入者を別方向へ誤導するトラップや、プレイヤーに「何かあるかも」と疑念を抱かせ、判断を狂わせる事自体がトラップである、ブラフ(はったり)というトラップも存在します。
さらに、屋外で仕掛けられるべき罠、屋内で仕掛けられるべき罠も違っていて、屋内にもかかわらずスネア(草結びの罠)が仕掛けられていたりするのは、おかしいわけです。

このように、トラップというものは目的によって使い分けられるべきであり、ダンジョン作成者(制作サイドから見れば制作者、キャラクター視点に立って言えばダンジョンマスター)は、意図によって仕掛けるトラップを変化させているのはむしろ当然です。
爆発トラップや眠りガスのように、直接的なトラップでなければ存在意義が理解できないというのは、ロールプレイしているとは言いがたいとおいらは思います。

ゲームというものは、制作者、プレイヤー双方の努力が必要だとおいらは思います。
すなわち、制作者には「意図を分からせようとする努力」
プレイヤーには「意図を分かろうとする努力」
意図が伝わりにくいイベントを作ってプレイヤーに「分かれよ」というのは制作者のエゴですし、プレイヤーが分からないからと言って、それをろくに考えようともせずに「意味が分かりません」と言い放つならば、それはプレイヤーが身勝手なだけではないか。

そういう意味では、プレイヤーもまた制作者だとおいらは思います。
制作者(ゲームマスター)とプレイヤーが、ともにクリアという同じ目的に向かって互いに努力するからこそ、面白いゲームは作れる。これさえも、コンピュータRPGとTRPGに相違はありません。

おいらは、クリアすればそれで終わりという、ただの「ゲーム」を作っているつもりはまったくありません。
おいらが作っているのは「RPG」です。
おいらは常に「キャラクターの視点に立ってゲームを作る」という原点に立った状態で制作を行っています。
そのこだわりは、目に見えなくとも強烈ですよ。
例えば、酒場を作っていても、
「この机の幅だと狭くて後ろのキャラが通りにくいんじゃないか」
と考えて、机と椅子の幅を少し広くしたりとか。
ゲーム的には、1マス隙間が空いてさえいれば通行する事はできるのですから、そんな事にこだわる必要はないという方もいるかも知れませんが、そんなレベルまでこだわって制作しているんです。
そしてそれは決して特別な事ではなく、真剣に制作に取り組む人間としては、ごく当たり前の事だと思っています。

この考え方が間違っているとは思っていません。
そして、こういう考え方が、市販のゲームではあまり一般的ではないという意見も間違っていると思っていません。
ですが、ただひとつ間違っているとはっきり言える事。
それは、「ゲームとはこうでなければならない」と、画一化させてしまう事。
押しつけていなくとも、自分が知っているスタイルと違うからと言って、それを全否定して受け入れようとしなければ、それは押しつけているのと大差はありません。
ゲームとは自由な発想で作られるべきものであり、こうでなければならない、というゲームなど存在していいわけがありません。
だから、おいらはFPLを作りました。
小学生の頃から数え切れないほどゲームをしてきた、TRPGも経験したおいらが、自分が伝えたい思いのすべてを込めて放つ、おいらの心そのものです。

「こういうゲームもあるんだよ」

おいらはゲームが大好きです。
それゆえ、ゲームに対する姿勢には常に真摯でいるつもりです。
制作側に回って、制作者の気持ちも分かるようになった。
どうか、RPGの原点とは何であったかを忘れてしまった方は、もう一度考えていただければと、同じゲーム仲間として切に願います。
FPL
本日めでたく、ver.0.3を公開する事ができましたー♪
いや、長い戦いだった。ホラーハウスとかホラーハウスとかホラーハウスとか(笑

というわけで、今回も彼女に手伝っていただきましょう。
サーラさーん!!



サーラさんにこっ
サーラ「はいはい、お疲れ様でした、待っていましたよ~、Cブロックの公開♪」

いぬ「今回も、Cブロックのスクショを入手してきていただいてるんですよね?」

サーラ「はい! それでは、若干のネタバレになってしまいますので……」

いぬ「いつものように、【続きを読む】から見れるようにしましょうか!」
... 続きを読む
Cブロックまでのメインストーリーの動作チェックおよび、テストプレイがすべて終了いたしました!
あとはちょっとしたイベントの微調整を残すのみなので、月曜日に公開できるかと思いますー♪
お待ちいただいていた方には、本当に申し訳ありませんでした;

ただ、この微調整、早く済めば明日中に公開いたしますので、油断はできません(笑

長かったなぁ、このCブロック。では、最後の仕上げに入ります!
結局朝方までテストプレイして、ホラーハウスを一気に終わらせました。
先日寝過ぎて遅れた分を取り返したかったのと、こんな怖い場所のテストプレイを長引かせたくないから(笑)

しかしこれで残すは、Cブロック最終にして、FPL最大級のイベントの戦闘バランスチェックとテストプレイ、そして追加イベント1つをを残すのみ!
最大級とは言いながら、メイン、追加イベントともにホラーハウスに比べると複雑さに天地の差があるので、いよいよCブロック公開が見えてきましたよ♪
今週中、うまくいけば明日中には公開できるかも!

さあ、ラストスパートだー!

追記:結局、ホラーハウス内で遭遇した恐怖イベントは全部で3回。
はぁはぁはぁ よく心が折れなかったよおいら。
頑張ったよおいら!(´;ω;`)
ついにCブロック最終アトラクション、ホラーハウスのテストプレイ開始。

これ、やっぱりアカンw

まだ恐怖のイベントは1回も発生していないものの、プレイしているだけで精神をむしばまれるw

今夜はもうやめて、続きは明日にしよう;;;

マジで不具合だけは起こしたくない。不具合が起こったらやり直しになるw
このアトラクションだけは、絶対に不具合が起こりませんように……;
やっぱ間に合いませんでした;
公開どころか、これからCブロック最終アトラクションのテストプレイというね;

敗因その①……寝過ぎ
昨日は昼まで寝てしまった。そんなつもりは全くなかったのに;

敗因その②……追加イベント等
追加イベントの動作チェックと、合成レシピの追加で予想外に時間がかかった;

今週中にはなんとか仕上げられるように頑張る!
申し訳ありません;;
【本日のスケジュール】

7:25 自宅出発(兵庫)
9:20 職場で忘れ物を回収(大阪)
11:00 京都駅で忘れ物を回収(京都)
12:50 実家でぐったり(奈良) ←今ココ

数時間で2府2県を巡る鬼畜スケジュール;
それも、全部忘れ物がらみというのが情けない(笑)

明日中にCブロックを公開するのを目標にしてます!
最後の追い込み、応援して下さい!

間に合わなかったらごめんなさいね(笑)
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。