※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

乗り物を作ってみよう


~まだ編集中です~


この 「STEP+」 は本編の 「STEP1~STEP20」 とは独立した単体の機能説明や制作手順説明になります。
本編の 「STEP1~STEP20」 での学習後、より多くの機能等を学びたい際に御覧ください。


乗物を入手することで、海・空など移動できる世界が広がるというのは、冒険RPGの醍醐味と言えます。
ウディタの 「基本システム」 には、残念ながら乗物の機能というのは備わっていないのですが、ウディタ自身の機能を駆使することで、少し難しいこともありますが、乗物を実現することができます。
ウディタで乗物を実現するにはいくつかのやり方があるのですが、今回の説明を一例として、様々なタイプの乗物の作り方を見ていきましょう。

今回説明する方法にはいくつか制限がありますので、ご注意ください。
ただし、この制限はこれまで学習した内容で応用を利かせれば解決できるものですので、ご自分のゲームの内容に応じて調整してみましょう。
  • 乗物に乗って移動できるのは1つのマップ中のみ。
  乗物に乗ったまま別のマップに移動したりということは考慮していません。
  • マップ中に勝手に動きまわるイベントが存在しない。
  マップ上を敵キャラが動きまわる、シンボルエンカウントで戦闘が発生するようなことは想定していません。
  • 乗物への乗り降り時の演出は簡易的なものにする。
  隊列を組んでいるパーティーが次々に乗物に乗り込んでいくような演出部分は、説明が長くなってしまうので省略します。


今回の説明記事は他と比べると、複雑な処理になっていますので、ひとまず 「乗物イベントの流れ」 を確認し、あとは自分なりに考えつつ、他の記事で必要な内容だけを参考にしてみてもいいかもしれません。


【INDEX】


乗物の設定を考える

まずはどういう乗物を作っていくか考えていきましょう。
今回はひと通りの乗物を作るということで、下の表の通り、陸海空の3種類の乗物とアイテム使用によって呼び出される乗物の4種類を作っていきます。
画像 乗物の種類 特徴 乗り降りできる場所 その他
&attachref; 陸ニワトリ 通常と同じ陸を移動できる。&br;移動スピードが速くなる。 陸の移動可能箇所ならどこでも乗り降りできる。 マップが切り替わっても待機位置は変わらない。
&attachref; 海ニワトリ 海を移動できる。&br;移動スピードは変化しない。 海と陸の境界で乗り降りできる。&br;降りるときに陸地が移動可能箇所でないと降りれない。 マップが切り替わっても待機位置は変わらない。
&attachref; 空ニワトリ 空を移動できる。障害物なし。&br;移動スピードは変化しない。 陸の平地でのみ乗り降りできる。 マップが切り替わっても待機位置は変わらない。
&attachref; 空ニワトリ(召喚型) 空を移動できる。障害物なし。&br;移動スピードは速くなる。 「ホイッスル」アイテムを使用して呼出し、乗ることができる。&br;陸の移動可能箇所ならどこでも乗り降りできる。
※画像はウディタ同梱データの色を加工したものです。

変数・データベースの作成

乗物を導入するために必要となる 「変数」 「データベース」 も考えていきましょう。

変数の作成

必要になる 「変数」 は下の表の通りになります。
これを 「通常変数」 もしくは 「予備変数」 に追加していきます。
変数名 用途
乗物 0:乗物に乗っていない,1:陸ニワトリ,2:海ニワトリ,3:空ニワトリ,4:空ニワトリ(召喚型),&br;-1:陸ニワトリを降りた瞬間,-2:海ニワトリを降りた瞬間,-3:空ニワトリを降りた瞬間,-4:空ニワトリ(召喚型)を降りた瞬間&br;どの乗物に乗っているか&状態を判定するのに使用します。
陸ニワトリ入手フラグ 0:乗物を入手していない,1:乗物を入手した,2:入手した乗物に乗ったことがある&br;乗物を入手している場合のみ、マップ上に乗物を表示します。&br;すでに乗ったことがある場合は初期表示位置を変更します。
海ニワトリ入手フラグ
空ニワトリ入手フラグ
空ニワトリ(召喚型)使用可能フラグ 空ニワトリ(召喚型)は「ホイッスル」アイテムを持っていて使用することで呼び出されるため、使用可能なマップにいるかを判定するのに使用します。

それでは、 「変数」 を追加していきます。

「システムデータベース」 を開きます。
&attachref;

「14:通常変数名」 を選択します。
&attachref;

「ステップアップ」 の本編のデータを流用していますので、データ数が足りなくなっています。
「データ数の設定」ボタン を押して、データ数を増やします。
&attachref;

増やしたところに 「変数名」 を設定します。
&attachref;

「OK・更新」ボタン を押して設定を保存します。
&attachref;

データベースの作成

今まで 「データベース」 「ユーザーデータベース」 「可変データベース」 「システムデータベース」 と、すでに用意されているものの内容を設定編集してきましたが、 「ステップアップ」 の本編を含め、 「データベース」 を新たに作成したことはありませんでした。
「データベース」 「コモンイベント」 と同じように、新たなものを自由に作成することが出来ます。
今回の乗物のようにいくつかの設定項目が必要となるものは、一つ一つ 「変数」 で扱うのはたいへんですので、 「データベース」 を作成して管理するのが便利です。
「データベース」 「変数」 のように簡単に作成出来ますので、ぜひ覚えましょう。

「データベース」 で設定したい項目は下の表の通りです。
ゲーム進行によって変化する情報を含んでいるので、 「可変データベース」 で作成します。
データ名 用途
乗物名称 乗物の名前を設定します。
乗物の歩行グラフィック 乗物の歩行グラフィックを設定します。
乗物の影番号 乗物の歩行グラフィックに表示する影を設定します。
乗物の移動速度 乗物の移動速度を設定します。
乗物のX座標 乗物を降りて、街・ダンジョンなど別マップに切り替わった場合に座標を保存して、乗物があるマップに戻った時に同じ位置に表示するのに使用します。
乗物のY座標 乗物を降りて、街・ダンジョンなど別マップに切り替わった場合に座標を保存して、乗物があるマップに戻った時に同じ位置に表示するのに使用します。
乗物の向き 乗物を降りて、街・ダンジョンなど別マップに切り替わった場合に向きを保存して、乗物があるマップに戻った時に同じ向きに表示するのに使用します。

それでは、 「データベース」 を作成していきます。
今回作成する乗物の 「データベース」 は、ゲーム進行によって変化する情報を含んでいるので、 「可変データベース」 で作成します。
「可変データベース」 はイベント処理で 「データベース」 に値を書きこむことができます。
また、 「可変データベース」 はセーブデータに 「データベース」 の内容が保存されます。

「可変データベース」 を開きます。
&attachref;

左の 「タイプ」 がいっぱいですので、 「タイプ数の設定」ボタン を押して増やします。
&attachref;

増やした 「タイプ」 を選択して、 「タイプの内容設定」ボタン を押し、 「タイプ」 の設定をしていきます。
&attachref;

まずは、 「タイプ名」 を設定します。
あとは 「データ名0~6」 にざっと項目を設定していきます。
  • データ名0
「乗物名称」は「文字列」で入力される内容になるので、 「文字列」ボタン を押します。
  • データ名1
「乗物の歩行グラフィック」は「ファイル名(文字列)」を入力される内容になるので、 「文字列」ボタン を押します。
  • データ名2
「乗物の影番号」は「変数(数値)」で入力される内容になるので、 「変数」ボタン を押します。
  • データ名3
「乗物の移動速度」は主人公の移動速度と同様に0~6の「数値」を入力される内容になるので、 「変数」ボタン を押します。
  • データ名4 , データ名5 , データ名6
「乗物の座標・向き」は「数値」で設定される内容なので、 「変数」ボタン を押します。

&attachref;

また、 「データIDの設定方法」 を「最初の文字列データと同じ」とすることで、データ入力で最初に入力した文字列がデータIDの名称になります。
&attachref;

今度は、一部の 「データ名」 の内容を入力しやすいように設定していきます。

まずは 「データ名1」 の「乗物の歩行グラフィック」を 「Dataフォルダ」内の指定フォルダのファイル一覧 から選べるように設定します。
「▼特」ボタン を押して、 「データ内容の特殊設定」 を開きます。
「ファイル読み込み」 をチェックして、 「初期フォルダ」 で「CharaChip」を選択します。
これで、 「CharaChipフォルダ」 にあるファイルから「乗物の歩行グラフィック」を選択することができます。
設定ができたら 「OK」ボタン を押します。
&attachref;

「データ名2」 の「乗物の影番号」を''「システムデータベース 9:キャラ影グラフィック名」''の内容から選べるように設定します。
「▼特」ボタン を押して、 「データ内容の特殊設定」 を開きます。
「データベース参照」 をチェックして、「システムDB」のタイプ「9」番と指定します。
右側に 「データベース」 の何を選択しているか表示されています。
これで、''「システムデータベース 9:キャラ影グラフィック名」''の内容からプルダウンメニューで選択することができます。
設定ができたら 「OK」ボタン を押します。
&attachref;

「データ名3」 の「乗物の移動速度」を 「主人公の移動速度の設定値0~6」 の範囲で選べるように設定します。
「▼特」ボタン を押して、 「データ内容の特殊設定」 を開きます。
「選択肢を手動作成」 をチェックして、 「挿入する値」 で「0~6」の値を入力していきます。
「表示文字列」 は空白でも大丈夫です。
これで、 「主人公の移動速度の設定値0~6」 の範囲の数値をプルダウンメニューで選択することができます。
設定ができたら 「OK」ボタン を押します。
&attachref;

また、 「初期値」 を設定することで、入力の手間を減らすことが出来ます。
「データ名3」 の「乗物の移動速度」は標準の移動速度ということで、「3」を 「初期値」 とします。
これで、 「タイプの内容設定」 が完了しましたので 「OK」ボタン を押します。
&attachref;

完成した''「データベース タイプ」''はこのようになりました。
&attachref;

乗物は4種類作成するので、 「データ数」 「データ数の設定」ボタン を押して増やします。
&attachref;

<strong> 「乗物の設定を考える」 </strong> で考えた乗物の設定を入力していきます。
座標や向きについては今後のイベント処理で入力されるようにするので、ここでは何も入力しません。
&attachref;

入力ができたら、 「OK・更新」ボタン を押します。
&attachref;

これで、 「乗物設定のデータベース」 が完成しました。

乗物イベントの流れ

これから作成する乗物のイベント処理の流れを簡単に説明します。

  1. 乗物ごとに「タイル設定ファイル」を作成する。
各乗物ごとにマップ上で移動可能なタイル(マップチップ)の種類が違いますので、 「タイルセット設定」 でそれぞれの 「タイル設定ファイル」 を作成します。
詳しい操作は「タイルセット設定」を参照してください。
海移動用マップ・空移動用マップとマップをまるごと用意する必要はなく、この 「タイル設定ファイル」 で''「海移動用 タイル設定ファイル」 「空移動用 タイル設定ファイル」''を用意し、これを切り替えることで簡単にマップ上で移動可・不可などを変更することが出来ます。

  1. マップ上に乗物用のマップイベントを配置する。
ウディタでは乗物を個別にした設定などはありませんので、マップ上で操作キャラクターが乗物に乗る際にマップ上に配置してある乗物の画像は、通常のNPC(村人など)と同じようにイベントとして配置することになります。

  1. 乗物に乗るイベントを作成する。
マップ上に配置した乗物のイベントに話しかけたり・接触することによって、乗物に乗ることができるイベント処理を作っていきます。
具体的には、マップ上に配置した乗物のイベントの乗物の画像を消して、操作キャラクターの画像を乗物の画像に変更する処理を行います。
また、 「タイル設定ファイル」 の変更もここで行います。

  1. 乗物を降りる管理イベントを作成する。
乗物から降りる際には、降りられるタイル(マップチップ)上でボタンが押された時に降りる処理を行います。
さすがに降りられるタイルが配置されている場所に一つ一つイベントを配置するわけにはいきません。
そこで、 並列実行される「乗物を降りる管理イベント」 を一つ配置して、そのイベント内でボタンが押された時に降りようとしているタイル(マップチップ)が降りられる種類のものか判定し、降りられる場合は降りて、操作キャラクターの画像を元に戻し、乗物のマップイベントを再度表示する処理を行います。


すべての乗物でまったく同じ処理というわけではありませんが、大まかにはこのようなイベント処理で乗物の機能を実現していきます。

各乗り物の作成

ここからは各乗り物ごとのイベント作成を別ページにわけて見て行きます。
まずは、すべての乗り物イベントの基礎となる 「陸ニワトリの作成」 から見ていってください。
これを飛ばしてしまうと他の乗り物イベントの処理が理解しにくいところがありますので、流行る気持ちを抑え基本から進めて行きましょう。

陸ニワトリの作成

海ニワトリの作成

空ニワトリの作成

空ニワトリ(召喚型)の作成


各イベントの調整

乗り物機能を実現するイベントの処理は複雑なので、いくつか気を付けないといけない点があります。


乗り物サンプルゲーム

今回作成した乗物の機能を確認できるサンプルゲームになります。