information
この基礎編は、ADVRUNの初歩的な機能についての解説となっています。
ADVRUNは、ゲーム開発の中級者以上の方をターゲットとしているため、簡単な内容は省略する場合がありますので予めご了承下さい。
index
・ゲームプロジェクトの準備
・ゲーム情報設定について
・メッセージの表示
・画像の表示
・音楽の再生
・効果音の再生
・音声の再生
・ビデオの再生
ゲームプロジェクトの準備
テンプレートのコピー
SDK内のフォルダ「Templates」をお好きな場所にコピーしてください。そして、「Templates」からお好きな名前へとフォルダ名を変更してください。
このフォルダが、そのままゲーム開発のデータとなります。フォルダ構成例
BGM : フォルダ PadData : フォルダ Pic : フォルダ Script : フォルダ Sound : フォルダ System : フォルダ Video : フォルダ Voice : フォルダ Game.Info : ファイル
プレイヤー類のコピー
データだけではゲームは動作しませんので、binフォルダ内にあるADVRUN.EXEを、先ほどコピーしたフォルダ内にコピーしてください。
ogg.dll
vorbis.dll
vorbisfile.dll
これで、ゲームを動かす準備は整いました。
スクリプトの作成
ご自分がいつも使っているテキストエディタを用意して下さい。
このチュートリアルを参考に作ったスクリプトは、全て先ほどのコピーしたフォルダ内にあるSCRIPTフォルダに作成してください。
データ類の準備とコピー位置
データの仕様を参考に、画像ファイルやサウンドファイルはどこに置けば良いかを以上の説明を参考にして把握してください。置く場所は、データに該当するフォルダに置くことになっています。
今後の説明では、データファイルのコピーの手順などは一切省略します。
ゲーム情報設定について
ゲーム名・製作者・暗号コードの設定
ゲームの実行やパッケージングに必要な暗号コードの設定を行います。
例:
//ゲームの名前を指定します。ウィンドウのタイトルに表示されます。
@gname("ゲームの名称")
//ゲーム用の暗号コードです。ランダムな文字・数値を指定してください。
@gcode("5555!iei!banzai!")
//製作者の名前を設定します。
@gmaker("製作者の著作情報")
スタートファイル・画面サイズ・著作権情報の設定
ソフトウェア情報に表示する画像や著作権表記、画面サイズの設定を行います。
例:
//一番初めに実行されるシナリオファイルを設定します。
@startfile("Start.SNF")
//ソフトウェア情報に表示する画像ファイル名を設定します。
@ginfopic("information.png")
//ソフトウェア情報の著作権文章表示用の文章を設定します。
@ginfoletter("このソフトウェアは、日本国著作権法によって保護されています。")
//スクリーンサイズを設定します。640x480か800x600か1024x768のどれかを指定します。
@screensize(640,480)
メッセージの表示
Game.Infoで、メッセージウィンドウのサイズや画像指定、ノベルウィンドウのサイズ・色設定を行う必要があります。
メッセージウィンドウ・ノベルウィンドウの設定
テンプレートでは以下のようになっています。
メッセージ関連の詳しい解説は、別ページに記述されていますのでごらん下さい。テンプレートでのウィンドウ設定
//メッセージウィンドウの設定を行います。
@msgwinset("sys_window3.PIZ",20,320,30,335,580,130)
//ノベルモードの際の文章の表示エリアを設定します。
@novwinset(10,10,620,460,10,10)
ADV風メッセージ
アドベンチャーは、メッセージ単位で表示を行います。
\w「部員弐号」の発言:\n今日はどこ行こうか?\h「\w」と「\h」で囲んだ部分が、メッセージとして表示されます。
VN風メッセージ
ビジュアルノベルは、ページ単位でメッセージを表示します。ADVRUNでは、簡単な命令でページ単位で文章を表示することが出来ます。
\lこんにちは。\hのように、「\l」と「\h」で囲んだ文章部分を表示することが出来ます。この場合、\lはビジュアルノベル画面モードで表示しろと言う意味となり、\hは文字の表示を一旦止めなさい、という意味となります。
今日は、何をして遊ぼうかな。\h
よし、真理子ちゃんをデートに誘おう。\h
\l真理子ちゃんの家についた。\h
インターフォンを押すぞ!\h
改行とキー待ち
「\」(エン)マークは、メッセージ表示において重要な意味を持ちます。このマークの後のアルファベットは必ず意味を持ちます。このエンとその直後のアルファベットは、メッセージとしては表示されません。
たとえば、\wこんにちは太郎。\n元気にしていた?\h
とした場合、\nは「改行(一段下にずれる)」、\hは「メッセージが一旦終わってキーの入力を待つ」という意味となります。
ルビ振り
ADVRUNのルビ振り機能は、1文字ごとにルビを振る方式となっています。
ルビを振る命令は非常に簡単で、"[かな]"という形となっています。
難しい読み仮名や当て字を使う場合にルビ機能を使うときに非常に強力になります。通常の文章
\wこんにちは。今日は良い天気ですね\h
ルビを振った文章
\wこんにちは。[きょ]今[う]日は[い]良い[てん]天[き]気ですね\h
フェード表示・消去
\wや\l等のウィンドウ・VN画面の初期化命令で、フェード表示に対応させることが可能です。フェード表示は、画面切り替え後のスムースな画面表示を補助する役目となります。
¥命令の対応表
通常命令 フェード対応命令 解説 \w : \1 ADVモードに初期化します \l : \2 VNモードに初期化します \c : \3 フリーライトモードに初期化します \d : \4 フリーライトノベルモードで初期化します \b : \5 今まで表示したテキストレイヤと画面を復帰します \命令のフェード用拡張
\t : テキストだけをフェードアウトします。 \e : ウィンドウやVN画面をフェードアウトします。
使い方は、通常の方法と同様です。置き換えて記述してください。
画像の表示
画像の種類
画像にも種類がありますが、普段使うものでは、・背景の3つとなります。
・前景・キャラクタ
・トランジションルール
背景の使い方
背景は、必ずゲーム画面より大きい画像を使う必要があります。
(800x600画面モードの場合は、800x600以上の背景を用意しなければなりません)
スクリプトで、背景を画面に表示するには、いくつかの手順を踏む必要があります。
1・背景を裏画面にロードする
@pic.loadbackpic命令で画像ファイルを読み込みます。
2・背景を実際に表示されている画面へ転送する
@pic.changebackpic命令で、裏画面にロードされた画像データを表の実際の画面上へ転送します。このとき、裏画面に一旦置かれたデータは消去されます。
以上のような手順となります。
前景・キャラクタの使い方
前景・キャラクタは、11枚の保持が可能です。0〜10番までの番号で指定します。主に、キャラクタ表示・日付等を表示するのに使用します。
前景・キャラクタの表示にも、手順を踏む必要があります。
また、背景と前景・キャラクタを同時に操作する場合は、@pic.changeall命令を使用します。1・画像データを裏画面にロードする
@pic.loadchrpic命令で画像ファイルを読み込みます。
2・裏画面のデータを実際に表示されている画面へ転送する
@pic.changechrpic命令で、裏画面にロードされた画像データを表の実際の画面上へ転送します。このとき、裏画面に一旦置かれたデータは消去されます。
実際の記述例 #1
//キャラクタ読み込み・表示
@pic.chrload("cha0me_nikkori.piz",1)
//位置・拡大率情報を設定
@pic.movechrpic(1,1,100,150,100,128,True)
//表示
@pic.changechrpic(1,1,0,1000)実際の記述例 #2
@pic.chrload("PIC_002a.PSF",0)
@pic.chrload("PIC_003a.PSF",1)
@pic.chrload("cha1me_niko.png",2)
@pic.changeall(1,0,2000)
エフェクト命令(@pic.change???)の使い方
エフェクト番号と、エフェクト時間を指定して操作します。
エフェクト番号は、フェードやトランジション等の機能が番号として割り振られていますので、その番号を指定することになります。
音楽の再生
音楽再生の種類
ADVRUNは、圧縮音楽形式のOggVorbisと音楽CDの両方に対応しています。この二つのどちらかを、ゲーム設定ファイル(game.info)で設定して選択することになります。
こちらとしては、安定した再生のため、OggVorbisを使用した再生方式を推奨します。
音楽ファイルの用意の仕方(OggVorbisのみ)
再生は、全て番号で指定します。音楽CDに合わせるため、番号は2番から指定することと規定されています。
ファイル名は、5番の場合はTrack05.Oggとなります。15番の場合は、Track15.Oggというファイル名となります。つまり、全てを二桁で表すという規定となります。
ループファイルを指定する場合は、拡張子をLOPと変更した同様のファイルをご用意下さい。
再生の方法
@media.playmusic命令を使用します。
例の場合は、トラック番号30(Track30.Ogg)をリピート再生で再生する、という内容となります。概念
@media.playmusic(トラック番号,リピートスイッチ)
例
@media.playmusic(30,True)
この命令のほかに、再生時に音量や周波数等を細かく設定できる@media.playmusicexという命令も用意されています。
停止の方法
@media.stopmusic命令を使用します。
フェードイン・アウトの使い方
ADVRUN側が音量調整を自動で行いますので、スクリプトにはフェード時間と音量を指定するだけとなります。
フェードイン
@media.playmusicex(30,True,0,100,0)
@media.musicvolume(1000,5000)
開始音量は0で、5秒かけて最大音量の1000にフェードインします。
フェードアウト
@media.musicvolume(0,5000)
音量を5秒かけて最小音量の0にします。
再生中の周波数・パンの動的変更機能の使い方
再生中の音楽・サウンド・音声で、周波数やパンを動的に変更することが出来ます。
実装例
@media.playmusic(3,True)
@media.changesoundeffect(0,150,0)
効果音の再生
サウンドの種類
ADVRUNには、2種類の再生方法があります。
サウンドバッファは、4つ用意されており、番号が0〜3番まであります。このうちの0〜1番と2〜3番の2種類では再生のほうが根本的に異なります。
再生方式
0〜1番 直接展開再生(短い効果音向け)、WAVEファイルとOggVorbisの再生をサポートします 2〜3番 ストリーミング再生(長時間の効果音向け)、OggVorbisのみの再生をサポートします
再生命令
再生は以下の手順で行われます。
1・データをロードする
@media.soundload命令でファイルを読み込みます。
2・データを再生する
@pic.soundplay/soundplayx命令で、再生します。
停止命令
@media.soundstopで再生を停止できます。
フェードイン・アウト命令
音楽再生のように、フェードイン・アウトが可能です。@media.soundvolume命令をお使い下さい。
音声の再生
音声再生の方法
効果音とほぼ同様の再生の仕方を行います。
ただし、音声は同時に1つしか再生できないのと、文章表示等と同期して再生することが出来ます。
音声再生手順
データをロードしてセットしてから再生命令を使うと言う手順はサウンドや画像と同様です。
1・データをロードする
@voice.set命令でファイルを読み込みます。2・データを再生する
@voice.play / \v 命令で、再生します。
ビデオの再生
ビデオ再生の方法
@media.playvideo命令を使うことで、再生することが出来ます。
パラメータには、ビデオファイル名と、キーの入力による再生停止を許可するかと言うスイッチを設定します。
例
@media.playvideo("GAMEOP.MPG",False)