Ren'PyNScripterRen'Py300[3]Ren'PyPython20123
Ren'Py
Ren'Pyによって作られたシーンの例
作者 PyTom
初版 2004年8月24日 (19年前) (2004-08-24)
最新版 8.2.3[1] ウィキデータを編集 - 2024年6月18日 (22日前) [±]
リポジトリ ウィキデータを編集
プログラミング
言語
Python, Cython, C
対応OS AndroidiOSLinuxmacOSWindows
対応言語 任意の言語(UTF-8)
サポート状況 開発中
種別 ゲームエンジン (ビジュアルノベル)
ライセンス MITライセンス (部分的にLGPLなどを含む[2])
公式サイト www.renpy.org ウィキデータを編集
テンプレートを表示

特徴

編集

Ren'Pyには、多くのビジュアルノベルで必要とされる機能が含まれており、ストーリーの分岐、ゲームのセーブやロード、前の場面へのロールバック、様々なトランジションなどがある。Ren'Pyのスクリプトは脚本に似た構文で書かれ、追加的にPythonコードのブロックを含めることで独自の拡張機能を実装できる。さらに、ゲームの配布においてスクリプトを難読化・アーカイブすること(配布物のビルド)で著作権侵害を軽減させるためのツールが含まれている。

ゲームエンジンは主にPythonで書かれているが、レンダリング処理などはCythonとCで書かれている。スクリプトの解析などは一貫してPythonが使われており、スクリプトはゲームの実行前にコンパイル済みのコードに変換される。スクリプト中にはPythonのコードを埋め込むことができる一方で、画像の描画やアニメーションの記述に用いられるATL(Animation and Transformation Language)は英語の構文に似ており、スクリプトの可読性が高い。

ソフトウェアライセンス

編集

Ren'PyMIT使[1]

多言語対応

編集

Ren'Py1gettextRen'Py

SDKL3[4]

OpenGLによるレンダリング

編集

画像の変換操作(回転・移動・拡大等)にはOpenGLを利用しており、描画の高速化を図っている。一方で、三次元効果には対応していない。

Pythonによる拡張

編集

ゲームスクリプト中にはPythonのコードを記述できる。ゲームの開発者は、ストーリーの分岐に欠かせないフラグの管理をPythonのコードとして記述する他、Ren'Pyに含まれていない画面効果などを実装できる。プログラムの記述に一貫してPythonを用いることで、ゲーム開発者はポインター操作や変数の型付けといった、ゲームストーリーの製作とは直接関係ないことに割く時間を減らすことができる。

動作環境

編集

Ren'PyはPythonPygameによって作られており、公式にAndroidiOSLinuxmacOSWindowsでの動作がサポートされている。また、Arch LinuxUbuntuDebianGentooのリポジトリに取り込まれている。

文法

編集

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で作られたゲームの例

編集

脚注

編集

注釈

編集


(一)^ Ren'Py LGPL使

出典

編集
  1. ^ "Release 8.2.3"; 閲覧日: 2024年6月24日; 出版日: 2024年6月18日.
  2. ^ License — Ren'Py Documentation
  3. ^ List of Ren'Py games
  4. ^ renpy / renpy ・ GitHub

関連項目

編集

外部リンク

編集