忍者ブログ

凪司工房の徒然

お知らせ・小説・ツイノベ・随筆・エッセイなど

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

Ren'Py はじめます。第4回 -魔女の誘惑-




「美しくて危険な魔女の噂を、知っているかい?」

「魔女って……こいつか?」

「誰が魔女よ!」

「わたしが魔女なんじゃけど」

「美しくて、危険? ははワロス」



(記事本編は↓の続きを読むよりお願いします)

拍手[0回]





「本編は2週間ぶりですが、無事にチョコレイト臭い危険日は跨げましたでしょうか? 凪司工房です」

「という訳でブログ企画『Ren'Pyはじめます。』の第4回」


前回のあらすじ:

「あのぉ……魔王様? 魔王様?」
「なに?」
「そろそろ部屋から出てきませんか? 引きこもりの魔王とか、聞いたことないんで」
「どうせボクなんか、ボクなんか……」
「魔王様……」



「折角タイトルにも魔王とあったのに、全くハブられて拗ねちゃったという、何とも可哀想な物語が出来上がった前回でしたね」

「まあ文章と分岐のみでしたが、それでも何となくノベル・ゲームっぽいものを作ってみました」

「今回はいよいよただのノベル・ゲームからビジュアル・ノベルへと進化しますよ」

(でも画像の材料揃えるのが大変だから、あんまり力入れられないかも、なんてことは内緒です)

「では基本は前回のシナリオに、幾つか機能説明の為にイベント・シーンを付け加えて、パワー・アップさせましょう」

(実際に使ったものは補講の第3.5回で人物名を既に定義済みのものです)





STEP1:画像を準備しよう

 ・作品中でどんな画像が必要かを調べる

 ・その際に背景画像、人物画像等、分類して整理しておくといい

 ・画像をフリー素材から借りたり、自分で描いたり、誰かに描いてもらったりして用意する

「まずは使う画像を用意しましょう」

「この時にテスト用の画像として、こんな雰囲気と分かるものを用意しておく方が、製作していく際に便利です」

「というか、最初から美麗な画像を用意出来るのならいいのですが、往々にして綺麗な画像は準備に時間が掛かります」

「そこでサイズや色等の雰囲気が分かるものを用意して、プログラムは先に組んでおくというのがいいのです」

「という訳で、今回必要な画像はこちら」

画像リスト

背景画像 (5枚)
 ・城の中
 ・酒場
 ・宿の部屋
 ・宿の外
 ・魔王の城

人物画像 (7枚)
 ・王様
 ・兵士
 ・勇者
 ・金髪の魔法使い
 ・紫髪の僧侶
 ・宿屋の男
 ・魔王


「この他、小物等の画像も用意する必要があればそれも用意しておきます」

「リストに書き出してみると意外と画像必要だな、ってことが分かると思います」

「多いな、と感じたらどこか減らせるところはあるか等、考えてみましょう」





STEP2:画像を定義しよう

 ・用意した画像ファイルはプロジェクトの「game」フォルダに全て入れて下さい

 ・「script.rpy」の頭の方で「image maou = "maou.png"」等と書いて、ファイルとスクリプト内で使う名前を関連づけていこう

 ・背景に使う画像の場合は「image bg maou_jou = "maou_jou.jpg"」となります

「これは補講の3.5回の方でやった人物名の定義に似ています」

(やってないって人は今すぐ補講の3.5回を見てきて! さあさあさあ!)

「背景用の画像はサイズに気をつけて下さい」

「今回はデフォルトの画像サイズ 800x600 にて作成しています」

「画像は名前を定義していないとスクリプト中では使えません

「なので、画像を使う前には必ず定義するように心掛けましょう」





STEP3:画像を表示しよう

 ・背景画像、人物画像、それぞれを表示させたい画像の名前をまず定義します

 ・画像の名前の定義は「image 画像名 = "ファイル名"」です

「それでは実際にどんな風に書き込んだかは以下を」


# Declare images below this line, using the image statement.←画像定義
# 背景
image bg castle = "img/gyokuza.png"
image bg bar = "img/sakaba.png"
image bg inn = "img/yado.png"
image bg forest = "img/mori.png"
image bg ma_castle = "img/maoujou.png"
# 人物
image king = "img/king.png"
image soldier = "img/soldier.png"
image hero = "img/yusha.png"
image witch = "img/witch.png"
image priest = "img/priest.png"
image innman = "img/yadofu.png"
image maou = "img/maou.png"


「こんな感じですね」

「背景の名前はRen'Pyの基本的な書き方に則って bg name と書いていますが、これは別にどんな風に名づけてもらっても構いません」

「普通に castle とかだけでも使えます。使う時に自分が分かり易いようにしておけばいいのです」

「で、以前は使うファイルは全て game フォルダにぶちこんで下さいと言いましたが」

「それではやっぱり面倒ですよね、使う際に」

(をい)

「少ない分量なら構わないんですが、画像や音声ファイルが増えてくると管理の問題もあるので」

「game フォルダ内に img とか sound とかフォルダを作って、そこにまとめておいた方が無難です

「ただファイルを呼び出す時にそのフォルダ名を頭に付けることに注意して下さい」





STEP4:画像を表示しよう2

 ・名前を定義した画像を使いましょう

 ・画像を表示したいところにそれぞれ以下のように

 ・背景画像の場合「scene 画像名」

 ・人物画像の場合「show 画像名」

「これは例えば城の中のシーンになった時に、こんな風に使います」


scene bg castle # ←ここで背景を「城の中」の画像にする
show king # ←王様の画像を出す


「こういった場合、画像の重なりが心配されると思いますが、Ren'Pyでは背景用と人物用であらかじめレイヤー(層)が分けられています」

「なので使う方は特に気にせず、背景なら scene を、人物なら show を使えばいい、という風になっています」

「画像表示の、これが基本です」

「動かしたり、場所を指定したり、揺らしたり、何か効果を与えたりする場合も」

「これが基本になります」

「で、次はそれをもう少し使えるように、最低限度ですが、付け足した機能を紹介します」





STEP5:画像を表示しよう3

 ・黒背景を使う場合は「scene black」でOK

 ・人物を左右中央にそれぞれ表示しよう

「背景には何もしていない状態だと透明な背景になっています。なので表示すると灰色と白っぽい色の格子模様が表示されますね」

「背景画像を全て用意できれば特に考える必要もないのですが、ちょっとした説明とか、場所移動の場面だとかで、全面黒の背景を使いたいこともあるかと思います」

「自分で黒でべーって塗った背景を用意してもいいのですが、Ren'Pyではそんなことをしなくても、あらかじめ用意がされています」


scene black # ←これで黒背景


「これでその場面の背景は真っ黒になります。簡単ですね」

「それから人物について、ですが」

「ビジュアル・ノベルのようなもので扱う人物画の多くは立ち絵と呼ばれる、膝下からの全身画やバストアップの画像です」

「たくさん登場人物がいる場合は画面に色々と表示したい場面もあるでしょうが、基本的には右側か左側か、程度で済む場面が多いと思います」

「このRen'Pyでは複雑なことを書かなくても、基準となる位置が最初から決まっていて、そこに表示することが出来るようになっています」


show king at left # ←これで左に
show soldier at right # ←これで右に


「at left / right / center とすることで、その画像をそれぞれ左、右、中央に表示してくれます」

(他の場所も指定することが出来ますが、それは補講に回しますね)

「ここまで一気にやってきましたが、大丈夫でしょうか?」

「これでひとまずビジュアル・ノベルっぽくなりましたね」

「という訳で、最後に今回のコードを載せておきます」





STEP6:今回のコード


# You can place the script of your game in this file.

# Setting Japanese
init:
$ style.default.font = "VL-PGothic-Regular.ttf"
$ style.default.language = "eastasian" # 日本語禁則処理

# Declare images below this line, using the image statement.←画像定義
# 背景
image bg castle = "img/gyokuza.png"
image bg bar = "img/sakaba.png"
image bg inn = "img/yado.png"
image bg forest = "img/mori.png"
image bg ma_castle = "img/maoujou.png"
# 人物
image king = "img/king.png"
image soldier = "img/soldier.png"
image hero = "img/yusha.png"
image witch = "img/witch.png"
image priest = "img/priest.png"
image innman = "img/yadofu.png"
image maou = "img/maou.png"

# Declare characters used by this game.←名前定義だよ
define king = Character('王', color="#ff9900")
define soldier = Character('兵士', color="#009900")
define u = Character('勇者', color="#0000ff")
define wiz = Character('魔法使い', color="#ffdd00")
define pre = Character('僧侶', color="#ff00ff")
define inn = Character('宿夫')
define M = Character('魔王', color="#9900ff")

# The game starts here.
label start:
scene black
"この物語は一人の魔王と、一人の勇者の、汗と涙と血と骨と肉の物語である。"
"この国では国民から魔王と戦う勇者を選出し、永きに渡り魔王と戦ってきた。"
scene bg castle
show king at left
show soldier at right
king "次の勇者はこの者だ。探し出してここに連れてこい!"
soldier "承知しました!"
scene black
"こうして第156代目の勇者にあなたは選出されたのである。"
scene bg castle
show king at left
show hero at right
u "えっと、何すか?"
king "お前は第156代目の勇者に選ばれたのだ。さっさと魔王と戦って世界平和を取り戻せ!"
u "えー、そんな面倒な。"
king "もし魔王を倒したらその暁には何なりと望みを叶えよう。"
u "よしわかった。商談成立だな。"
king "では手続きを済ませて、さっさと魔王討伐の旅へ出ろ。"
u "もし俺が魔王を倒して帰ってきたら、まずお前のその命令口調なおしてやっからな。"
scene black
"こうして勇者は旅の準備をしに酒場へ向かった。"

jump sakaba

label sakaba:
scene bg bar
"酒場にやってきた勇者だったが、そこで勇者は二人のよく知る女性を見かける。"
"一人は今付き合っている彼女の金髪の魔法使いだ。"
show witch at left
"もう一人は寂しそうにバーカウンターに座っている元彼女の紫髪の僧侶。"
show priest at right

"あなたはどちらに話しかける?"
menu:
"今の彼女の金髪の魔法使い":
hide priest
$ girl_friend = 1
jump ima_kano
"昔の彼女の紫髪の僧侶":
hide witch
$ girl_friend = 2
jump moto_kano

label ima_kano:
show hero at right
u "飲みにくるなんて珍しいな。"
wiz "あんた、私を置いて旅に出るつもりだったんでしょ?"
u "危険な旅に連れてけないよ。"
wiz "この前ずっと一緒にいようって言ってたじゃない!"
u "酔ってたんだよ。"
wiz "死ぬ時は一緒だから。"
u "何言うんだよ、縁起悪いな。"
wiz "私、一緒に行くから。"
"魔法使いが仲間になった!"

jump trip1

label moto_kano:
show hero at left
u "久しぶり、だな。"
pre "あ……。勇者に選ばれたんだよね?"
u "ああ。世界を救うことになっちまった。"
pre "あの頃言ってたホラが、叶っちゃったね。"
u "最近はどうなんだよ?"
pre "どうって……別に。"
u "また悪い男につかまってんじゃないのかよ。"
pre "だったら何?"
u "もうやめろよ、そういうの。"
pre "じゃあ、勇者と一緒に冒険の旅に出ちゃおうかな。"
u "……いいぜ。"
pre "ほんとに? ほんとのほんと?"
u "ああ。"
"僧侶が仲間になった!"

jump trip1

label trip1:
scene black
"勇者は仲間と共に魔王討伐の旅に出かけた。"
"行く先々で魔王の配下に苦しめられている町や村を救いながら、進んだ。"
"とある村に泊まった夜のことだった。"

jump shuraba

label shuraba:
if girl_friend == 1:
jump shuraba_imakano
if girl_friend == 2:
jump shuraba_motokano

label shuraba_imakano:
scene bg inn
show witch at left
show hero at right
u "何だよ、話って?"
wiz "あのね……アレが、ないの。"
u "何か前の村に忘れ物か?"
wiz "ソレがさ、きちゃったみたいなの。"
u "忘れ物が? 歩いてきたのか?"
wiz "お前の赤ん坊が出来たって言ってんだよ!"
u "えっと……マジか?"
wiz "結婚する? ねえ結婚しちゃう?"
menu:
"はい":
scene black
"翌日、勇者と魔法使いは村で小さな式を挙げた。"
"こうして二人は冒険の旅から新婚旅行へとその目的を切り替えた。"
jump ending
"いいえ":
scene black
"翌日、勇者の撲殺死体が発見された。"
"犯人は見つかっていないが、王国では既に次の勇者選考が行われているそうだ。"
jump ending

label shuraba_motokano:
scene bg inn
show hero at left
u "あれ? 僧侶どこ行ったんだ?"
scene bg forest
show priest at right
show innman
"勇者が宿の外に出てみると、そこでは僧侶と宿屋の息子が抱き合っていた。"
show hero at left
u "おい! 何してんだ!"
pre "あ、勇者。ごめん……。"
u "ごめんじゃなくて何か言えよ。"
inn "彼女は悪くない。オレが、宿屋を継がずにいれば……。"
pre "彼と、付き合ってたの……。"
u "ごめんじゃなくて何か言えよ。"
inn "……。"
pre "……。"
u "何なんだよ! これじゃ俺が悪者じゃないか!"
"宿屋の息子をぶち殺しますか?"
menu:
"はい":
scene black
"宿屋の息子は意外と強かった。"
"敗れた勇者は一人寂しく、傷心の旅へと出かけたが、"
"勇者のその後を知る者は誰もいない。"
jump ending
"いいえ":
scene black
"翌朝、勇者はひっそりと村を出て行った。"
"僧侶と宿屋の息子の毒殺死体が見つかったが、その犯人はまだ見つかっていない。"
jump ending

label ending:
scene black
"一方その頃、魔王の城では……"
scene bg ma_castle
show maou
M "勇者君まだ来ないの? もう待ちくたびれちゃったよお。"
"魔王はそのあまりの退屈さに一億と三千二百六十四回目の欠伸をかみ殺した。"

"END"
return


「そしてこっちは今回使った (自作のてけとーに描いた) 画像たちが収められた ZIPファイルです」

「解凍ソフトにて解凍して下さい」

↓↓↓
Kouza4.zip

(imgフォルダとそのフォルダ内に12枚の画像ファイルが入っています)


「画像を使い始め、見た目のことを考えるようになると、時間はどんどん奪われていきます」

(HP製作とかした経験がある方なら理解出来ることでしょう!)

「ビジュアル・ノベルを作ろうという方なら、ビジュアルに拘りがあるのは当然のことで、微妙な表示位置であったり、色合いであったり、タイミングであったり……等々、細かな調整に本当に時間が奪われます」

「ですが、そういったことにばかり時間を割いていても、なかなか仕上がりませんので、」

「ある程度は妥協や諦めも必要ですね」

「今回の講義では画像表示の効果あたりにまで手をつけようと書き始めましたが、あまりに長くなってしまう為、そっちは補講か次回に回すことにしました」

「やればやるほど、知れば知るほど面白くなってくるけれども、それと同時にどこまでやるのか、という苦悩も増えてしまいますね」

「ああ。誘惑って恐ろしいわ」

「という訳で次回予告!」


『第5回 -君に会いに行く-』


「自分から動かなきゃ……愛なんか手に入らないんだよ」




「の補講 第6.5回」
「第6回 -俺の鼓動が聴こえるか?-」
「の補講 第5.5回」
「第5回 -君に会いに行く-」
「第4回 -魔女の誘惑-」
「の補講 第3.5回」
「第3回 -出会いと別れ-」
「の補講 第2.5回」
「第2回 -そんな話は聞いてない-」
「の補講 第1.5回」
「第1回 -魔王現る-」
「第0回 -1人の敗者-」
PR

コメント

コメントを書く

お名前:
タイトル:
文字色:
メールアドレス:
URL:
コメント:
パスワード:   Vodafone絵文字 i-mode絵文字 Ezweb絵文字

カレンダー

04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

プロフィール

HN:
NAGI Tsukasa WORKS
性別:
男性
職業:
不詳
趣味:
小説、妄想、読書、音楽、(料理)

フリーエリア

カテゴリー

最新記事

最新CM

リンク

最新TB

バーコード

RSS

ブログ内検索

アーカイブ