Ren'Py
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2016/10/22 19:17 UTC 版)
![]() |
|
![]() Ren'Pyによって作られたシーンの例
|
|
作者 | PyTom |
---|---|
初版 | 2004年8月24日 |
最新版 | 6.99.10 - 2016年3月24日[1][±] |
プログラミング言語 | Python, Cython, C |
対応OS | Android、iOS、Linux、Mac OS X、Windows |
対応言語 | 任意の言語(UTF-8) |
サポート状況 | 開発中 |
種別 | ゲームエンジン (ビジュアルノベル) |
ライセンス | MITライセンス (部分的にLGPLなどを含む[2]) |
公式サイト | www.renpy.org |
Ren'Py(レンパイ)は、ビジュアルノベルの制作を容易にするフリーソフトウェアエンジンである。NScripterのような他の有名なビジュアルノベルエンジンとは異なり、Ren'Pyは英語圏で多く用いられており、300以上のゲームが英語で製作されている[3]。Ren'Pyの名前は、「恋愛」ゲームと、エンジンの開発言語であるPythonに由来している。2012年3月より、日本語のサイトが開設された。
目次
特徴
Ren'Pyには、多くのビジュアルノベルで必要とされる機能が含まれており、ストーリーの分岐、ゲームのセーブやロード、前の場面へのロールバック、様々なトランジションなどがある。Ren'Pyのスクリプトは脚本に似た構文で書かれ、追加的にPythonコードのブロックを含めることで独自の拡張機能を実装できる。さらに、ゲームの配布においてスクリプトを難読化・アーカイブすることで著作権侵害を軽減させるためのツールが含まれている。
ゲームエンジンは主にPythonで書かれているが、レンダリング処理などはCythonとCで書かれている。スクリプトの解析などは一貫してPythonが使われており、スクリプトはゲームの実行前にコンパイル済みのコードに変換される。スクリプト中にはPythonのコードを埋め込むことができる一方で、画像の描画やアニメーションの記述に用いられるATL(Animation and Transformation Language)は英語の構文に似ており、スクリプトの可読性が高い。
国際化対応
Ren'Pyに含まれている機能を用いることで、1つのゲームを多言語に翻訳することができる。より一般的なソフトウェアではgettextなどが用いられるが、Ren'Pyではビジュアルノベルに適した独自のフレームワークに基づいて設計されており、ユーザーの選択によって言語が切り替わる。
OpenGLによるレンダリング
画像の変換操作(回転・移動・拡大等)にはOpenGLを利用しており、描画の高速化を図っている。一方で、三次元効果には対応していない。
Pythonによる拡張
ゲームスクリプト中にはPythonのコードを記述できる。ゲームの開発者は、ストーリーの分岐に欠かせないフラグの管理をPythonのコードとして記述する他、Ren'Pyに含まれていない画面効果などを実装できる。プログラムの記述に一貫してPythonを用いることで、ゲーム開発者はポインター操作や変数の型付けといった、ゲームストーリーの製作とは直接関係ないことに割く時間を減らすことができる。
動作環境
Ren'PyはPythonとPygameによって作られており、公式にAndroid、iOS、Linux、Mac OS X、Windowsでの動作がサポートされている。また、Arch Linux、Ubuntu、Debian、Gentooのリポジトリに取り込まれている。
文法
Ren'Pyのコードは、その開発言語のPythonと同じように、字下げレベルが文法的意味を持っている。この理由の一つは、Ren'PyのコードがPythonのコードを含むからである。以下に、最も簡単なRen'Pyのコードを示す。
label start:
"エイリーン" "Ren'Pyのゲームへようこそ"
上記のコードは、画面下の会話ウィンドウに、話し手として「エイリーン」を、話す内容として「Ren'Pyのゲームへようこそ」を表示する。
Ren'Pyの特徴の一つにキャラクターオブジェクトが存在する。キャラクターオブジェクトは内部的には関数として機能し、話し手の名前やウィンドウスタイルの状態などはキャラクターオブジェクトによって切り替える。
define e = Character("エイリーン", color="#0f0", kind=nvl)
label start:
e "Ren'Pyのゲームへようこそ"
上記のコードは、NVLウィンドウ上にキャラクター名を緑色で描画する。
スクリプト中にはpythonステートメントを含めることができ、この内部では任意のPythonのコードを実行できる。次に、Pythonのコードを含む例を示す。
label start:
"エイリーン" "Pythonコードを実行します。"
python:
some_function() # 任意のPythonコード
"エイリーン" "実行しました。"
その他の言語仕様については、Language Basics や クイックスタートマニュアル で説明されている。
Ren'Pyで作られたゲームの例
- 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
関連項目
外部リンク
脚注
- ^ “Ren'Py 6.99.10”. 2016年5月13日閲覧。
- ^ License — Ren'Py Documentation
- ^ List of Ren'Py games
|
- Ren'Pyのページへのリンク