Nyaatrap

アダルト百合ゲー開発ブログ。一部記事は18歳未満閲覧禁止です。

Home どれぱら デーモンマスタークリス 商用ゲーム フリーゲーム

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Ren'py で Tilemap を使う

見下ろし型のシミュレーションやRPGなどでよく使われる、タイルマップを表示するシンプルなコードです。タイルマップは多くの2Dゲームエンジンに標準で搭載されていますが、ren'py にはなかったので加えました。
続きを読む

Ren'py で登録した Image のリストを取得する

標準で機能が実装されましたので本記事は不要です。

renpy.display.image.images.keys() で、ゲームに image で登録したリストを参照できます。これを利用すればギャラリーを作る時に手間が減るんじゃないかと。

Ren'py に自動送り機能のショートカットキーをつける

以下のコードを適当なスクリプトにを加えれば出来ます。この例ではAキーを使ってます。他のキーについてはこちらのドキュメントを参照してください。http://www.renpy.org/doc/html/keymap.html

init python:
config.underlay.append(renpy.Keymap(toggle_afm = Preference("auto-forward", "toggle")))
config.keymap["toggle_afm"] = 'a'

この方法を応用すると、様々な独自のキーを増やすことができます。
スクリーンでもキー設定が可能ですが、スクリーンではその都度表示設定を変える必要があったり、トランジション中などに効かなくなるなどの不都合があります。アンダーレイの場合には恒常的に通用します。

Ren'py のバージョンと近年加えられた新たな機能、及び将来の展望

Ren'py は開発が早く、数年前のチュートリアルなどは通用しないものが多くあります。
また将来どのように発展していくかも不明瞭なので、フォーラムやツイッターで読んだ情報を元に簡単にまとめてみようかと思います。

1: Ren'py のバージョンについて
Ren'py は 6.99.6.715 のように、小数点で4つに区切られたバージョン表記がされています。この最後の .715 は開発版にのみ使われる Github のコミット数なので、無視して構いません。
さて、最初の 6 がメジャーアップデートにみえますが、実はちょっと違います。機能追加などの更新は次の .99 の部分で管理されています。 Ren'py は幾つかの機能をまとめてながら、次の .99 の部分で頻繁に更新しているため、どこがマイナーでメジャーかという区別がありません。
過去のアップデートを見ると、ren'py6 の最初のバージョンは、最後の ren'py5 のロゴ違いのようです。つまり、前のバージョンは次のバージョンのβ版にあたり、十分に安定したときに次のバージョンに移行すると思われます。
現在のバージョンは 6.99.6 ですが、これは ren'py7 のベータ版という意味でつけられたのでしょう。3つ目の .6 は基本的にバグ修正ですが、 6.99 に関しては機能追加や変更が頻繁に行われており、 同じ 6.99 でも違いが多くあります。

2: Ren'py 6.12 以降で追加・変更された機能
Ren'py は 6.11~12 でスクリーンシステムが導入されて、それ以前のレイアウトを選ぶバージョンとは、カスタマイズの方法が大きく異なっています。困ったことに、Ren'py Wiki の情報は 6.10 以前のバージョンを中心に作られているため、参照すると間違いを誘発する事態となりかねません。常に現在のバージョンのドキュメントを先に参照するようにしたほうがいいでしょう。
・6.12 テンプレートに screen.rpy を追加。これによって、GUI カスタマイズの方法が過去のバージョンとは別物になりました。アンドロイド作成も可能に。
・6.13 スクリーンにスタイルシステムを導入。"[variable]"形式でテキストに変数を表示可能に。 OpenGL が使えない/バグる環境に対し、DirectX にも対応。
・6.14 ランチャーが現在の6.99と同じものに変更。デフォルトのテキストエディタも Editra に変更。
・6.15 現在の翻訳システムが完成し、チュートリアルゲームが日本語でもプレイできるようになった。
・6.16 アンドロイド用ゲームの作成が簡単になった。セーブデータにJSONでも記述を加えられるようになった。日本語のドキュメント・テンプレート・ランチャーが追加。イメージギャラリー・ミュージックルーム・ボイスプレイ などに、日本のノベルゲームでよくある細かい機能が追加(このあたりは追加した当人である赤恐竜さんが詳しい)。
・6.17 Python を使わずスタイルを定義できるように、スタイルシステム用の言語を導入。トランジション中のウィンドウ表示のコントロールなどの機能の追加。
・6.18 スクリーンのパフォーマンスを大幅に改善し、RPGのとかSLGでも重くならなくなった(デーモンマスタークリスはほんとに重かった)。
・6.99.0 API を Pygame_SDL2 に変更。テキストの日本語入力も可能に。他、 iOS用のパッケージング。Steamの拡張機能など。また、公式には表記されていないけれども、全体のパフォーマンス、特にOpenGLでのメモリ消費量が改善。ただし、Pygame など幾つかの互換性が失われています。
・6.99.2 image ディレクトリーに画像を放り込んだら勝手に読み込んでくれるようになった。
・6.99.4 default ステートメントの導入など。
・6.99.5 事前にバイナリー化したデータをキャッシュする事によって、起動速度を大幅に向上。ポーズやスキップの操作など細かい機能も幾つか追加。
・6.99.6 (まだ開発版)。ゲームウィンドウサイズに応じて、フォントのレンダリングを変えてどの拡大率でもブラウザのようにシャープに表示されるようになった。480pのゲームを1080pに拡大しても、フォント部分は鮮明に表示されます。ただし、画像は Bilinear なので、かなりボケますが。

3:これから予定されている機能
・デフォルトのインターフェイスの変更。 Theme を廃止し、別の方法を使う模様。
・Python2 から Python3 へ。
・OpenGL2.0 のピクセルシェーダーに対応。
・Live2D や E-mote のような2Dアニメーションのサポート。ただしもっと柔軟なもの。

Ren'py についての概略は、 Ren'py7 登場時にまとめてみようかと思います。今は記事書いても数ヶ月で古くなるので。

Ren'pyでタイトルメニューからスムーズにゲームに繋げる方法

いつの間にかデフォルトでできるようになってました。
ゲームを開始した後、with dissolve などを新しい行に入れればOKです。

Ren'py はタイトル画面からゲームをスタートする時、画面がトランジション無しで切り替わる上に、音楽もフェイドせずにブチッと切れます。これはかなりダサいので、プログラムをいじらずに簡単に何とかマシにする方法を考えてみました。

まずタイトル画面からゲームをスタートした場面の画像にスムーズにトランジションする方法。これはスタートした一番最初に、タイトル画面と同じ画像を置きます。あとはそれをトランジションするだけです。

次に音楽をフェイドさせる方法。これは、メインメニュースクリーンのスタートボタンに、 Stop アクションを加えます。例えば

screen main_menu():
....(省略)
textbutton _("Start") action [Stop("music", fadeout=1.0), Start("start")]

label before_main_menu:
scene titile_screen with dissolve
return

label start:
scene title_screen with None
scene bg my_room with dissolve

こんな感じです。 ちなみに screen before_main_menu はタイトルメニューが始まる前に実行されるラベルで、ここで画像などをゲーム中と同じスクリプトで表示できます。(昔の Ren'py はスクリーンがバグだらけで、これを使わないとタイトルメニューの動的演出が困難でした。今はちゃんと動きますが、ラベルを使ったほうが安定します。)
前のページ 次のページ

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。