凪 「
Ren'pyはじめます。 の
補講です」
「こちらでは本編では悠長に触れていられない、Ren'py のプログラム的な話や、やや突っ込んだ内容についての講義であったり、また参照記事であったりを書いていきたいと思います」
「という訳で、補講を読まれる方は ↓続きの記事からお願いします」
[0回]
1.1<TABはタブー>「まず最初に覚えておいてもらいたいのは Ren'Py のベイスは
Python という言語です」
「この Python はオープンソースのオブジェクト指向プログラミング言語で多くのプラットフォームで動かすことが出来るのですが、プログラムの可読性を高める為に、少し変わった仕様になっています」
「それは
インデントがプログラムソースに組み込まれている ということです」
「それで本編でも注意点として書きましたが、
TABがタブー です」
「はい、そこ苦笑しない」
「エディタで空白が表示されるよう設定してあると分かると思うのですが、Ren'Py のファイルには半角スペイスが並んでいます、TABでは無く」
「プログラムを普段書いている人は慣れるまでちょっと面倒かも知れませんね」
1.2<全てのファイルで一つのプロジェクト>「次に、Ren'Py のランチャーからプロジェクトを作成すると、出来上がったフォルダは以下のような構成になっていると思います」
--------
[NewProject]
[game]
・bytecode.rpyb
・options.rpy
・options.rpyc
・screens.rpy
・screens.rpyc
・script.rpy
・script.rpyc
・README.html
--------
「また、一度でもプロジェクトを起動すると[temp]フォルダが加えられます」
「
.rpyというファイルはRen'Pyが読み込むRen'Py用のスクリプト・ファイルで、.rpycはそこから作り出される中間コード (※Pythonでも同じように.pycが作られ、二回目以降の処理速度を上げてくれる) ファイルです。bytecodeも別のコードとして処理された、処理速度向上の為のファイルのようです」
「基本的に.rpyと拡張子のついたファイルは全て一つのものとして処理される為、第2回以降で述べるラベルや変数名等は
全体で被らないように命名するのが原則となります」
1.3<ラベル start から全てが始まる?>「最初に用意されている.rpyファイルについて簡単に説明しておきます」
「まず
options.rpy ですが、ゲームのウインドウ・モード時のサイズや音の使用不使用、メニュー類のトラジションの設定、Saveファイルのフォルダ、初回起動時の動作等、基本的な設定に関係したコードが記述してあります」
「最初はほぼ触らなくても良いものばかりですが、細かな調整をするようになると、頻繁に手を入れることになるかも知れません」
「次は
screens.rpy です。これは名前の通り、画面関連の設定が書いてあります」
「大半がメニュー関連の設定についてですが、ダイアローグの表示画面や、選択肢の時の画面、またノベルモードというモードがRen'Pyにはありまして、その設定等についてもここに記述されています」
「画面やメニューで個性を出そうとすると、結構理解しないといけない部分だと思いますが、最初は触らないで基礎的なことを覚えるようにした方がいいです」
「そして
script.rpy です。最初の内は原則これのみに色々と書き込んでいきましょう。作品の本編についてはここに記述します」
「この script.rpy 中の
label start: から”ゲーム”は始まります」
「ただ始まると言っても、Main Menu の Start を押した際にここに処理が移る、という意味なのですが、最初の内は原則ここから本文を記述していくものだと思って下さい」
1.4<スクリプトの構成>「Ren'Py のスクリプトの組み方、記述の仕方は大きく分けると三段階に分かれています」
(1) 定義
(2) 処理関数
(3) 本文
「これらの名前は今私が適当に付けたものですが……どのプログラムでもだいたいこんな感じだと思います」
「まず
定義の部分。読み込む画像や音、音楽ファイルの指定から、ゲーム内で使う変数についての定義、あとはフォントや人物の定義なんかでしょうか」
「Ren'Py でやや特殊なのが、本文中で使うワードにImageファイルなどを関連付けておくということです」
「たとえば」
----------------
image Nagi Ikemen "nagi_ikemen.png"
image Nagi Normal "nagi_normal.png"
----------------
「こんな具合に”人物名+表情”のような形でImageの名前をつけておくように推奨されています (別にどんな名前をつけようと構わないが)」
「ビジュアルノベルの多くでは、画面に表示された人物は何パタンか表情が用意されていて、それを喋る台詞によって変えたりするので、それに対する配慮がなされているようですね」
「次に
処理関数。これは別にどこに記述しておいてもいいのですが(全部を読み込んで中間コードに変更してしまうので)、例えば雪を降らせたり、花びらを舞わせたり、そういった処理をするのは、Python でコードを書いたりする訳ですが」
「Ren'Py のwikiからは、それらのコードを集めたCookbookなんてものがあるので、大半の人は自分で書くよりはそっちを使う訳です」
「大規模なものになると、別のrpyファイルにそれらをまとめたりすると思いますが、慣れるまではscript.rpyの冒頭に記述しておいた方がいいと思います」
「それから一番大事な
本文ですが、これは作る人の数だけ色々な形があると思います」
「ただ基本的な書き方としては」
----------------
label XXXX:
man "なんだってんだよ"
woman "うっさいわね、バカ"
"男はその言い方が可愛かったのでつい笑ってしまった"
----------------
「こんな風に台詞や地の文が中心で、その間に分岐処理や条件処理が加わるような形だと思います」
「複雑なことさえしなければ、Ren'Pyでは標準で簡単にやれるようになっていますので、それについては今後の本編と補講にてやっていきますね」
「こんなところで、Ren'Pyはじめます。の第1回補講でしたが、如何だったでしょうか」
「補講では基本的に本編の内容を細かく解説したり、フォローしたりといったものが中心になると思います」
「なのでFAQや辞書的な使い方は出来ませんが、Ren'Pyを使っていく内に行き詰まるような場面が多々出てくると思いますが、その時に多少役に立ちそうな知識について、ここでフォロー出来ればいいなと思っております」
「まだまだRen'Py歴は浅いですが、お答え出来ることがあればしていこうと思ってますので、こちらへのコメントでも何でもお気軽にお寄せ下さいませ」
「それでは、また本編で……」

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