前回に予告したように使用画像ソフトは、Photoshop Elements 2.0です。
(他のソフトとかも探してみたんですけど、
MACとWIN共通で説明できるソフトってあまりないんですよね)

現在は4.0まででていますが、とりあえず操作性には
あまり違いはないと思われます。(たぶんあせる

なので、本家本元の高価なPhotoshopでも大丈夫かと。


マスクをつける前に、回りが透過されている画像を用意しましょう。
画像の透過その1 で使った画像のように



こんなふうに回りが透過されていない状態では、

マスクを作るために、回りの白い部分を消していかなければならず

綺麗に背景となじませるためには、地道な作業が待っています。

今回も『[y]da's room 』さんに立ち絵の素材をお借りしています。

 矢印01  

私のやり方としては、まず自動選択ツールで消したい場所をもれなく選択し、
でもってその選択範囲部分を消去やDeleteを使って削除。
ピンクと白の格子が透明な部分です。



この画像は自動選択だけで比較的綺麗に切り抜くことができましたが、
それでも拡大して、下に黒に塗りつぶしたレイヤーをおくと、
(イメージとしては切り絵を黒い紙の上に乗せた感じ)
耳部分とかに白いのが残っているのがわかります。

これをまた拡大してピクセル単位でちまちまと消したり色を加えたりしていきます。



というわけで、大雑把に修正してみました。
綺麗に馴染んでいるように見えるでしょうか?


もしかしたら、簡単にできる方法も世の中にはあるのかもしれませんが、
少なくても、私が使っているPhotoshop Elements 2.0では無理っぽい。

なので、PC上で線画から描く場合は、背景を透明にしてから、
アナログで描いた線画をスキャナーで取り込んで色をPC上で塗る場合は、
線画を抽出してからにしたほうが後々が楽です。
(線画の抽出についての詳細は『らくがき本舗 』さんで)

アナログで色まで塗ったのをPCに取り込む場合は…………、
が、頑張ってください。


さて、ではいよいよマスク作りなんですが、
詳細は『Famous Writerホームページ 』のTipsの中にある
マスクつき画像の作り方 や『R*U*T*A 』さんのゲーム制作豆知識、
及び『じゅえる☆ぼっくす 』さんの作成講座を
ご覧下さいというのは駄目ですかね?汗

使っているバージョンが違っているとはいえ、同じPhotoshop系なので
やることが変わらないというか、あちらのほうか絶対に分かりやすいというか。

Elements 2.0では、数値を入れて画像を横にずらすということができないけど、
R*U*T*A 』さんの説明のように背景を赤や緑の目立つ色にしておけば、
手動でもなんとかできそうだし。

ざっと説明だけしますと、
キャラ画像のレイヤーをコピーし、透明部分の保持にチェックを入れた後、
コピーしたキャラ画像を黒で塗りつぶします。

そのレイヤーの下に白で塗りつぶしたレイヤーを作り、
2つを結合して↓のようなマスク画像を作ります。

 

後は、画像のカンバスサイズを横だけ2倍にし、
マスク画像だけを横にずらし、
元のキャラ画像のレイヤーの下に黒で塗りつぶしたレイヤーを作って
全部の画像を結合すればできあがり。

 ←こんなんできました~波

では、さっそくこのマスクつき画像を使って立ち絵を表示させてみましょう。
“&Layer.Transparent”はちゃんと1にしてマスクに従うように設定。
(デフォルトでは、マスクに従うようになっているので、だいたいはそのままで問題ないです)



多少、線が消えている部分がありますが、
やっつけ仕事にしては綺麗にできたのではないかと自画自賛しておきます。

ちなみに、マスクが小さすぎたり大きすぎたりずれたりしたときは、

この立ち絵では一見支障のないように見えますが、アホ毛などあるキャラだとその肝心のアホ毛が消えてしまうことがあります  ←マスクが小さい

使い方によっては、効果になるかも  ←マスクが大きい

これだけは、さすがに使い道がありませんね  ←位置がずれている

こんなふうに回りが切り取られたり、影がでたりしますので、
もし、ちゃんとマスクをつけたのに変に表示されてしまうというときは
マスクの位置がずれてないか大きさは合ってるか等、
確かめてみてください。

最近よくご質問をいただくので、

少し番外的にFW用の画像関係の話など。

(v2とv3の違いもないですしね)


ただ、私は絵描きではないので、そちら方面は滅茶苦茶疎いです。

苦手と言い切ってもいいかもしれません。

自分でゲーム作るときも立ち絵等は人様にお願いしている口ですから。



なので、かなり見当違いなこととか
無駄に面倒くさいこととかしている可能性はです。

その点をご留意いただき話半分程度に見ていただければと。


さて、前置きが長くなりましたが、

まずFWの画像の種類について書いてみます。


と言っても、大きく分けると前景、背景の2つになってしまうんですが。


で、その違いは何かというと透過できるかできないかですかね。


“する”か“しない”かではなく、“できる”か“できないか”なのは、

前景は透過させないことも可能だからです。


レイヤー0が背景、

その他のレイヤーが前景ということになりますか。


画像のテキストウインドウや常駐ボタン、

顔グラなんかも透過できるという点では、

前景の一種になるのかもしれません。


とりあえず、実際に表示してみましょう。


背景画像が画面サイズより小さい場合は、

その足りない部分がデフォルトでは黒く表示されます。



こんな感じですね。


次に前景、立ち絵と呼ばれるものを表示させます。


表示させようとしている画像の元は、これ↓です。



今回は、『[y]da's room 』のY田さんに立ち絵の素材をお借りしました。




なんか見えにくいですが、

立ち絵が半分しか表示されていないことがお分かりでしょうか?


しかも色まで変になっていますね。


FWでは、背景と顔グラ(アイコン)以外は、

デフォルトでは、マスクに従うになっており、

左半分を自動的にマスクとして判断するようになっています。


そのため、マスクをつけていない状態で表示させようとすると

こうなってしまうわけです。


(FWには←こう見えている?)


あ、マスクと言っても仮面や花粉の季節や風邪のとき、

古いところでは口裂け女がしていたものではないですよ。


後、毒ガスを防いだり、甘いやつでもないです。


『Excite 辞書』の 国語辞典で調べると(6)にあたる

写真・映画の撮影時または焼き付け時に、

画面の一部を写らないように遮光するために用いる不透明物体。


というのがニュアンス的に一番近いかもしれません。


つまり、右半分の白い部分が遮光するための不透明物体というわけです。

黒いところだけに光が通り、絵を映し出す。

灰色部分は白に近くなればなるほど遮光され、
うっすらと映し出されることになります。


 矢印01  


左の画像が、右半分と左半分を重ねてみた画像。


マスク側の白は表示されないので、

実際に表示されるのは右のマスク画像の白以外の部分と
それに重なった左側の画像の一部ということになります。


では、“&Layer.Transparent = 0;”にしてマスクに従わないにするとどうなるか?



マスクに従わないつまり非透過にしているわけなので、

回りの白いところまで当たり前のように表示されてしまいます。


透過させる必要のない四角いボタンとかタイトル文字、

立ち絵でも回りを枠で囲ってしまうなどの工夫次第で

マスクなしでもゲームを作ることは可能かもしれません。


マスクなしにしたほうが表示も軽いですしね。


しかし、他のゲームみたいに立ち絵が背景になじむように透過させたい。

と思ってしまうのも超初心者の性。(たぶん汗


というわけで、次回は回りを透過させるために

画像の左側にマスクをつけてみます。


ただ、まあ、冒頭でも書いたように画像関係は不得手だし、

本当に私はこうしているというだけなので、

あまり参考にはならないかもしれませんが。


使っているソフトはPhotoshop Elements 2.0です。


いよいよv3が安定版になりましたね。

今後の予定としては、まずv2とv3の違いのいくつかを

やってから、v3用に最初のほうから書き直したいと思っています。

『INDEX』もv2とv3を分ける予定。

(その前に書きかけのやつをUPしなければなのですが)


後、もしかしてらこれを機に他のブログへ移るかもしれません。

どうもここはメンテナンスばかりあって、

閲覧できないことが多すぎるようなので。

(講座なのに、必要なときに見れないのも問題かなと)

まあ、ミラーサーバを作ってしまうのも手なんですが。

うーん、v3からそうしてみようかな。

一ヶ月以上も更新できなくて、すみません。

そろそろ自分のゲームも作らねばと地下にもぐっておりました。

(の割には、全然完成していませんが)

v3待ちをしていたというのもありますが。

いやあ、常駐ボタンや顔グラが楽しくて音譜

v3が正規版になったら、ここでもいろいろやっていきたいです。


書きかけの記事はいくつかあるんですが、

自分がv3をメインにし始めたためか、

命令がごっちゃになってなかなか進みません。

せっかく書きかけているんだから、なんとかしたいんですけどね。

さる筋(どんな筋だ汗)から

セーブデータにコメントを入れる で画像をUPしてた

セーブ・ロード画面カスタマイズサンプルの

データ公開の要望をいただきましたので、

調子に乗って遊戯の月 のほうからダウンロードできるようにしました。

シンプルな分、色やバックの画像を変えただけで

結構雰囲気が違ってくるし、

そういう意味では使い勝手がいいのではないかと

ちょっとフォローしておきますあせる


ついでと言ってはなんですが、

一番上のコメント文の中に遊戯の月のBBSへの

直通のリンクを張っておきましたので、

質問等ありましたら、こちらもご利用下さい。

マニュアルを見れば一目瞭然シリーズの第3弾。

(いや、すでに5弾ぐらいかな。

しかし、いつのまにシリーズにはてなマーク


今回は、セーブデータのサムネイルに

テキストウインドウ枠を含める方法と

日付のカスタマイズの仕方です。


こう書くと何やら難しそうな感じがしますが、

マニュアルのどこどこを見てくださいの一行で済む簡単さ。


しかし、それではこのブログの意味がなくなってしまうので、

いつものようにつたない説明を始めさせていただきます<(_ _)>。


まず、setting.txtを開いてください。

そのどこでもいいんですが、


*SaveThumb.WithMes = 1(yes、true、onのいずれでも可);


という命令を書き入れます。

(セーブロード関係とか固めて書いてたほうが

後で見たときに分かりやすいかもです)


#セーブファイルのサムネイル画像にメッセージウインドウを含める
*SaveThumb.WithMes = 1;



ロード画面02


ちょっと分かりづらいかもしれませんが、

左上のが、デフォルトの

*SaveThumb.WithMes = 0;

状態のサムネイル。


その右隣のが*SaveThumb.WithMes = 1;にして

メッセージウインドウを含める設定にしたサムネイル。


このキャプチャは、ライブラリ

『サムネイル付きロード/セーブ画面 Ver.2』を

簡単にカスタマイズしたロード画面なのですが、

遊戯の月 で配布しているv2用のサンプル02に、

入っています)

前回のセーブデータにコメントを入れる でやった

セーブデータのコメントに自動でテキストの内容を入れる”と

今回のお題の一つ“日付のカスタマイズ”を使っています。


#セーブファイルのサムネイル画像にメッセージウインドウを含める
*SaveThumb.WithMes = 1;
#&LoadBuffer.Dateのフォーマットを設定
*LoadBuffer.Date.Format = m月d日 H時i分s秒;
#セーブデータのコメントに自動でテキストの内容を入れる
 *SaveText.Auto = 1;
#*SaveText.Autoで、入れることができる最大の文字数(これ以降は「…」で省略される)
*SaveText.Length = 15;


そのサンプルから、

セーブロード関係の設定を抜き出してみました。

日付を一行に納めたかったので、

年を省略しています。


ちなみに、西暦の下二桁を入れて、

秒のほうを省略する場合は、


*LoadBuffer.Date.Format = y年m月d日 H時i分;


こんな感じになります。


詳しくはマニュアルをご覧下さい。

v2、v3共、特殊命令→setting.txt→日付です。

セーブデータは、日付だけだと

どこでセーブしたものなのか

分からなくなるときがあります。

(私なんか特に(汗))


サムネイルをつけるのは、

分かりやすくするためには有効ですが、

画像がメインではないゲームなどでは、

スペースがとられるだけだし、

あまりつけたくないと思う場合もあるでしょう。


セーブ画面


というわけで、こんなものを作ってみました。

↑これは、自分のゲーム用に作ったセーブ画面です。


サムネイルはあまり必要ないし、

セーブポイントも20あれば充分だったので、

ライブラリ のv1用『サムネイル付きロード/セーブ画面』を

カスタマイズしました。


バックの画像は、遊戯の月 で配布しているサンプル2の

セーブ・ロード画面で使っていたものの色違いです。


ロード画面


↑のように、NO DATAのところには、

セーブ用の文章を入れています。


本編の章の始めとか入れたい場所に、


&SaveText = 任意のコメント;


↑こんな命令を入れます。


&SaveText = プロローグ;

  ・

  ・

  ・

  ・

  ・

  ・

&SaveText = 昼休み―どこへ行く?;


なお、いちいちこんなふうに設定するのではなく、

その場面のテキストの最初の部分が自動的に

セーブデータに入るようにしたい場合は、


“setting.txt”


*SaveText.Auto = 1(yes、true、onのいずれでも可);


*SaveText.Length = コメントの最大の文字数;


↑この二つの命令を入れます。


#セーブデータのコメントに自動でテキストの内容を入れる
*SaveText.Auto = 1;
#*SaveText.Autoで、入れることができる最大の文字数(これ以降は「…」で省略される)
*SaveText.Length = 15;


後は、セーブ・ロード用のファイルに

&LoadBuffer等の命令をセーブの数だけ

入れるわけなんですが、

カスタマイズはしてもほとんど丸写しで

内容を理解しているとはいいがたい身としては、

v3が安定版になった後あたりで

また改めて解説(?)に挑戦してみたいと。


それともサンプルとして

データそのものを配布したほうが

早いですかね。

ちなみに現在はv3用になっています。

(v2用のも探せばあるかもですが)

需要あります?

v3のベータリリース予定時期が近づいてきたことでもありますし、

v3が安定版になるまでは、

v3とあまり変わってないあたりを小さくまったりとやっていこうか。


というわけで、今回はタイトルのように

ウインドウのタイトルバーの文字を章ごとに変える”です。


まあ、実際は章に限らなくても、

好きなとこで変えられるんですが。


    ↓WINなら、この部分ですね

タイトルバー








今はsetting.txtで設定したタイトルが表示されています。


これを章のタイトルに変えてみましょう。


やることは簡単。

新しい章の始めの部分に


&Caption = 章のタイトル;


↑を入れるだけです。


v3では、表記が変わっていて、


&Window.Title = 章のタイトル;


になっていますが、

上の書き方もエイリアスとして残っていますので、

v3になってもあまり問題はないでしょう。


&Caption = 第一章 タイトルバーの文字を変える;


タイトルバー02



この命令には、文字型変数も使えます。


たとえば、プレイヤーが名前をつけた登場人物の名前を

章タイトルにした場合、


&Caption = $登場人物Aの文字変数名;


こう書けば、タイトルバーの文字にプレイヤーが入力した

登場人物Aの名前が入るわけです。


マニュアルでは、v2、v3共

動作制御→システム系命令→システム系

あたりになります。

前回、演出というカテゴリーを新たに作ったので、

今回は演出に使える命令を簡単に紹介してみます。


マニュアルでは、

グラフィクス系命令→表示→特殊エフェクトあたりです。

インライン命令の最後のあたりにもあります。


まず、ぶつかったりしたときなんかによく使われる

画面を揺らす命令。


&Shake;


▲画面を上下に10揺らします。


&w=shake&


▲こちらは、上と同じ命令ですが、

インライン命令なので文章中に入れられます。

セリフの途中なんかでタイミングよく入れたいときには

こちらのほうが使い勝手がいいでしょう。


次は&Shake;の詳細設定。


&Shake.Direction = 揺らす方向(0が横、1が縦。省略時設定は1);


▲揺らす方向の設定です。


&Shake.Size = 揺れの大きさ(省略時設定は10);


▲揺れの大きさの設定です。


つまり、左右に20ほど揺れるようにしようと思った場合、


&Shake.Direction = 0;

&Shake.Size = 20;

&Shake;


↑のように書けばいいわけですね。


インライン命令を使う場合も、先に詳細設定をしてから、


&Shake.Direction = 0;

&Shake.Size = 20;

【聡】「ふぁああああ~眠ィ。_&w=shake&わっ、なんだ?」


揺らす命令を文章中に書き入れます。



次はこれも演出には結構よく使われる画面を光らせる命令。


&Flash;


▲画面が白で2回ほど点滅します。

つまりフラッシュですね。


&w=flash&


▲そしてインライン命令。


こちらにも詳細設定があって、


&Flash.Color = フラッシュの色;

&Flash.Size = フラッシュの回数;


この2つで、フラッシュの色と回数が指定できます。



画面を赤で3回ほど点滅させたい場合、


&Flash.Color = #ff0000;

&Flash.Size = 3;

&Flash;


&Flash.Color = #ff0000;
&Flash.Size = 3;

【聡】「ふぁああああ~眠ィ。_&w=flash&わっ、なんだ?」


と、こんな感じで&Shake;と同じような書き方ができます。



今回も命令を並べただけで終わってますね。

画面効果とかもキャプチャではとれないのが寂しいです。

Ver2.64から、画像を読み込む際の位置指定

つまり、命令にposがつくpos型を入れる場所が

変更になってます。


遊戯の月 で配布しているv2用のサンプル1を例にすると


&layer = 1;

&pos = c,t;

&ldcg = /tatie01;

&draw = 702;


v2用なので、私は↑のようにソースを書いたのですが、

Ver2.64以降では、

画像の大きさを見て計算する”ようになったので、

この&pos = c,t;


&layer = 1;

&ldcg = /tatie01;

&pos = c,t;

&draw = 702;

↑のように画像を呼び出した後に入れてください。


centerとかtopとかではなく、

位置指定を数値でしている場合はあまり問題はなさそうなんですが、

(少なくても自分ので試したときは問題なかったです)

もし、Ver2.64以降でいきなり画像の表示位置がおかしくなったと思ったら、

入れる位置を変えてみてください。


詳しくはv3のマニュアル、

文法について→属性について・概略→Pos型: 位置型(Position)属性

にあります。