ノベルゲームウィザード

ページの移動・ラベルジャンプ


ここではページの移動とラベルを使った処理のスキップ(ラベルジャンプ)について解説します。
下記のチュートリアルに沿って学びたい方は、あらかじめ内容が空のページを2つ用意し、その1つをゲーム開始時のページとして設定してください。

ページの移動とは


ページの移動とは、現在実行されているページファイルから別のページファイルに切り替える処理のことを言います。
ページの移動が行える処理は4種類あります。

  1. 「次のページに移動」を使ったページの移動
  2. 「前のページに戻る」を使ったページの移動
  3. 「選択肢の追加」と「選択ウィンドウの表示」を使ったページの移動
  4. 「ボタンの追加」と「ボタンの表示」を使ったページの移動

ここでは「次のページに移動」と「前のページに戻る」を使ったページの移動を解説します。

ページの移動の特徴


ページの移動を行った場合、以下の特徴を持ちます。

  • 移動先のページの最初から処理が開始される。
  • ラベルの指定をした場合は移動先のページの指定ラベルまで処理がスキップされる。
  • 画面の情報(画像、ウィンドウ、テキスト、選択肢など)は前のページからそのまま引き継ぐ。

「次のページに移動」を使ったページの移動


ここからは簡単なサンプルを作って「次のページに移動」の動作を理解していきましょう。

まずはじめのページで実行したい内容を作成します。
実行されていることが分かるように「ウィンドウの表示」と「テキストの表示」を追加し、テキストには「現在はページ1です。」と設定します。

ページの切り替え-チュートリアル1

次に移動先のページの内容を作成します。
ページを移動したことが分かるように「テキストの表示」を追加し、テキストには「現在はページ2です。」と設定します。

ページの切り替え-チュートリアル2

ここまでで一度、テストプレイを実行してみましょう。
ページの移動を行う処理を入れていないため、ページ2に移動していないことが分かります。

ページの切り替え-チュートリアル3

はじめのページに「次のページに移動」を追加します。

ページの切り替え-チュートリアル4

プロパティのページで移動先のページを選択します。

ページの切り替え-チュートリアル5

再びテストプレイを実行してみましょう。
ページ2に移動したことが分かります。

ページの切り替え-チュートリアル6

「前のページに戻る」を使ったページの移動


「前のページに戻る」は実行されると、ページの移動が行われる直前のページのかつ、移動直前のラインにジャンプします。
上記のサンプルに追記して「前のページに戻る」の動作を理解していきましょう。

はじめのページに「テキストの表示」を追加し、テキストには「現在はページ1です。2回目」と設定します。

ページの切り替え-チュートリアル7

移動先のページに「前のページに戻る」を追加します。

ページの切り替え-チュートリアル8

「前のページに戻る」にプロパティはありません。

ページの切り替え-チュートリアル9

テストプレイを実行してみましょう。
はじめのページから移動先のページへ移動し、再び「前のページに戻る」ではじめのページに戻ってきたことが分かります。

ページの切り替え-チュートリアル10

条件(計算式)を使ったページの移動


ページの移動の際に条件をつけることができます。
条件を付けた場合、は以下のように処理が進行します。

  • 条件にマッチした場合は、ページの移動をする。
  • 条件にマッチしない場合は、移動せずに次の処理に進む。

条件付けは、プロパティの計算式で行います。
計算式を空欄にした場合は、条件にマッチと判定されページの移動をします。

また計算式に変数を使用することは可能です。
変数の記述方法については、テキストの表示の特殊なテキストの表示の変数の中身を表示する。を参照ください。

条件の判定


どのような場合に条件がマッチするかは以下の表を参考にしてください。

条件にマッチ 条件にミスマッチ
true false
0より大きい数字 0以下の数字
空欄 true、数字以外の計算式ではない文字

プロパティの計算式に、計算式または直接 true または false または 数字 を入れることで上記の表にある結果が得られます。
以下は計算式を使った場合の結果のサンプルです。

計算式サンプル 結果
100 > 5 マッチ
100 <= 5 アンマッチ
10 == 10 マッチ
10 != 10 アンマッチ
"ABC" == "ABC" マッチ
{var_1} == true
変数 var_1 の値は true
マッチ
{var_1} == 10
変数 var_1 の値は 10
マッチ
{"var_1"} == "abc"
変数 var_1 の値は abc
マッチ
abs({var_1}) == 10
変数 var_1 の値は 10
マッチ

ノベルゲームウィザードの条件の判定には Godot の Evaluating expressions を使用しています。
Godot の Evaluating expressions に関する詳しい情報については、以下のリンクを参照ください。
https://docs.godotengine.org/en/4.2/tutorials/scripting/evaluating_expressions.html

条件を使ったページの移動を試す


それでは実際に試してみましょう。
先程までのチュートリアルのはじめのページの3行目の「次のページに移動」のプロパティの計算式を false に変更します。

ページの切り替え-チュートリアル11

テストプレイを実行してみましょう。
はじめのページから移動先のページへ移動せず、次の処理が行われたことが分かります。

ページの切り替え-チュートリアル9

では次に変数を使ってみましょう。
「次のページに移動」の一つ上の位置に「変数の代入」を追加し、プロパティの名前を var_1 に、値または式に true にします。

ページの切り替え-チュートリアル12

「変数の代入」の一つ下の「次のページに移動」のプロパティを編集します。
計算式を {var_1} に変更します。

ページの切り替え-チュートリアル13

テストプレイを実行してみましょう。
今度ははじめのページから移動先のページへ移動したことが分かります。

ページの切り替え-チュートリアル5

次は変数に数字を使ってみましょう。
先程の「変数の代入」のプロパティの値または式を 1 にします。

ページの切り替え-チュートリアル14

「変数の代入」の一つ下の「次のページに移動」のプロパティを編集します。
計算式を {var_1} > 0 に変更します。

ページの切り替え-チュートリアル15

テストプレイを実行してみましょう。
今度もはじめのページから移動先のページへ移動したことが分かります。

ページの切り替え-チュートリアル5

ラベルジャンプ


ページの移動が行われた際に、プロパティのラベルを指定していた場合、そのラベルの位置までの処理をスキップします。
ここからのチュートリアルでは空のページを2つ用意し、その1つをゲーム開始時のページとして設定してください。

まずは「ウィンドウの表示」と「テキストの表示」を追加し、テキストは「テスト1」と設定します。

ページの切り替え-チュートリアル16

「次のページに移動」を追加します。

ページの切り替え-チュートリアル17

「テキストの表示」を追加し、テキストは「テスト2」と設定します。

ページの切り替え-チュートリアル18

「ラベルの設置」を追加し、プロパティのラベルを label_1 と設定します。

ページの切り替え-チュートリアル19

「テキストの表示」を追加し、テキストは「テスト3」と設定します。

ページの切り替え-チュートリアル20

最後に3行目の「次のページに移動」を編集します。
プロパティのラベルを label_1 と変更します。

ページの切り替え-チュートリアル21

テストプレイを実行してみましょう。
「次のページに移動」が実行されるとラベル label_1 まで処理がスキップされたことが分かります。

ページの切り替え-チュートリアル22