見出し画像

非プログラマのRen'Pyノート:よく使うスクリプト

ノベルゲームでは最低限欲しい一般的なスクリプト、いわゆる「タグリファレンス」がRen'Py(以下renpy)でもマニュアル等にまとめられてる……はずなのですが、基礎と応用が混ざっているので初心者ことわたくしは新規プロジェクトを作った際、毎回スクリプトを探して彷徨いがちです。

そこで普段使いがちな、特に設定等しなくてもすぐ呼び出して使えるスクリプトを以下にまとめました。

-サンプルファイル名はxxx, yyy, zzz 等と記載します
-標準スクリプトでは拡張子(.png、.mp3等)の記載は必要ありません
-キャラ台詞text表示、ifによる分岐、変数等については「応用スクリプト」で解説

なお、以下何も何も設定しなくても特に使える基本的なスクリプトをまとめたもので、変数を用いたりするものは別途投稿します。


テキスト(文字、選択肢)

label sample_text:
#メッセージボックスにセリフを表示(キャラ名表示なし):
    "ここに文字を入れる"

#テキストを改行(\n):
    "ここに文字を入れる。\n改行しました。"

#クリック待ち({w}):
    "ここに文字を入れる。{w}クリック待ちしました。"

#クリック待ち+改行=段落({p}):
    "ここに文字を入れる。{p}クリック待ちして改行しました。"

#任意の秒数待ったあと、自動的に読み進める:
    "ここに文字を入れる。{w=3.0}文字送りを指定秒数だけ待ちました。クリックすると気づかないよ。"
    "ここに文字を入れる。{p=1.5}文字送りを指定秒数待ち、改行しました。"

#クリック待ちしない({nw}):
    "ここに文字を入れるがクリック待ちしない{nw}"

#文字装飾:
    "こんにちは。{b}太字の装飾はこちら。{/b}"
    "こんにちは。{color=#00ff00}ここは緑色になるよ。{/color}"
    "こんにちは。{i}イタリック(斜体)になるはず。{/i}"
    "こんにちは。{size=+10}10pxデカく表示{/size}したあと、{size=24}24pxで表示。{/size}"
    "こんにちは。{u}下線を引くよ。{/u} "
    "こんにちは。{font=ダーツフォント.ttf}フォントを変更。フォントはgameフォルダに入れる{/font}。"
    "こんにちは。{a=https://renpy.org}リンクを貼るよ。{/a}"

#メッセージボックス「以外」の文字表示:
    show text "その辺に文字を表示します。"

#メッセージボックス「以外」の文字表示で場所を指定したい:
    show text "「:」を入れ改行したあと位置指定":
        xpos 0.5
        ypos 0.5

#メッセージボックス「以外」の文字表示+フェードインで文字を表示:
    show text "その辺に文字を表示します。フェードインするよ。"
    with dissolve
    pause
    show text "クリック待ちされないのでpauseがいるよ。"
    with dissolve
    pause    

#テキストを非表示(表示されたテキストは全部消える):
    hide text

#テキストをフェードアウト:
    hide text with dissolve

#同時に複数のテキストを画面に表示する
    show text "ひとつめのテキストだよ" as text1:
        ypos 0.3
    show text "ふたつめのテキストだよ" as text2:#最後にこのようにつけるとOK
        ypos 0.5
    pause

#消すときはこのようにすると消えるよ
    hide text1
    hide text2
    with dissolve

#選択肢はmenu:で始まります。行頭のインデントを誤ると起動前エラーになるよ:
    menu:
        "どこへ行こうかな?"

        "山":
            "山へ行くことにしよう"

        "海":
            "海へ行こう"

        "一休みする":
            "今日は一休みしよう"
 


画像(背景、キャラ等)

label sample_img:#画像は基本的にimageフォルダに入れてね

#背景を表示(場面を移動したような扱いになる):
    scene bg_inn
    "背景を表示したよ"
    window hide #メッセージボックスを隠す   

#画像を表示
    show xxx
    "xxxを表示したよ"
    window hide #メッセージボックスを隠す   

#場所を指定して表示する
    show yyy at left
    "yyyを左側に表示したよ"
    window hide #メッセージボックスを隠す   

#フェードインさせたい
    show xxx at right
    with dissolve
    "xxxを右側にフェードイン表示したよ"
    window hide #メッセージボックスを隠す   

#フェードアウトさせたい
    hide xxx
    with dissolve
    "フェードアウトしたよ"
    window hide #メッセージボックスを隠す   

#秒数を指定してフェードインアウト ※エフェクトの頭文字が大文字
    hide yyy
    with Dissolve(2.5)
    "秒数指定でフェードアウトしたよ"
    window hide #メッセージボックスを隠す    

#同時にフェードイン・アウトさせる(複数枚の画像に続けてwith+エフェクト)
    show xxx at left
    show yyy #位置を指定しなければ真ん中に表示される
    with dissolve
    "同時にフェードイン・アウトするよ"
    hide xxx
    hide yyy #位置を指定しなければ真ん中に表示される
    with dissolve
    pause #クリック待ち

メモ:sceneとshowとの違い……sceneは場面転換なので変更すると根こそぎリセットされる。例えば、立ち絵とか演出の画像出しててscene変えると非表示になるっぽい。screenで呼んでたものは残ります

音関係(音楽、効果音)

label sample_sound:
#bgmやse(効果音)を再生(音楽はループし、効果音はループしない):
    play music xxx
    play sound yyy
    "音楽と効果音を再生"

 #bgmや効果音をフェードアウト
    stop music fadeout 2.5
    "音楽をフェードアウト"

#音楽を1回だけ再生:
    play music xxx noloop
    "音楽を一回だけ再生"

#seをループ再生させる:
    play sound yyy loop
    "効果音をループ再生"

#bgmや効果音を秒数指定でフェードイン再生
    play music xxx fadein 1.5
    play sound zzz fadein 2.5
    "効果音と音楽をフェードイン再生。再生済みのものは強制的に止まります"

    stop sound fadeout 1.5
    "効果音をフェードアウト"

その他

#「label」は住所とかurl、標札みたいなもの(文頭は空けない)
label zzz:
    "ラベルzzzに来ました"

# 「jump」で、指定したラベルへ瞬間移動する
    "ファイルをジャンプするよ"
    jump yyy

    "ここは飛ばされるよ"

label yyy:
#指定した秒数待つ
    "指定秒数待つよ"
    pause 2.5

#クリック待ち
    show text "クリック待ちするよ。"
    pause

#コメントアウト(備忘メモを入れたいとき)=行頭に
## show xxx
## ↑これは呼ばれない、表示されない
##申し送り事項は、公式だと行頭にふたつ##並べてる    


本稿に記載のスクリプトは、私の手元では動くことを確認済みです。当方非プログラマであるため「動かない、エラーが出る」といったご質問にお答えするのは困難です。しかし、明らかにここが変だよという場合はコメント欄等でお知らせください。

この記事が気に入ったらサポートをしてみませんか?