スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Almightでスマホ用ノベルゲーム作成「13回目:マクロ作成その1」

13回目はマクロの作成です。
実は2回目ぐらいの時点ではモノは作っていたのですが。公式との説明に合わせるので、ここまでとっておきました。

1.まず通常のやり方とは別にksフォルダの中にmacro2.ksというファイルを作ります。
これは、とりあえずフォルダ内のmacro.ksをコピーしてリネームするだけにしておきます。

2.ちょっと長いですが、macro2.kを開いてみましょう。

[eval exp="tf.debug = almight.debug; almight.debug = 0;"]

// =========================
// Almight マクロ集 v4.0
// =========================

// ===== メッセージ操作 =====

// 改ページする(クリック待ち)
// [c]

[macro name="c"]
[endhact]
[ws canskip=true cond="almight.stage.autoMode"]
[p][cm]
[hr]
[stop_voice]
[seopt buf=2 gvolume=100 cond="f.bgv_pause==true"]
[endmacro]


// 改行する(クリック待ち)
// [m]

[macro name="m"]
[endhact]
[l][r]
[endmacro]


// メッセージレイヤーのタイプを変更する
// [type_msg type="fullまたはadv"]
//
// typeにfullを指定すると、サウンドノベル風に全画面にメッセージレイヤーが表示されるタイプになります
// typeにadvを指定すると、アドベンチャーゲーム風にテキスト枠が表示されるタイプになります
// 変更した後は、[action]を使って実行して下さい
// また、full、adv、それぞれでフォントのサイズ等を変更したい場合は、それぞれのdeffontを変更して使用して下さい。
[macro name="type_msg"]
[if exp="mp.type == 'full'"]
[current page="back"]
[deffont bold=true color="#ffffff" size=24][resetfont][current page="fore"]
[cm]
[position layer="message0" page="back" frame="" visible=true color="#000000" opacity=100 top=0 left=0 width=1024 height=768 marginl=150 margint=40 marginr=150 marginb=40]
[endif]
[if exp="mp.type == 'adv'"]
[current page="back"]
[deffont bold=true color="#ffffff" size=24][resetfont][current page="fore"]
[cm]
[position layer="message0" page="back" frame="" visible=true color="#000000" opacity=100 top=530 left=0 width=1024 height=238 marginl=160 margint=30 marginr=160 marginb=30]
[endif]
[endmacro]

// メッセージレイヤーを表示状態にする
// [show_msg]
//
// このあと、[action]を使って実行して下さい

[macro name="show_msg"]
[position layer="message0" page="back" visible=true]
[endmacro]

// メッセージレイヤーを非表示状態にする
// [hide_msg]
//
// このあと、[action]を使って実行して下さい

[macro name="hide_msg"]
[position layer="message0" page="back" visible=false]
[endmacro]


// ===== 画像操作 =====

// 背景を読み込む
// [show_bg file="ファイル名"]
//
// 背景を読み込みます.その後、[action]を使って実行してください。
// jpgの場合のみ拡張子は省略可能になります

[macro name="show_bg"]
[eval exp="mp.file = (mp.file.indexOf('.') === -1) ? mp.file + '.jpg' : mp.file"]
[image storage="%file" page="back" layer="base"]
[endmacro]


// イベントCGを読み込む
// [show_ev file="ファイル名"]
//
// 背景レイヤーにイベントCGを読み込みます。同時に、システム変数にファイル名と同名のシステム変数を作成し、trueを代入します。
// その後、[action]を使って実行してください。
// jpgの場合のみ拡張子は省略可能になります
[macro name="show_ev"]
[eval exp="tf.file = (mp.file.indexOf('.') === -1) ? mp.file : mp.file.substring(0,mp.file.indexOf('.'))"]
[eval exp="sf[tf.file]=true"]
[eval exp="mp.file = (mp.file.indexOf('.') === -1) ? mp.file + '.jpg' : mp.file"]
[image storage="%file" page="back" layer="base"]
[endmacro]

// 背景を非表示にする
// [hide_bg]
//
// 背景を非表示にします。その後、[action]を使って実行してください。

[macro name="hide_bg"]
[freeimage layer="base" page="back"]
[endmacro]

// 立ち絵などの画像を読み込む
// 左端 [show_l file="ファイル名"]
// 右端 [show_r file="ファイル名"]
// 左寄り [show_lc file="ファイル名"]
// 右寄り [show_rc file="ファイル名"]
// 中心 [show_c file="ファイル名"]
//
// 立ち絵を読み込みます。その後、[action]を使って実行してください。
// pngの場合のみ拡張子は省略可能になります

[macro name="show_l"]
[eval exp="mp.file = (mp.file.indexOf('.') === -1) ? mp.file + '.png' : mp.file"]
[image layer=1 page="back" storage="%file" pos="left" visible=true]
[endmacro]

[macro name="show_r"]
[eval exp="mp.file = (mp.file.indexOf('.') === -1) ? mp.file + '.png' : mp.file"]
[image layer=2 page="back" storage="%file" pos="right" visible=true]
[endmacro]

[macro name="show_lc"]
[eval exp="mp.file = (mp.file.indexOf('.') === -1) ? mp.file + '.png' : mp.file"]
[image layer=3 page="back" storage="%file" pos="left_center" visible=true]
[endmacro]

[macro name="show_rc"]
[eval exp="mp.file = (mp.file.indexOf('.') === -1) ? mp.file + '.png' : mp.file"]
[image layer=4 page="back" storage="%file" pos="right_center" visible=true]
[endmacro]

[macro name="show_c"]
[eval exp="mp.file = (mp.file.indexOf('.') === -1) ? mp.file + '.png' : mp.file"]
[image layer=5 page="back" storage="%file" pos="center" visible=true]
[endmacro]

// 立ち絵などの画像を非表示にする
// 左端 [hide_l]
// 右端 [hide_r]
// 左寄り [hide_lc]
// 右寄り [hide_rc]
// 中心 [hide_c]
// すべて消す [hide_all]
//
// 立ち絵を非表示属性にします。その後、[action]を使って実行してください。

[macro name="hide_l"]
[freeimage layer=1 page="back"]
[endmacro]

[macro name="hide_r"]
[freeimage layer=2 page="back"]
[endmacro]

[macro name="hide_lc"]
[freeimage layer=3 page="back"]
[endmacro]

[macro name="hide_rc"]
[freeimage layer=4 page="back"]
[endmacro]

[macro name="hide_c"]
[freeimage layer=5 page="back"]
[endmacro]

[macro name="hide_all"]
[freeimage all=true page="back"]
[endmacro]

// フラッシュの画面効果を行います。
// [flash file="ファイル名" (color="フラッシュの色を指定" target="fore(デフォルト)またはback" time="フラッシュ画像の表示時間|500(デフォルト)"]
//
// colorにはフラッシュする際の色を指定できます。[0xRRGGBB]かCSSのcolorに指定出来る形式で指定してください。省略した場合は白色になります。
// fileに画像ファイルを指定するとフラッシュ効果に使う画像を変更できます。省略すると白画像になります。
// targetをforeに指定すると立ち絵の上でフラッシュします。メッセージレイヤーは非表示となります。
// targetをbackに指定すると立ち絵の後ろでフラッシュします。メッセージレイヤーは表示されたままになります。
// timeに時間を指定すると、フラッシュで表示される白画像の表示時間を指定できます。省略すると500ミリ秒になります。。
// [action]を使って実行させて下さい。

[macro name="flash"]
[eval exp="tf.flash_time = (mp.time == undefined) ? 500 : mp.time"]
[if exp="mp.target == 'fore' || mp.target == undefined"]
[if exp="mp.file==undefined"]
[layopt layer="message0" page="fore" visible=false]
[fillrect layer=7 page="fore" width=1024 height=768 color="%color|0xffffff"]
[layopt layer=7 page="fore" visible=true]
[else]
[layopt layer="message0" page="fore" visible=false]
[image storage="%file" layer=7 page="fore" visible=true]
[endif]
[endif]
[if exp="mp.target == 'back'"]
[if exp="mp.file == undefined"]
[fillrect layer=0 page="fore" width=1024 height=768 color="%color|0xffffff"]
[layopt layer=0 page="fore" visible=true]
[backlay layer="message0"]
[else]
[image storage="%file" layer=0 page="fore" visible=true]
[backlay layer="message0"]
[endif]
[endif]
[endmacro]

// 処理を実行する
// [action (time="フェード時間" rule="ルール画像のファイル名" skip="trueまたはfalse(デフォルト)")]
//
// 画像処理を実行します。全て省略すると、1秒かけてクロスフェードで実行されます。
// ルール画像を指定すると、そのルール画像でフェードします。ルール画像はpngの場合のみ拡張子は省略可能になります
// なお、メッセージレイヤーはルール画像を指定してもクロスフェードで実行されます。
// skipにtrueを指定すると、フェード処理とフラッシュ効果とがクリックでスキップ可能になります

[macro name="action"]
[if exp="tf.flash_time != undefined"]
[wait time="&tf.flash_time" canskip="%skip|false"]
[layopt layer="message0" page="back" visible=true]
[eval exp="tf.flash_time = undefined"]
[endif]
[if exp="mp.time == 0"]
[forelay]
[else]
[if exp="mp.rule != undefined"]
[eval exp="mp.rule = (mp.rule.indexOf('.') === -1) ? mp.rule + '.png' : mp.rule"]
[trans method="universal" rule="%rule" time="%time|1000"]
[else]
[trans method="crossfade" time="%time|1000"]
[endif]
[wt canskip="%skip|false"]
[endif]
...
なんかもう、びっくりするぐらいいろいろ書いてあると思います。
3.今回残す箇所
[macro name="c"]
~
[endmacro]
[return]

だけ残して、後は消してしまいます。

4.ついでにコメントなどの追加
以外とコメントを入れない人が多いです。
ある程度プログラムに慣れている人は、いちいちコメントがあると見づらいとか思う人もいるでしょう。
しかし、常時プログラミングできる人ならともかく、
プログラミングに時間をおいてしまうと、
「これ何の処理だっけ」
と絶対に忘れます。

絶対です。
なので、面倒くさがらず、プログラムを記述したら一緒にコメントも書くクセをつけましょう。
そうしておくと、後で自分が見たときも楽ですし誰かが見てもわかりやすいプログラムを作ることができます。
案外、その時のコメントがわかりやすいかもポイントです。

5.というわけで、コメントなどを追加したらこんな感じになると思います。
あくまで私が分かりやすい形なので、これが正解というわけではありません。
// =========================
// 運命-SAD A ME-用自作マクロ集
// =========================

[macro name="c"]

[endmacro]
[return]
さて、次回は続いて名前を変えたり、中身を作っていったりをしたいと思います。

スポンサーサイト

コメントの投稿

非公開コメント

最新記事
カテゴリ
プロフィール

VOID

Author:VOID
同人サークルSUZUMUSHIです。オリジナルノベルゲームを作っています。コミケ等で配布予定です。作品に興味がわいたら
公式サイトへ。
(・ω・)ノ

Twitter
公式Twitterです。関係ないつぶやきもしばしば。
最新トラックバック
カウンター
RSSリンクの表示
検索フォーム
QRコード
QR
RSSリンクの表示
ブロとも申請フォーム

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。