
シナリオ(ステージファイル)について
ステージの内容を定義するファイルを用意できます。
設定ファイルは以下の条件を満たす必要があります。
・フォーマットは UTF-8。

シナリオ(ステージファイル)には1行につき一つのイベントを記述します。
各イベントは、基本的に以下の書式です(実行制御系の一部を除く)。
[命令], パラメータ1, パラメータ2, ...
パラメータの個数は可変で、変数が使用できます。
変数名の先頭は以下のいずれかの記号にします(作法)。
先頭の記号によって役割が異なります。
記号 | 説明 |
$ | セーブされるデータ。
|
# | セーブされないデータ。
|
% | 一時データ。ステージ開始時に初期化される。
|
実行制御系
マテリアル変更系
マップ・ギミック系
エフェクト系
その他の表示制御系
実行制御系
命令 |
意味 |
//
|
コメント行
行の先頭にダブルスラッシュを記述するとその行は
明示的なコメント行になります(作法)。
明示しなくても、イベントとして意味を持たない行は
エラーにならずただ無視されます。たとえば空白行。
|
[State],
strKey,
strValue
|
変数代入,
変数名,
値
|
@マクロ名 |
マクロの挿入。マクロは挿入位置に展開されます。
|
:ラベル名:
|
ラベル
[Jump]などを行うと、この行以降を実行します。
ラベル名は前後に":"(コロン)をつけます(作法)。
|
:Break |
イベント実行の停止。
|
:Jump,
strLabel
|
ラベル行へのジャンプ
ラベル名
|
:JumpIfState,
strLabel,
strKey,
strvalue
|
ラベル行への ==条件ジャンプ
ラベル名
変数名
値
|
:JumpIfNotState,
strLabel,
strKey,
strvalue
|
ラベル行への !=条件ジャンプ
ラベル名
変数名
値
|
:JumpIfStateFloat,
strLabel,
strKey,
strCompare,
fvalue
|
ラベル行への実数条件ジャンプ
ラベル名
変数名
条件("!=", "==", "<", "<=", ">", ">=")
値
|
[StageComplete],
strNextStage
|
ステージ終了要求
次のステージのステージ変数(省略可)
特殊なステージ変数
"title":タイトルへ
|
[WaitHitAnyKey]
|
タップ入力待ち
|
[WaitReleaseAllKey]
|
全ての指が離れるの待ち
|
[TimeWait],
fTimeSpan,
bHitAnyKey
|
時間経過待ち,
待ち時間(秒),
タップ入力で解除するか(True:する、False:しない)
|
[UserInput],
bUserInput
|
プレイヤ操作可不可設定,
操作可不可(True:可、False:不可)
|
[StateOffCount],
strFurnitureName,
strKey
|
状態がOFFのギミック数を集計(特定の名前),
ギミック名,
ギミック数を格納する変数名
|
[StateOffTypeCount],
strFurnitureType,
strKey
|
状態がOFFのギミック数を集計(特定の種類),
ギミック種類,
ギミック数を格納する変数名
|
[LoadingAnimation],
bLoadingAnimation
|
待ち時間のためのアニメーション表示,
表示有無(True:表示、False:非表示)
[Model]など時間のかかる処理をする時に、
くるくる回るアニメーションを表示させます。
|
[DataSave]
|
状態のファイル保存
先頭に$のついた変数をsavedata.txtに書き出します。
|
マテリアル変更系
命令 |
意味 |
[Texture],
strName,
strFileName
|
テクスチャ差し換え,
テクスチャ名,
テクスチャファイル名
システム内部定義のテクスチャ名
テクスチャ名 |
意味 |
"font" | 文字フォント |
"perticle" | パーティクル |
"solid_black" | 汎用黒 |
"sky" | 背景 |
"player" | プレイヤー |
"furniture" | 地形 |
"block" | 移動可能ブロック |
"title_wall" | タイトル画面 |
"title_icon_ring" | タイトル画面 表示部品 |
"title_logo" | タイトル画面 表示部品 |
"title_signature" | タイトル画面 表示部品 |
"menu_wall" | タイトルメニュー画面 |
"menu_item" | タイトルメニュー画面 メニュー項目 |
"indicator_wall" | インジケータ背景 |
"text_wall" | テキスト背景 |
"InstantMessage" | ステージ名称表示背景 |
"char1" | バストアップ1 |
"char2" | バストアップ2 |
|
[Sound],
strName,
strFileName
|
サウンド差し換え,
サウンド名,
サウンドファイル名
システム内部定義のサウンド名
サウンド名 |
意味 |
"title" | タイトル画面BGM |
"button_on" | 一時停止ボタン押下 |
"button_title" | 中断ボタン押下 |
"button_restart" | リトライボタン押下 |
"bang" | 破裂音(未使用) |
"sw_on" | スイッチON |
"sw_off" | スイッチOFF |
"gate_open" | 円環稼働開始 |
"gate_active" | 円環稼働中 |
"gate_enter" | 円環稼働進入 |
"voice_groan" | プレイヤー死亡時のうめき |
"stage_open" | ステージ開始 |
"menu_apply" | メニュー項目確定 |
"player_walk" | プレイヤーの足音 |
"player_stamp" | プレイヤーの移動開始擦過音 |
"player_slide" | ブロックを押す音 |
"demo_open" | ゲーム内デモ開始 |
"demo_close" | ゲーム内デモ終了 |
"display_message" | メッセージ読み進み音 |
|
[Model],
strName,
strFileName,
fModelSize
|
モデル差し換え,
モデル名,
モデルファイル名,
スケール(1.0:等倍 省略可)
システム内部定義のモデル名
モデル名 |
意味 |
"block" | 移動可能ブロック |
"gate" | 円環 |
"downsw" | 床スイッチ |
"firecolumn" | 炎の出る床 |
"floor0"〜"floor3" | 地形生成用 |
"wall_0"〜"wall_z" | 地形生成用 |
"edge_1"〜"edge_5" | 地形生成用 |
"player" | プレイヤー。 [EntityCustomParts]の項に示すパーツを内包しています。 |
ただし、"player"の大きさを変えたい時は[Model]のスケール指定で拡大するのではなく、
[EntityScale]を使用すべきです。
読み込み済みのモーションと、モデルの大きさが乖離するのを避けるために。
|
[LightPos],
fLightX,
fLightY,
fLightZ
|
照明方向,
X
Y
Z
ノーマライズされるので適当に値を入れてよい。
|
[LightColor],
fLightColorR,
fLightColorG,
fLightColorB
|
照明色,
R(0.0〜1.0),
G(0.0〜1.0),
B(0.0〜1.0)
|
[LightAmbient],
fLightAmbientR,
fLightAmbientG,
fLightAmbientB
|
照明に影響する環境色,
R(0.0〜1.0),
G(0.0〜1.0),
B(0.0〜1.0)
|
[Diffuse],
fDiffuseR,
fDiffuseG,
fDiffuseB
|
拡散色,
R(0.0〜1.0),
G(0.0〜1.0),
B(0.0〜1.0)
|
[Ambient],
fAmbientR,
fAmbientG,
fAmbientB
|
環境色,
R(0.0〜1.0),
G(0.0〜1.0),
B(0.0〜1.0)
|
[Fog],
strDistMin,
strDistMax,
fR,
fG,
fB,
fA
|
フォグ設定,
最短距離,
最長距離,
色R,
色G,
色B,
色A
|
マップ・ギミック系
命令 |
意味 |
[Map],
strMap
|
マップ定義,
マップ定義文字列
マップ定義は複数行の文字列でマトリクスを描く。
各行の長さは異なっても良い。
文字 |
意味 |
@ | プレイヤー開始位置 |
! | 炎 |
? | 毒霧 |
# | 壁 |
. | 空き |
(スペース) | 床 |
|
[MapGenerate],
bEdgeBounds
|
マップ生成,
マップ端自動生成処理(True:する、False:しない)
[MapGenerate]より前に全ての[Map]を行うこと。
|
[Gimmick],
strType,
strName,
strModelName,
strTextureName,
strFunctionName,
strMapChar,
fWidth,
fRotateY,
iCollision
|
ギミックの配置,
ギミック種類,
任意の名前,
モデル名
テクスチャ名
イベント名
マップ上の文字
あたり判定幅
Y軸回転角度
あたり判定種類
ギミック種類について
ギミック種類 |
意味と状態 |
"Block" | 移動可能なブロック |
"FireColumn" | 吹き上げる炎
"on" 炎を吹き上げる。触れると死ぬ。
"alive" 何か少し立ち昇っている。通れる。
"off" 完全に停止。
|
"Mist" | 毒霧
"on" 霧を吹き上げる。触れると死ぬ。
"off" 完全に停止。
|
"Gate" | 円環
"open" 稼働中。
"enter" 表示のみ稼働中。
"close" 停止中。
|
"DownSW" | 床スイッチ
"on" 押された状態。
"alive" OFF状態。何か少し立ち昇っている。
"off" OFF状態。
|
"NPC" | NPC |
"Item" | アイテム |
"Wall" | 壁 |
"Area" | エリア |
"Fence" | 柵
"on" 出た状態。
"alive" 引っ込んだ状態。何か少し立ち昇っている。
"off" 引っ込んだ状態。
|
"on"と"open"は同義。"alive"と"enter"も同義。"off"と"close"も同義。
どちらを書いても受け付けます。
名前について
イベントから操作するために、ギミックには任意の名前を付けられます。
ギミックは、つけた名前に%を冠した変数で状態が管理されます。
例えば円環を"gate"という名前で配置し、
"%gate"変数に"open"という値を入れると
円環"gate"は稼働状態になります。
イベント名について
ギミック種類によって、特定のアクションでイベントを発動できます。
イベント、とはシナリオ(ステージファイル)に記述したラベルへのジャンプのことです。
イベント名はラベル名です。
ギミック種類 |
イベントのおこるアクション |
"Block" | なし |
"FireColumn" | なし |
"Mist" | なし |
"Gate" | 稼働中、プレイヤーが進入したとき |
"DownSW" | ブロックが載ったとき |
"NPC" | 近くでアクションボタンを押したとき |
"Item" | 接触したとき |
"Wall" | なし |
"Area" | 接触したとき |
"Fence" | なし |
マップ上の文字について
ギミックを配置するマップ上の位置を特定するために
あらかじめ[Map]でステージ内に任意の文字を置いておきます。
ギミック用に使用できる文字は0〜9、a〜z、A〜Zです。
このうち0〜9、a〜zは同じ位置に普通の床が生成されます。
床を作らずにギミックだけを置きたい(床の形のギミック)場合は
A〜Zを使用してください。
あたり判定種類について
あたり判定は以下の値を足して行います。
値は二進数でも記述可能です。
例: 0 → 0b0000 あたり判定なし
例: 1 → 0b0001 前面のみ
例:15 → 0b1111 全面。箱状のあたり判定。
|
[FurnitureRotateToObject],
strSrcObjName,
strDstObjName,
fTimeSpan
|
ギミックの回転,
回転対象のギミック名,
向く先のギミック名、または"player"
回転速さ(1.0=180度/秒)
|
[BackLight],
strFurniture,
idxTexture,
fScale,
fX,
fY,
fZ,
fR,
fG,
fB,
fA
|
ギミックにバックライトを付加する,
ギミック名,
バックライトのパーティクル番号,
大きさ,
オフセット座標X,
オフセット座標Y,
オフセット座標Z,
色R,
色G,
色B,
色A
|
[BaseColor],
strFurniture,
fR,
fG,
fB,
fA
|
ギミックの基本表示色を設定,
ギミック名,
色R,
色G,
色B,
色A
|
[FadeColor],
strFurniture,
fR,
fG,
fB,
fA
|
ギミックの消え行く表示色を設定,
ギミック名,
色R,
色G,
色B,
色A
|
[Visible],
strObjName,
bVisible
|
ギミックの表示有無制御,
ギミック名,
表示有無(True:表示、False:非表示)
|
[EntityCustomParts],
strEntity,
strSrcModel,
strCustomModel,
strTextureName,
vModelOffset.x,
vModelOffset.y,
vModelOffset.z,
vModelSize.x,
vModelSize.y,
vModelSize.z
|
パーツのモデル差し替え,
Entity名("player"),
元モデル名,
差し替えモデル名,
テクスチャ名,
座標オフセットX(Enitity相対。省略可),
座標オフセットY(Enitity相対。省略可),
座標オフセットZ(Enitity相対。省略可),
モデルのスケールX(省略可 1.0:標準),
モデルのスケールY(省略可 1.0:標準),
モデルのスケールZ(省略可 1.0:標準)
Entity名について
Jehanneシステムにおいて、オブジェクトは2種類に分類されます。
>Furniture...地形として配置される単モデルのオブジェクト。ギミック。
>Entity...モーションつきモデルで自律的に動き回るオブジェクト。
iJehanneにおいてEntityは"player"のみです。
Entityはステージ開始時に生成されるので、
結果的にパーツ差し換え状態もステージ開始時に初期化されます。
恒常的にパーツがさし変わった状態にするためには、
ステージ開始時([MapGenerate]以後)に忘れずパーツ差し替えを行う必要があります。
元モデル名について
モーション付きモデルは複数のパーツで構成されているため、個々のパーツは
"モデル名:パーツ名"
の形式で表されます。
playerの頭部パーツの例:"player:head_PM2" 。
"player"が内包するパーツは以下のとおり。
躯幹 |
"player:head_PM2"
"player:neck_PM2"
"player:heart_PM2"
"player:body_PM2"
"player:waist_PM2"
|
左腕 |
"player:shoulder_left_PM2"
"player:upperarm_left_PM2"
"player:elbow_left_PM2"
"player:underarm_left_PM2"
"player:hand_left_PM2"
|
右腕 |
"player:shoulder_right_PM2"
"player:upperarm_right_PM2"
"player:elbow_right_PM2"
"player:underarm_right_PM2"
"player:hand_right_PM2"
|
左脚 |
"player:thigh_left_PM2"
"player:knee_left_PM2"
"player:shin_left_PM2"
"player:toe_left_PM2"
|
右脚 |
"player:thigh_right_PM2"
"player:knee_right_PM2"
"player:shin_right_PM2"
"player:toe_right_PM2"
|
差し替えモデルについて
名前付け規則は元モデル名と同様です。
パーツのテクスチャだけを差し換えたい場合、元モデル名と同じものを指定します。
全く新しいモデルを作って差し換える場合、
個々のパーツ位置(ボーンのジョイント)は元モデルと同じであるのが望ましいです。
位置の異なるパーツあるいは単品のモデルを適用するには、
座標オフセットを指定する必要があります。
差し換えモデル名を""(空文字列)にすると、パーツは非表示になります。
|
[EntityCustomPartsReset],
strEntity
|
パーツ差し換え状態の初期化,
Entity名
|
[EntityScale],
strEntity,
fScale
|
Entityのスケール指定,
Entity名,
スケール(1.0:標準)
|
エフェクト系
命令 |
意味 |
[SoundPlay],
strSoundName
|
サウンド発声,
サウンド名
サウンド名はファイル名と異なることに注意。
|
[BGMPlay],
strSoundName
|
BGM開始,
サウンド名
サウンド名はファイル名と異なることに注意。
|
[BGMStop],
fFadeSpan
|
BGM停止,
フェイドアウト時間(秒)
|
[Effect],
strObjName,
vOffsetX,
vOffsetY,
vOffsetZ,
strEffectName,
fScale,
fR,
fG,
fB,
fA,
fTimeSpan,
idxTexture
|
エフェクトの表示要求,
基準座標にするギミック名または"player",
座標オフセットX(ギミック相対 メートル),
座標オフセットY(ギミック相対 メートル),
座標オフセットZ(ギミック相対 メートル),
エフェクト種類,
大きさ,
色R,
色G,
色B,
色A,
表示時間,
パーティクル番号(省略可能)
エフェクト種類 |
意味 |
"Spark" | プレイヤーの消える時の光 |
"Diffuse" | 扉が消える時の煙 |
|
その他の表示制御系
命令 |
意味 |
[Camera],
strEyeObjName,
vEyeOffsetX,
vEyeOffsetY,
vEyeOffsetZ,
strLookAtObjName,
vLookAtOffsetX,
vLookAtOffsetY,
vLookAtOffsetZ,
fTargetEyeSpeed,
fTargetLookAtSpeed
|
カメラ移動指示,
視点基準にするギミック名または"player",
視点のオフセットX(ギミック相対 メートル),
視点のオフセットY(ギミック相対 メートル),
視点のオフセットZ(ギミック相対 メートル),
注視点基準にするギミック名または"player",
注視点のオフセットX(ギミック相対 メートル),
注視点のオフセットY(ギミック相対 メートル),
注視点のオフセットZ(ギミック相対 メートル),
視点移動速度(おおよそ到達に要する秒 省略可能),
注視点移動速度(おおよそ到達に要する秒 省略可能)
|
[CameraApply] |
カメラ強制移動
[Camera]で指定した目的地へ瞬時に配置する。
|
[TextFont],
strFontName,
iSize
|
テキストフォント設定,
フォント名称,
フォントサイズ
|
[TextColor],
fTextColorR,
fTextColorG,
fTextColorB,
fTextColorA
|
テキスト色,
R(0.0〜1.0),
G(0.0〜1.0),
B(0.0〜1.0),
A(0.0〜1.0)
|
[TextClear]
|
テキスト消去
|
[TextDraw],
fX,
fY,
fWidth,
fHeight,
strText
|
テキスト描画,
横位置(画面に対し 0.0〜1.0),
縦位置(画面に対し 0.0〜1.0),
描画矩形幅(画面に対し 0.0〜1.0),
描画矩形高さ(画面に対し 0.0〜1.0),
描画テキスト
テキストには [] (半角角括弧)で括って変数を記述できる。
(変数が|(パイプ)で連結された文字列であるとき、部分文字列のいずれかをランダムに採用する。)
\nを記述すると改行できる。
{}(半角中括弧)で括った文字列はその位置直上にルビ表示する。
ルビの先頭に -(半角マイナス)を記述すると一文字前の直上にルビ表示する。
|
[TextDraw_xx], 〜
|
特定の言語のためのテキスト描画。
書式は[TextDraw]におなじ。
xx は言語種類の指定子。
指定子についてはsetting.txtの #Languagez を参照。
|
[Text],
strText
|
テキスト描画(入力待ちあり),
描画テキスト
テキストを全て消去した後、所定の矩形内に描画する。
描画後、入力待ちを行う。
テキストの書式は[TextDraw]に同じ。
|
[Text_xx], 〜
|
特定の言語のためのテキスト描画(入力待ちあり)。
書式は[Text]におなじ。
xx は言語種類の指定子。
指定子についてはsetting.txtの #Languagez を参照。
|
[TextWall],
bVisible
fAlpha
|
テキスト背景の表示制御,
表示有無(True:表示、False:非表示),
透明度(0.0〜1.0 省略可)
|
[VisibleController],
bVisible
|
コントローラの表示制御,
表示有無(True:表示、False:非表示)
表示に設定しても、設定画面でユーザにより
非表示設定とされていたら表示されない。
|
[VisibleActionButton],
bVisible
|
アクションボタンの表示制御
表示有無(True:表示、False:非表示)
|
[CharImageCleanup]
|
バストアップ画像初期化
|
[CharImage],
strCharImage,
fCharSrcPos,
bReverse
|
バストアップ画像設定,
バストアップ画像のテクスチャ名,
初期位置(正の値:右から、負の値:左から 省略可),
反転指定(True:反転、False:正方向 省略可)
テクスチャ名はファイル名とは異なることに注意。
|
[Indicator],
bVisible
|
インジケータの表示有無制御,
表示有無(True:表示、False:非表示)
|
[Message],
strMessage
|
イーズインするメッセージの表示,
メッセージ文字列
|
[MessageClose]
|
メッセージのイーズアウト
|
[FadeIn],
fTimeSpan
|
黒からフェイドインする,
時間(秒)
|
[FadeOut],
fTimeSpan
|
黒へフェイドアウトする,
時間(秒)
|
[ModelDisplay],
strName,
strModel,
strTexture
|
インジケータにアイテムを表示,
任意のアイテム名,
モデル名,
テクスチャ名
|
[ModelDisplayRemove],
strName
|
インジケータからアイテムを取り除く,
アイテム名
|
|