同人ゲーム制作を語らうゆっくりとしたメディア |
すろ〜ふ〜ど HowTo企画 『吉里吉里いったっきり 』 |
今回の挑戦は「絵を表示したり音を鳴らしてみよう」。 相変わらずド素人の二人はきちんとゲームを組み上げることはできるのでしょうか? なお、今回も説明用に画像を多く使用しております。 |
では第二回目を始めましょうか。
今回は、絵を表示してみたり、音を鳴らしてみたり、絵にエフェクトをかけたりしてみましょうかねー。
|
おお! ではまずは絵からですね。
やっとゲームらしくなってきますな!
っと・・・・・・うーん……
|
脂汗流して、どうしました?
|
ど、どこを……
な、何をどうすればいいんでしたっけ?
|
えー、もう忘れちゃったんですか?
しょうがない、前回のおさらいをしましょう。
吉里吉里/KAGフォルダ→kirikiri2フォルダ→krkr.eXeをクリック。
しばらくしたら表示されるフォルダ/アーカイブの選択画面で、とりあえず前回作った「練習」フォルダを選択します。
いいですか、フォルダですよっ。フォルダの中のファイルじゃないですよー。
|
おおっ!
前回のフーとか言ってるやつが出てきましたぞ!
|
で、今回は「練習」フォルダ→「scenario」フォルダのなかのファイル「first.ks」をいじくって、あれこれしてみようというわけです。
|
なるほどなるほど。
おお、「first.ks」の中に前回書いたスクリプトがありますね。
この要領でやっていけばいいんですな。
|
まず画像の表示からやってみましょうか。
使える画像フォーマットはー、と……
|
普段慣れ親しんでるフォーマットで言うと
BMP、JPEG、PNGといったところですか。
他はTLG5、TLG6、ERIのほか、Susie Plug-inを使えば色々な形式に対応できるようです。
|
なるほどなるほど。
では画像を用意しますね。
どれ、ではとりあえずJPGのを……
って、画像サイズはどんくらいのを用意すればいいんでしょう?
|
まずは背景から表示してみたいですので、デフォルトでは640×480ピクセルの画像を用意してみましょう。
「練習」フォルダ→「system」フォルダの中のConfig.tjsで指定すれば他のサイズも可能なようですけど、とりあえず。
|
ほいほい。
|
ではとりあえず適当な画像くださいよ。
|
以前うちのゲームで使った画像ですけど・・・・・・
ほいこれを。
|
サンキューです。
ではこの画像を「練習」フォルダ→「bgimage」フォルダの中に放り込んでみましょう。
「〜このファイルは削除してかまいません〜.txt」なるものが入ってますけど、消すのも何となくもったいないからそのまんまで……
|
で、さっきの「first.ks」からスクリプトでもってこの画像をゲーム画面に読み込むんですな。
|
では以下のようにスクリプトを打ってみます。
|
[image storage="bg01" page=fore layer=base] [wait time=200] *start|スタート [cm] こんにちは。[r] こにゃにゃちわフー。[p] [cm] クレクレタコラ。[r] |
うおおっっっと!
フッフッフッ。何ですかな? コリャ。
|
え、何ですかその勝ち誇ったような笑みは……
|
ふ。
この背景ファイルの指定の仕方さ! つまりbg01の部分にjpgの拡張子が記述されてなかったんだよー!!
|
なんだってー!
じゃなくて、リファレンスをよく見てみなさいよ。
拡張子は省略できるって書いてありますよ。
面倒くさいから書かなかったんですよー!
|
なっ! なんだってぇぇえ!!!??
|
まったくもう。 さて、早速krkr.eXeを起動して「練習」フォルダを選択して、と……おお、背景が表示された! |
おおーーっ!! ほ、ほんまやー!
ほ、ほんまもんのビジュアル・ノベルみたいやんですやん!!
|
ではページを切り替えるときに背景も変えてみることにしてみよーっと。 新しい背景『bg02.jpg』を用意して、先ほど同じように『bgimage』フォルダに入れます。 |
[image storage="bg01" page=fore layer=base] [wait time=200] *start|スタート [cm] こんにちは。[r] こにゃにゃちわフー。[p] [cm] [image storage="bg02" page=fore layer=base] クレクレタコラ。[r] |
ほい起動〜っと……おや。
確かに背景は変わったけど、いまいち面白味に欠けますねー。
|
うう……一瞬で変わっちゃいましたしね。
エフェクトをかけるような方法とかないもんかな。リファレンスリファレンス……
|
あ、これこれ、チュートリアルん中に「トランジションを使おう」ってのがありますよ。
|
おお、本当だ。
えーと、なにやら長い文章が……吉里吉里の画面(のレイヤ)構成はこうなってるのかー、ふんふん……。
|
ふむふむ……自分なりに噛み砕いて解釈したのは、
『吉里吉里/KAG』で表示されている画面は、セル画アニメみたいな紙芝居になっていて、 ・文字だけが表示されるセル画 ・立ち絵(前景)が表示されるセル画 ・観客から見えるように表示されている背景 ・絵を差し替えるときのために、観客からは見えないように裏側で、こっそり用意しておく絵 が重なって表示されてるって感じですかね。 |
だいたいそんな感じですなー。 背景だけ、あるいは立ち絵だけ切り替えるときは、変えたい絵のセル画を抜き取りながら、裏で用意しておいた絵とすり替える。 このときに『ルール画像』を使ったりすることで、絵を差し替えるときにいろんなエフェクトをかけられるようですな。 |
ルール画像を使った切り替えが面白そう。
ではオリジナルの適当ルール画像、この『t_rule.png』を使ってみよう。
ルール画像を『rule』フォルダに放り込んで……と。
|
[image storage="bg01" page=fore layer=base] [wait time=200] *start|スタート [cm] こんにちは。[r] こにゃにゃちわフー。[p] [cm] [backlay] [image storage="bg02" layer=base page=back] [trans method=universal rule="t_rule" vague=64 time=1500] [wt] クレクレタコラ。 |
うひゃひゃひゃ、なんじゃこりゃ、面白ーい!
|
こんなかんじでグレスケ画像を用意すれば色々楽しめそうですねーって聞いてます?
|
うひゃひゃ……おっと、聞いてますよ。 では次は、立ち絵の表示をしてみたいですね。 しゃちさん、立ち絵を描いてください。 |
はいはいっておい! 今からっすか!?
|
そうですよ。ウチは立ち絵じゃなくてフェイス絵でゲーム作ってるから丁度いい立ち絵サンプルが無いんですよ。 それとも大昔の絵を…… |
うぎゃーー!! やめろーーそれだけはヤ・メ・ロー!!!
|
ではキリキリ描いてくださいな。
吉里吉里入門だけに……ぷくくく。
|
うあーうーうー……
|
はいはい。描きましたよ。こんなんでどないや!
|
受け取った! では早速表示してみよう、るるるんるん。 fig01.pngをfgimageフォルダに入れて、それからタグを打ち込んで、と…… |
[image storage="bg01" page=fore layer=base] [wait time=200] *start|スタート [cm] [image layer=0 page=fore storage="fig01" visible=true key=0xff00ff left=340 top=100] こんにちは。[r] こにゃにゃちわフー。[p] [cm] [backlay] [image storage="bg02" layer=base page=back] [trans method=universal rule="t_rule" vague=64 time=1500] [wt] クレクレタコラ。[r] |
おお、表示できた!
すごい、ゲームっぽくなってきやがった! (この画像では見やすくするためゲーム画面を右クリックしてメッセージウィンドウを消しています) |
まぁ、はしたない言葉遣いですこと。
あとマスクを使ってアルファ合成も出来るみたいですねー。
|
あ、アルファ合成ってなんですかい?
|
今の立ち絵だと透過色との境界あたりのドットがカクカクしてるでしょ?
そこを滑らかにしてくれるスグレものなのです。
この画像を……
|
ほいほい。
なんか2枚ありますねえ?
|
一枚は元画像。もう一枚はマスク用の画像です。
チュートリアルの「前景を表示しよう」>「マスクを使った前景 」あたりに詳しいやり方が書かれているみたいですよ。
|
なるほどなるほど。
そうすると、マスク画像を使った場合のタグはこうなりますな。
|
[image storage="bg01" page=fore layer=base] [wait time=200] *start|スタート [cm] [image layer=0 page=fore storage="fig03" visible=true left=340 top=100] こんにちは。[r] こにゃにゃちわフー。[p] [cm] [backlay] [image storage="bg02" layer=base page=back] [trans method=universal rule="t_rule" vague=64 time=1500] [wt] クレクレタコラ。[r] |
ほいほいっと……まぁー。
今度は絵の輪郭がなめらかに表示されてる!
|
背景と立ち絵が表示されると軒並みゲームっぽくなりますねー。うんうん。
では次に音響系に行きましょうか。
|
ではBGMを鳴らしてみますかねー。
以前作ったゲームで使用したBGMを用意してみます。
おっと、CD-ROMの音楽トラックを再生する(CD-DA)ほかに、MIDIやWave系も使えるみたいですが、どれがいいのかな?
|
最近はCD-DAやMIDIより、Wave系の方が主流みたいですからねー。
ネットで配布する事も考えて今回はWave形式(拡張子.wav)で攻めてみましょう。
|
リファレンスでは、CD-DAを使用する場合のやり方になっているので、えーとえーと……
まずはConfig.tjs(『吉里吉里/KAG』フォルダ→『kirikiri2』フォルダ→『練習』フォルダ→『system』フォルダの中)の、BGMの設定項目をいじらなきゃならないようです。
|
フムフム。
|
// ◆ BGM再生メディア の下がデフォルトでは『;type="CDDA";』になってて、CD-DAを使用するように指定されてました。 なので『;type= "Wave";』に変更して…… |
ほうほう。
|
用意した音源ファイル、sen-21.wav1を『練習』フォルダ→『bgm』フォルダに放り込んで…… タグをこのように打ってみてっと……ぱちぱち。 |
[image storage="bg01" page=fore layer=base] [wait time=200] *start|スタート [cm] [image layer=0 page=fore storage="fig03" visible=true left=340 top=100] こんにちは。[r] [playbgm storage="sen-21.wav"] こにゃにゃちわフー。[p] [cm] [backlay] [image storage="bg02" layer=base page=back] [trans method=universal rule="t_rule" vague=64 time=1500] [wt] [stopbgm] クレクレタコラ。[r] |
おお! ちゃんと音楽が聞こえる!
|
ほうほう。
|
って、聞いてないな!
無理矢理大音量で聴かせてやる。ヘッドホンで最大出力だぁ!
|
うぎゃあああ!!
きーこーえーるーーー!!!
|
しゃちさんは地獄耳ってことがわかったところで、効果音を鳴らしてみよう。
|
はーいーー(涙目)
|
では、また適当な効果音のファイルを、ごそごそ……
この[bell.wav] を『練習』フォルダ→『sound』フォルダに入れてーっと。 |
あ、効果音も何か設定をイジらないといけないんじゃないっすかー!(ビシッと指差しつつ勝ち誇った表情で)
|
フンッ。効果音はPCM系、wavでいいんですよーだ。
|
うわっ! なんだそりゃ赤ッ恥もいいトコじゃん俺ってばハズカシー!!
|
では、効果音を一回だけ鳴らす場合のタグを入れてみましょー。
|
[image storage="bg01" page=fore layer=base] [wait time=200] *start|スタート [cm] [image layer=0 page=fore storage="fig03" visible=true left=340 top=100] [playse storage=bell.wav] [ws] こんにちは。[r] [playbgm storage="sen-21.wav"] こにゃにゃちわフー。[p] [cm] [backlay] [image storage="bg02" layer=base page=back] [trans method=universal rule="t_rule" vague=64 time=1500] [wt] [stopbgm] クレクレタコラ。 |
おお、ちゃんと一回だけベルの音が聞こえましたよ。
|
おお! あの鐘を鳴らすのはア・ナーーーターーー♪
|
あーなーたーにいてほしーいっと。
さて、効果音をループ再生させるにはこうタグを打ってみました。
|
[image storage="bg01" page=fore layer=base] [wait time=200] *start|スタート [cm] [image layer=0 page=fore storage="fig03" visible=true left=340 top=100] [playse storage=bell.wav loop=true] こんにちは。[r] [playbgm storage="sen-21.wav"] こにゃにゃちわフー。[p] [cm] [backlay] [image storage="bg02" layer=base page=back] [trans method=universal rule="t_rule" vague=64 time=1500] [wt] [stopbgm] [stopse] クレクレタコラ。 |
うん、ちゃんと[stopse]で指定した箇所に行くまでループで再生されてましたよ。
|
いや、それ歌が違うし……
ともあれこれで一通り画像と音響を呼び出す事ができましたね!
それでは次回からはとうとうノベルゲームの根幹、テキスト制御のやり方とか行きますよ!
|
おお、ついに!
では選択肢やセーブ・ロードに対応した感じで、いっちょそれなりのゲームを作ってみますか!
|
何ノンキに構えてるです?
次回までに一本まるまるゲームのシナリオを上げてくるんですよアナタが。
|
えー。聞いてないし!
ばかじゃないの〜(小須田課長風に)!
|
アンタが! イキナリ立ち絵描けとか言い出すからいけないんだー!! うわーん(泣)
|
よかれと思ってぇ!
|
ネタも微妙に古い、いったっきりコンビですが、次は選択肢をつけたり、セーブ・ロードに対応させるなどしつつ、 短めなゲームを一本、作ってみようと思います。 では、どきどきしながらまた次回! |