Ren'Py(レンパイ)とは
Ren'Pyは、
ビジュアルノベルの制作を支援するフリーでオープンソースのゲームエンジンです。特に英語圏で人気が高く、数多くのゲームが制作されています。その名前は「恋愛」ゲームと、開発
言語である
Pythonに由来します。2012年3月には日本語公式サイトも開設され、日本語での情報も入手しやすくなりました。
Ren'Pyの特徴
Ren'Pyには、
ビジュアルノベルに必要な多くの機能が搭載されています。例えば、ストーリーの分岐、セーブ・ロード機能、場面の巻き戻し、様々なトランジション効果などが利用可能です。スクリプトは脚本のような形式で記述でき、
Pythonコードを埋め込むことで機能拡張も行えます。また、著作権侵害を防ぐためのスクリプトの難読化やアーカイブ機能も備わっています。
エンジンの主要部分は
Pythonで記述されていますが、レンダリングなどの処理にはCythonやCも使用されています。スクリプトの解析は一貫して
Pythonで行われ、実行前にコンパイルされます。スクリプト内に
Pythonコードを記述できる一方で、画像やアニメーションの記述にはATL(Animation and Transformation Language)が使われ、可読性の高いコードが書けるよう工夫されています。
Ren'PyはMIT
ライセンスで提供されており、フリーかつオープンソースです。この
ライセンスは比較的緩やかで、プロプライエタリな作品での利用や商用利用も制限されません。
Ren'Pyには多
言語対応機能が組み込まれており、1つのゲームを複数の
言語に翻訳できます。一般的な
ソフトウェアで使われるgettextの代わりに、
ビジュアルノベルに特化した独自のフレームワークが採用されています。
言語の切り替えはユーザーの選択によって行われます。また、表示に必要なフォントもSDKに同梱されているほか、作者が独自のフォントを配布することも可能です。
OpenGLによるレンダリング
画像の変換処理(回転、移動、拡大など)にはOpenGLが利用されており、高速な描画を実現しています。ただし、3D表現には対応していません。
ゲームスクリプトに
Pythonコードを記述できるため、フラグ管理や画面効果の実装など、高度な処理を
Pythonで記述できます。開発者はゲームのロジックに集中でき、ポインタ操作や型付けのような作業から解放されます。
動作環境
Ren'Pyは
Pythonと
Pygameで作られており、Android、iOS、
Linux、macOS、Windowsに対応しています。また、主要な
Linuxディストリビューションの
リポジトリにも登録されています。
文法
Ren'Pyのコードは、
Pythonと同様にインデントが文法的な意味を持ちます。これは、Ren'Pyのコードが
Pythonコードを含むためです。
以下は最も簡単なRen'Pyのコード例です。
renpy
e "Ren'Pyのゲームへようこそ"
このコードは、画面下の会話ウィンドウに「エイリーン」という話し手と「Ren'Pyのゲームへようこそ」という内容を表示します。
Ren'Pyにはキャラクターオブジェクトという概念があり、話し手の名前やウィンドウスタイルを切り替えることができます。
renpy
define e = Character("エイリーン", color="#0f0")
e "Ren'Pyのゲームへようこそ"
上記のコードは、NVLウィンドウ上にキャラクター名を緑色で描画します。
スクリプトには
Pythonステートメントを記述でき、
Pythonのコードを実行できます。
renpy
python:
x = 10
y = 20
z = x + y
print("zの値は", z)
その他の
言語仕様については、公式ドキュメントのLanguage Basicsやクイックスタートマニュアルを参照してください。
Ren'Pyで制作されたゲームの例
Corpse Party D2: Zero Hope
Date Warp
Digital: A Love Story
Analogue: A Hate Story
Don't take it personally, babe, it just ain't your story
Jisei
Kansei
籠の街
かたわ少女
RE: Alistair
Summer Session
ドキドキ文芸部!
脚注
[注釈]
出典
関連項目
NScripter
吉里吉里2
ビジュアルノベル
恋愛ゲーム
外部リンク
公式ウェブサイト
Ren'Py Documentation (日本語)
Ren'Py Games List
renpy - GitHub