前のページ | 次のページ

title image

オンライン このページの最新版 | ダウンロード | 開発元サイト |

+ 目次 > FAQ > コミックファイル(.cf3)の内部フォーマット

コミックファイル(.cf3)の内部フォーマット

コミックメーカー3 Ver.3.00以降で使用可能な新しいコミックスクリプトファイル(拡張子"cf3"、以下"コミックファイル"と表記)の構造を解説します。

コミックファイルは、コミックメーカーで制作するゲームのデータファイルですが、その内容はスクリプトを記述したテキストファイルであるため、通常のテキストエディタでの修正が可能です。

ブロック構造

コミックファイルは、「ブロック」と呼ばれる単位で管理されています。

ブロックには、ヘッダブロック、ブックブロック、ページブロックの3種類があり、それぞれのブロックは「ブロック開始コード」と「ブロック終端コード」によって囲まれています。

ブロック開始コード

<ブロックの種類="ブロック名">

ブロック終端コード

<ブロックの種類 End>

各ブロックの開始コードと終端コードは、必ず対になるように記述しなければなりません。

ヘッダブロック

ヘッダブロックは、コミックファイルに関する設定情報を記録しています。

ヘッダブロックは、
<Head="ヘッダ名">
<Head End>
で囲まれたブロックで、ブロック内には
エントリー名=値
の形式で、情報を記述します。

コミックメーカー3ランタイムが参照した際、ヘッダブロックがなかった場合やエントリー名が見つからなかった場合は、自動的にデフォルト値が補われます。

ブックブロック

ブックブロックは、「ブック」の範囲を識別するためのブロックで、ページブロックの保持に使われます。

ブックブロックは、
<Book="ブック名">
<Book End>
で囲む形で記述します。

ページブロック

ページブロックはコマンドリストを保持するためのブロックで、ブックブロックの中に記述します。

ページブロックは
<Page="ページ名">
<Page End>
で囲む形で記述します。

コミックヘッダ

コミックファイルの基本設定を保持します。

ヘッダ名 : Comic

エントリー名 デフォルト値 説明
FileType CM3 コミックファイルの種類を識別する
CM3以外の値が指定されていると、読み込み時に警告する
CommandVersion コマンドバージョン
このファイルに含まれているコマンドのバージョンが設定される
ConvertVersion コンバートバージョン
コミックメーカー2以前の形式からコンバートされたときのみ設定される
ComicID コミックファイルごとに異なるIDが設定される
BuildID ファイルを保存する度に異なるIDが設定される
LegacyMode 0 互換モードを有効にする
AutoExtract 0 ファイルの自動展開を有効にする
DebugMode 0 デバッグモードを有効にする
StartBook スタートブック 最初に実行するブック名
StartPage スタートページ 最初に実行するページ名
Copyright Comic Maker User コミックファイルの作者名
Title タイトル
Opening Default オープニンググラフィック
ファイル名、又はDefaultと記述
RandomFlagMax 1000 「@乱数」で取得される値の上限値
DataDirectory データディレクトリ名
FontName MS ゴシック 表示用のフォント名
FontTypeBold 0 標準フォントスタイルを太字にする
FontTypeItalic 0 標準フォントスタイルを斜体にする
FontSize 16 標準フォントサイズを指定する
FontDPI 96 標準フォント解像度を指定する
ImageWidth 640 画面サイズ(横幅)
ImageHeight 480 画面サイズ(縦幅)

変数定義ヘッダ

数値変数/文字列変数の名前と初期値を設定します。

数値変数の定義ヘッダ名 : ValueFlag

文字列変数の定義ヘッダ名 : StringFlag

上記のヘッダブロック内に
変数名=初期値
の形式で各ヘッダブロック内に記述する

コマンド

全てのコマンドはページブロックの中に記述されます。

1つのコマンドは、複数行の記述からなります。先にコマンドパラメータへの代入文を記述し、必要なパラメータ全てを代入し終わった時点で、コマンド起動コードを記述します。

直前のコマンド起動コードから、次のコマンド起動コードまでの間に代入されなかったパラメータは、デフォルト値が補われます。

IFコマンド

パラメータコード 記述する内容 説明
if.VariableType Value
String
変数種別
if.Compare Equal
Unequal
Up
Down
UpEqual
DownEqual
in
比較演算子
if.Variable1 変数名 左辺値
if.Variable2 変数名 or 数値 or 文字列 右辺値

メッセージ表示コマンド

パラメータコード 記述する内容 説明
MessageDraw.Text テキスト 表示するメッセージ
MessageDraw.Effect
None
Auto
表示効果
MessageDraw.Layer レイヤー名 表示するレイヤー名
MessageDraw.Layer.Move 0 or 1 レイヤーの移動有無
MessageDraw.Area.Left 数値または変数 表示する範囲(始点X軸)
MessageDraw.Area.Top 数値または変数 表示する範囲(始点Y軸)
MessageDraw.Area.Width 数値または変数 表示する範囲(横幅)
MessageDraw.Area.Height 数値または変数 表示する範囲(縦幅)

グラフィック表示コマンド

パラメータコード 記述する内容 説明
GraphicDraw.FileName ファイル名 表示する画像ファイル名
GraphicDraw.AutoSize 0 or 1 表示サイズを画像サイズに合わせる
GraphicDraw.ScrnRefresh 0 or 1 すぐに画面に反映させる
GraphicDraw.Transparent 0 or 1 透過色を使う(BMPファイルのみ有効)
GraphicDraw.Translucent 0 or 1 半透過表示する(BMPファイルのみ有効)
GraphicDraw.EffectType None
FadeIn
LeftTo
TopTo
RndPanel
Mosaic
Wave
ZoomUp
ZoomDown
Blind
Square
表示エフェクトの種類
GraphicDraw.EffectAreaLimit 0 or 1 表示エフェクトをレイヤーサイズに限定する
GraphicDraw.Layer レイヤー名 表示するレイヤー名
GraphicDraw.Layer.Move 0 or 1 レイヤーの移動有無
GraphicDraw.Area.Left 数値または変数 表示する範囲(始点X軸)
GraphicDraw.Area.Top 数値または変数 表示する範囲(始点Y軸)
GraphicDraw.Area.Width 数値または変数 表示する範囲(横幅)
GraphicDraw.Area.Height 数値または変数 表示する範囲(縦幅)
GraphicDraw.Area.ViewLeft 数値または変数 画像内の表示部分を指定(X座標)
GraphicDraw.Area.ViewTop 数値または変数 画像内の表示部分を指定(Y座標)

音楽演奏コマンド

パラメータコード 記述する内容 説明
Music.FileName ファイル名 演奏するファイル名
Music.Loop 数値 ループ回数(0 : 無制限)

効果音再生コマンド

パラメータコード 記述する内容 説明
Sound.FileName ファイル名 演奏するファイル名
Sound.Wait 0 or 1 再生が終わるまで待つ

音楽を停止する

パラメータなし

数値変数の制御コマンド

パラメータコード 記述する内容 説明
ValueCtrl.ValueVar 変数名 代入先変数名
ValueCtrl.Calc Add
Sub
Mul
Div
Mod
演算子
ValueCtrl.LeftValue 変数 or 数値 代入する値(演算子の左)
ValueCtrl.RightValue 変数 or 数値 代入する値(演算子の右)

文字列変数の制御コマンド

パラメータコード 記述する内容 説明
StringCtrl.StringVar 変数名 代入先変数名
StringCtrl.Text 文字列 代入するテキスト

しばらく待つ

パラメータコード 記述する内容 説明
Wait.TimeBreak 0 or 1 制限時間による一時停止の解除
Wait.InputBreak 0 or 1 ユーザー操作による一時停止の解除
Wait.Time 数値または変数 制限時間(1/1000秒単位)
Wait.TimerGauge 0 or 1 タイマーゲージの表示有無
Wait.Input Keypress
Clickable
ユーザー操作の内容

選択肢の表示

パラメータコード 記述する内容 説明
"Select.Text" + index テキスト index番目の選択肢の表示テキスト
"Select.Page" + index ページ名 index番目の選択肢の移動先ページ名
Select.Timet 0 or 1 時間制限の使用有無
Select.Timeout 数値または変数 制限時間(1/1000秒単位)
Select.TimerGauge 0 or 1 タイマーゲージの表示有無
Select.Area.Import 0 or 1 表示位置と範囲を既存のレイヤーからインポートする
Select.Area.ImportLayer レイヤー名 表示位置と範囲をインポートするレイヤー名
Select.Area.Left 数値または変数 表示する範囲(始点X軸)
Select.Area.Top 数値または変数 表示する範囲(始点Y軸)
Select.Area.Width 数値または変数 表示する範囲(横幅)
Select.Area.Height 数値または変数 表示する範囲(縦幅)

ページの移動

パラメータコード 記述する内容 説明
Move.BookName ブック名 移動先のブックの名前
Move.PageName ページ名 移動先のページの名前

サブルーチンの呼び出し

パラメータコード 記述する内容 説明
Call.BookName ブック名 呼び出し先のブックの名前
Call.PageName ページ名 呼び出し先のページの名前

サブルーチンからの復帰

パラメータなし

レイヤーの操作

パラメータコード 記述する内容 説明
Layer.Name レイヤー名 操作するレイヤーの名前
Layer.ScrnRefresh
Layer.Visible.Change 0 or 1 レイヤーの表示/非表示状態を変更する
Layer.Visible.Show 0 or 1 0 : レイヤーを非表示にする
1 : レイヤーを表示する
Layer.Image.Change 0 or 1 レイヤーの画像を変更する
Layer.Image.FileName ファイル名 or "Clear" レイヤーに読み込む画像ファイルの名前
Clearを指定した場合は画像を消去する
Layer.Pos.Change 0 or 1 レイヤーの位置を変更する
Layer.Pos.Left 数値または変数 レイヤーの位置(X座標)
Layer.Pos.Top 数値または変数 レイヤーの位置(Y座標)
Layer.Size.Change 0 or 1 レイヤーのサイズを変更する
Layer.Size.Width 数値または変数 レイヤーのサイズ(横幅)
Layer.Size.Height 数値または変数 レイヤーのサイズ(縦幅)
Layer.ViewPos.Change 0 or 1 レイヤーの画像内の表示部分を変更する
Layer.ViewPos.Left 数値または変数 画像内の表示部分を指定(X座標)
Layer.ViewPos.Top 数値または変数 画像内の表示部分を指定(Y座標)
Layer.Clickable.Change 0 or 1
Layer.Clickable.Mode None
All
Opaque
Layer.Clickable.ActiveImage
Layer.Clickable.BookName
Layer.Clickable.PageName
Layer.Clickable.Move Move
Call

ダイナミックレイヤーの作成コマンド

パラメータコード 記述する内容 説明
DynamicLayer.Type Image
Text
Transparent
表示タイプ
DynamicLayer.Clickable.Mode None
All
Opaque
選択可能なエリアを指定する
(無効/全域/不透過部分のみ)
DynamicLayer.Clickable.BookName ブック名 選択時に移動またはコールするブック名
DynamicLayer.Clickable.PageName ページ名 選択時に移動またはコールするページ名
DynamicLayer.Clickable.Move Move
Call
選択時にページを移動するか、サブルーチンコールするかを指定
DynamicLayer.Clickable.Clear 0 or 1 選択時に同一のAttrIDを持つダイナミックレイヤーをクリアする
DynamicLayer.Clickable.Cursor 0 or 1 マウスカーソルの変更をする
DynamicLayer.Clickable.KeepExecuteMode 0 or 1 サブルーチンコール時に現在の実行モードを保存する
DynamicLayer.Focus.BookName ブック名 フォーカスされたときにコールするブック名
DynamicLayer.Focus.PageName ページ名 フォーカスされたときにコールするページ名
DynamicLayer.Text.Text 文字列 表示するテキスト
DynamicLayer.Image.FileName ファイル名 表示する画像ファイル名
DynamicLayer.Image.AnimeCount 数値 アニメーション用のイメージ分割数
DynamicLayer.Image.DivideCount 数値 選択状態表示用のイメージ分割数
DynamicLayer.Image.AnimeType None
Repeat
Once
Timer
アニメーションタイプ
(アニメなし/繰り返し表示/1回のみ表示/タイマー表示)
DynamicLayer.ImageIndex.Disable 数値 選択不可時の表示イメージインデックス
DynamicLayer.ImageIndex.Enable 数値 選択可能時の表示イメージインデックス
DynamicLayer.ImageIndex.Active 数値 フォーカス時の表示イメージインデックス
DynamicLayer.ImageIndex.Click 数値 選択時の表示イメージインデックス(効果なし)
DynamicLayer.AttrID 数値 属性番号
DynamicLayer.ActiveMode Auto
Disable
Waiting
Always
選択可能にする条件
(自動設定/常に無効/キー入力待ち中/常に有効)
DynamicLayer.Area.Left 数値または変数 表示する範囲(始点X軸)
DynamicLayer.Area.Top 数値または変数 表示する範囲(始点Y軸)
DynamicLayer.Area.Width 数値または変数 表示する範囲(横幅)
DynamicLayer.Area.Height 数値または変数 表示する範囲(縦幅)

ダイナミックレイヤーの消去コマンド

パラメータコード 記述する内容 説明
DynamicLayerClear.AttrID 数値 属性番号

文字列の入力コマンド

パラメータコード 記述する内容 説明
StringInput.StringVar 変数名 代入先変数名
StringInput.Caption 文字列 ダイアログのタイトル
StringInput.Text 文字列 ダイアログに表示するテキスト

セーブコントロールコマンド

パラメータコード 記述する内容 説明
SaveCtrl.Command AutoSave
AutoLoad
SaveValue
LoadValue
Open
Close
コマンド種別
Type A 自動セーブ(AutoSave)
自動ロード(AutoLoad)
Type M 変数値保存(SaveValue)
変数値読込(LoadValue)
Type S セーブファイルを開く(Open)
セーブファイルを閉じる(Close)
※これ以外のパラメータはそれぞれのタイプ(Type A/M/S)に合うパラメータのみ有効になる
SaveCtrl.FileName ファイル名 自動セーブ/ロード対象のファイル名 (Type A)
SaveCtrl.Key 文字列 保存/読込用のキー名称 (Type M)
SaveCtrl.Value 数値 or 変数名 保存する値 (Type M)
SaveCtrl.Variable 変数名 読込先の変数名 (Type M)
SaveCtrl.FileName ファイル名 ファイル名 (Type S)

システムコマンド

パラメータコード 記述する内容 説明
System.Command 右記参照 コマンド種別
MessageSkip メッセージスキップ
MusicEnable BGM演奏を有効にする
MusicDisable BGM演奏を無効にする
MusicVolume BGM演奏音量の設定(パラメータ1で指定 0〜100)
SoundEnable 効果音再生を有効にする
SoundDisable 効果音再生を無効にする
SoundVolume 効果音再生音量の設定(パラメータ1で指定 0〜100)
System.Paramater1 パラメータ1
System.Paramater2 パラメータ2
System.Paramater3 パラメータ3

関連項目

−なし−

Copyright (c) 1997-2007 Masaya Hikida