無料のゲーム開発ツール「ウディタ(WOLF RPGエディター)」の基本的な使い方を、初心者さん向けに紹介するこの企画。
今回は前回に引き続き、コモンイベントの使い方を解説。少しステップアップして「入力の数/結果を返す」の設定を活用したイベントを作ってみましょう。今回の講座32では「入力の設定」に焦点を当ててみます。
現在公開中の講座をまとめたページ。「ウディタのことがよくわからない」「簡単な機能から覚えたい」などの初心者さんは、初期の講座から読むのがおすすめです。
公式サイトにはウディタの使い方を詳しく解説している、マニュアルやガイドが公開されています。ウディタを学ぶ際の必須となる教科書です。ぜひ参考にしましょう。
目次
コモンイベントの「入力の数/結果を返す」とは?
ウディタのコモンイベント画面を見ると、「入力の数/結果を返す」と書かれた部分があります。
この部分は、そのコモンイベントが独自に持つ「コモンセルフ変数」を、外部とアクセスできるようにするもの…といった感じでしょうか。
言葉で説明すると難しいんですが、今回作る簡単なイベントをやってみると、なんとなく使い方を理解できるかと思います。
前回講座よりも難易度は上がるかもしれません。でも、解説どおりにやれば大丈夫。ウディタ初心者さんもぜひチャレンジしてみましょう!
各マップに存在するキャラに「今いるマップ名」を言わせるイベントを作る
それぞれ異なるマップ名を言わせるのが今回のポイント
- コモンマップA
- コモンマップB
上のような、2つのマップがあったとします。それぞれのマップに1つずつ配置したマップイベントのキャラに、「自分のいるマップ名を言わせる」イベントを作るというのが、今回の目標。
例えば、主人公キャラが話しかけた相手キャラのいる場所がコモンマップAなら、
「コモンマップAへようこそ!」
と言ってもらいます。
相手キャラのいる場所がコモンマップBなら、
「コモンマップBへようこそ!」
に変化する感じです。
これを、コモンイベントの「入力の数/結果を返す」で可能な設定の内、「入力部分」を活用して実現します。
【準備】2つのマップとマップイベントを作成
前回講座の内容をそのまま使いまわします。まだない人は「やさしいウディタ講座31:簡単なイベントを作りコモンイベントを学ぶ」を参考に、ササッと作っておいてください。
※コモンマップAのニワトリ
※コモンマップBの子供
とても簡単なマップとマップイベントなので、すぐに作れるはず。「よくわからない!できないよっ」という人は、今回の講座内容をいきなりやるのは難しすぎると思います。「「やさしいウディタ講座」- もくじ」のページに移動し、初期の講座からゆっくり慣れてみてください。
マップを用意したら、先に進みましょう。
新しいコモンイベントを作る
今回講座のメイン、コモンイベントを作ってみます!
エディターのアイコンメニューから、「コモンイベントの設定」をクリック。
画面左のコモンイベント一覧を下にスクロール。空いている行を選択し、画面右の「名前」の欄に好きなコモンイベント名をつけて登録します。
今回は223の行に「マップ名の案内」というコモンイベントを作ってみました。
起動条件は「呼び出しのみ」を指定。他のイベントから、このコモンイベントをコマンドとして入力した場合に限り、実行させるためです。
「入力する値の意味」について
「入力の数/結果を返す」の部分にある、「設定」ボタンをクリック。
専用画面が開いたら、「入力する値の意味」の部分を見てください。
8つの項目がありますよね?この部分はコモンイベント「マップ名の案内」が持つ、「コモンセルフ変数」と連動しています。
※コモンセルフ変数は、「セルフ変数使用状況」の画面で管理できます。
チェックを入れてアクティブ状態にした項目には、他のイベントから「数値」や「文字列」を渡すことができます。
通常、他のイベントからコモンセルフ変数を操作することは出来ないんですが、この特殊な設定を使えばコモンセルフ変数の中身を変えられるんですね。
- 左側の項目には「数字(数値)」を入れられます。それぞれ「コモンセルフ変数0~3」と連動。
- 右側の項目には「文字(文字列)」を入れられます。それぞれ「コモンセルフ変数5~8」と連動。
※「セルフ変数使用状況」の画面。
とりあえず現段階では、この仕組みを覚えておいてください。次へ進みましょう。
コモンセルフ変数の特徴については「やさしいウディタ講座7:変数の種類と使うことのできる範囲」あたりを参考にどうぞ。
システムデータベースの「マップ名」データを取得するための設定
ウディタでマップを作る際、マップ名をつけますよね?このマップ名は「システムデータベース」に登録されています。
エディターのアイコンメニューから「システムデータベース」をクリック。
タイプから「0:マップ設定」を選択。「データ」の部分に、今まで作ったマップの名前が登録されているはずです。
このデータを使うのが今回のポイント。
システムデータベースを開いたまま、先程のコモンイベント「マップ名の案内」の画面に戻りましょう。
「入力の数/結果を返す」の設定ボタンを押し、「入力内容の設定」画面を開きます。
「入力する値の意味」で「数値1/コモンセルフ0」の項目をチェック。入力欄にわかりやすい名前をつけます。
今回は「マップ名」にしてみました。
「特殊指定」の項目に移りましょう。「入力[数値1]」の部分が凹んだ状態になっているかと思います。
これは「数値1/コモンセルフ0に対する設定をしますよ」という意味です。
「データベース参照(数値)」の項目にチェックを入れます。
システムデータベースのマップデータを使いますので、「システムDB」を指定。タイプの部分は「0番」に。すぐ側に「マップ設定」と表示されますが、システムデータベースのタイプ0番の内容をあらわしています。
試しに番号を変えてみてください。それに連動して表示される文字も変わるはず。
システムデータベースと連動しているのが一目瞭然。満足するまでいじったら、タイプ0番のマップ設定に戻しておきましょう。
『「-1」~「-3」の項目を追加する』の部分は、参照するデータベースの内容を使わない場合の選択肢です。例えば、-1に「該当無し」の項目を作るとかですね。コモンセルフ変数には指定した-1~-3の値が代入されます。任意の項目なので、必要に応じて使いましょう。
今回はとりあえずこの内容で大丈夫。画面下のOKボタンを押し、保存します。
ここで一旦、コモンセルフ変数の使用状況を見てみることに。
先程の「数値1/コモンセルフ0」の項目に入力したマップ名が、「Cself 00」に表示されていますね。
数値1/コモンセルフ0とコモンセルフ変数の0番が、同じ存在である証拠です。
ゲーム画面に表示するテキストを「特殊文字」で入力
次に、このコモンイベントをセットしたマップイベントのキャラに、喋らせるセリフを作りましょう。
コモンイベント「マップ名の案内」のメモの下、コマンド欄に入力します。
タブルクリックなどでイベントコマンド画面を開き、「1 文章の表示」を選択。
「特殊文字」を入力します。システムデータベースのマップID名を表示させるためです。半角で入力してください。
システムデータベースの特殊文字は以下のとおり。
¥sdb[0:0:0]
[ ]内に、システムデータベースの[タイプ:データ:項目]が入ります。タイプ「0:マップ設定」を表示させるので、最初の1つ目は「0」でオッケー。
重要なのが2つ目の部分。
別イベントでコモンイベント「マップ名の案内」を使うと、コモンセルフ変数0の中に、システムデータベースの「0:マップ設定のデータID」が数字(数値)で入ります。
つまり、データIDが入っているコモンセルフ変数0を、特殊文字で入力すれば良いってわけです。
コモンセルフ変数の特殊文字は以下のとおり。
¥cself[数値]
今回は0番の変数を使いますから、「¥cself[0]」と入力します。なので…
¥sdb[0:¥cself[0]]
上の書き方が正解。今回の場合だと3つ目の項目は使いませんので、[ ]内は2つだけで大丈夫です。区切りの記号「:」の入力も忘れずに!
後は適当に、それっぽい文字を付け加えておきます。
作業が終わったら入力ボタンをクリック。
OKもしくは更新ボタンを押して、コモンイベントを保存しましょう。
特殊文字については「やさしいウディタ講座18:お金の単位を変更&画面表示のやり方」の中でも解説しています。合わせてどうぞ。
各マップイベントからコモンイベントを呼び出す
続いて、各マップのマップイベントで作業。イベントコマンドを入力します。
まずはコモンマップAのニワトリからやってみましょう。
マップイベント「ニワトリ」の画面を開き、画面右のコマンド欄で、コマンドの入力開始。
※最初の行にあるコモンイベント「あいさつ」は、前回講座でやったものです。特に影響しないので、そのまま記述を残しています。このコマンドは無くても大丈夫。
マップイベント一覧から、「I コモンイベント」を選択。
「イベントの挿入」にチェックを入れ、プルダウンメニューから今回作ったコモンイベント「マップ名の案内」を選びましょう。
選択後、「コモンEv入力(数値)」の部分にマップ名の項目があらわれると思います。
そうです!この部分にコモンイベントの「入力の数/結果を返す」で設定したものが反映されているんですね。
マップ名と書かれた部分は、「数値1/コモンセルフ0」のスペースに入力した文字が使われています。
その隣のプルダウンメニューを開いてみましょう。システムデータベース「0:マップ設定」のデータが、ずらりと出てくるはず。
この部分は「特殊指定」でチェックを入れた「データベース参照(数値)」の内容が反映されている状態。なんとなく仕組みがわかったでしょうか?
ニワトリがいるマップは「コモンマップA」です。なので、プルダウンメニューからコモンマップAを指定します。
最後に入力ボタンを押しましょう。マップイベント「ニワトリ」のコマンド欄に適用されます。
セーブして内容を保存してください。
続いて、コモンマップBのマップイベント「子供」で作業します。先程のニワトリとやることは同じですが、コモンイベント「マップ名の案内」で、マップ名を「コモンマップB」にしてください。
これで完了!セーブして内容を保存します。
テストプレイで確認
作業が終わりました。確認のため、テストプレイしてみましょう。
まず、コモンマップAのニワトリに決定キー(Enter)で話しかけます。
「コモンマップA へようこそ!」と返事してくれました。
次にコモンマップBへ移動し、子供に話しかけてみます。
「コモンマップB へようこそ!」と出ましたね!
今回の講座内容のおさらい
同じコモンイベントを挿入したのに、表示されるマップ名がそれぞれ違う。
これこそが「入力の数/結果を返す」の設定が可能にしたテクニックです。
マップ名が表示される仕組みを簡単に説明すると、以下のとおり。
- マップイベントから、コモンイベント「マップ名の案内」を呼び出す。
- 呼び出す際に、使用したいシステムデータベースのマップIDを指定。
- コモンイベント「マップ名の案内」が、指定されたシステムデータベースのデータIDを取得。
- データIDを、コモンセルフ変数0に代入。
- コモンセルフ変数0の中身を使い、特殊文字でシステムデータベースのデータID情報を画面に表示。
前回の講座内容は、ただ単にコモンイベントで作った文字を表示するだけでした。
今回のやり方なら、呼び出し元のイベントから狙ったデータをコモンセルフ変数へ送って、コモンイベントの内容を変えることができるってわけです。
もちろん、特殊文字を使った文章の表示だけに限りません。条件分岐に活用するとか、アイテムの種類を変えるとか、いろんなことができます。
少し複雑な内容でしたが、これができるようになるとウディタのゲーム開発が更に楽しくなるはず。ここぞというときに今回紹介したテクニックを使ってみてください!
次回の講座は?
やさしいウディタ講座32はここまで。
次回「やさしいウディタ講座33:コモンイベントの結果を返すを使った時間表示」では、コモンイベントの「結果を返す」機能を使って、午前午後の時間をゲーム画面に表示させてみます。
今回使ったマップとマップイベント「ニワトリ」を再利用していますので、そのまま残しておくとスムーズに講座を始められるかと思います。
※全講座の目次ページはコチラ。