積雲が映像制作したMV『RANGEFINDER』公開中
専門88IO

【Ren’Py】Pythonで始めるノベルゲーム制作1 導入と所見

専門

ブログ内でのノベルゲーム制作に両足突っ込んで足湯することになったのでゲームエンジンについて調べることに。

吉里吉里やティラノスクリプトも候補にあったが、自分はPythonなら書けるのと環境がLinuxであるということでRen’Pyが最有力となった。

このエンジンを用いたノベルゲームの代表作のひとつはDoki Doki Literature Club (DDLC)。このゲームで表現できることなら何でも出来るはず

今回は備忘録を兼ねて導入方法と所見を書くことにした。

スポンサーリンク

ダウンロード

こちらからダウンロードできる。

The Ren'Py Visual Novel Engine

Linux環境では実行権限周りがややこしい。一通りのファイルに実行権限を付与した。

chmod -R +x launcher renpy gui lib module renpy.py renpy.sh

パッケージマネージャからも導入できるが、各プラットフォームに対応したパッケージ化を見据えるとお薦めできない。ビルド用の追加パッケージは自動でダウンロードされるが、システムフォルダ下だと管理者権限を要してしまう。

sudo pacman -S renpy
スポンサーリンク

日本語化

Preferences(設定)から変更するだけ。めちゃ簡単。

加えて中華アプリによく見られる自動翻訳っぽさがないのも高印象。

テキストエディタ

Atomエディタが推奨されているが、比較的使い慣れているVSCodeのOSS版を使うことにした。

“Ren’Py Language”という拡張機能があり、.rpyファイルのシンタックスハイライトやスニペット機能が提供されているため現状で不便なところは見当たらない。

ただし、Ren’Py Launcherの設定からはAtom, Edhitra, jEditしか指定できないため、.rpyファイルの規定エディタにVSCodeを登録する必要がある。

ドキュメント

完全に日本語に翻訳されたドキュメントが存在する。とっつきやすそう。

Ren'Py のドキュメントにようこそ! — Ren'Py Documentation

また、実行環境であるRen’Py LauncherにTutorialプロジェクトが用意されているため、Ren’Pyの機能を動かしながら学ぶことができる。

ただ、動画形式のチュートリアルが少ないのが難点か。

こちらのブログがとても参考になる。プラグインも多数提供されている。

Ren’Py – akakyouryuu

スクリプト

スクリプトはgame/script.rpyに記述する。テキストの他に画像や音楽等の操作、トランジェクションもここで行う。ラベル単位でのジャンプも可能だ。

仕様上全ての.rpyファイルが読み込まれるため、ファイルを分割する際に明示的なimport宣言をする必要はないらしい。

しかし、どのファイルに移動するか分かりづらくなるため、ファイル名はラベル名と一致させた方が良さそう。

画像は変数で登録して用いるのではなく、用途別に定められたファイル名にすることで利用できるのが印象的。(side A.pngとかbg office.pngとか)

Ren’Py Launcherのアクション

Ren’Py Launcherはプロジェクトの起動/デバッグの他にも翻訳生成や台詞抽出の機能がある。比較的容易に多言語対応できるらしい。

DDLCが日本で流行ったのもRen’Pyの移植性の高さに起因しているのかもしれない。

ビルド

Windows / Macintosh / Linux / Android / iOS / Webに対応している。全部じゃねえか。控えめに言って神機能。

game/options.rpyを以下のように編集すれば、指定ファイルのアーカイブもできるらしい。デフォルトでは画像や音楽, スクリプトが秘匿されていないことに注意。

# スクリプトファイル
build.classify('game/**.rpy', 'archive') 
# 画像ファイル
build.classify('game/**.png', 'archive')
build.classify('game/**.jpg', 'archive')
build.classify('game/**.jpeg', 'archive')
# 音声ファイル
build.classify('game/**.mp3', 'archive')
build.classify('game/**.wav', 'archive')

あとがき

一通りの機能を調べてみたら、より興味を持ってしまった。

PC向けであればDDLCのような面白い実装もできそうだ。筆者に技術がないけれど。

UIの装飾やアニメーションに関しては無知なので追々調べていこうと思う。

続き

【Ren’Py】Pythonで始めるノベルゲーム制作2 変換とスプラッシュスクリーン
前回Ren'Py Launcherの導入、またドキュメントを読んで所見を書いた。 今回は実際にスクリプト作業を頼まれたので、実装に伴って新しく知った機能について一部まとめることにする。 サイドイメージの表示 あるキャラクターが話す時、メッセ...
【Ren’Py】Pythonで始めるノベルゲーム制作3 左クリックの無効化
スプラッシュ・スクリーンや各章の節目等でアニメーションを跳ばせないようにしたい部分が出てきた。 Pauseトランジションの引数にhard=Trueを加えればよいのかと言えばそうでもなかったので、今回は一時的なキーマップの無効化について記載す...

コメント

タイトルとURLをコピーしました