忍者ブログ
はじかきれんしゅうちょう いろいろ
Admin  +   Write
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

◆完全に自分用な気がしないでもないですが
一回作ったプロジェクトを元に、次のプロジェクトを作るとき
一部引き継いで便利にするための内容です。
(おそらく行数とか文字の大きさとか同じ感じで行くので)

そもそもデフォルトからいじったとこをもっとわかりやすく
メモっとけばこんなこと書く必要なかったんですが! 
昔の自分の残念さを嘆いてもしょうがないので今メモします。

読む人におかれましては、デフォからここをいじれば
このゲームになるよみたいなご参考に。(いや宣伝じゃないよ
っていうかこんな人を選びかねない例で例にするなよ私)

◆カラーテーマについて
新規作成するときカラーテーマとか設定するんですけど、
あれは画像ファイルで生成されるので変えたい人は差し替えてねって感じでしょうね。
流石にカラーコードぶっこめばUIが全部いい感じに変わってくれるとかではないみたい。


◇script.rpy
→初期設定ではないけど、よく使うスクリプトをメモっとこうの巻。
<設定系>おそらくこのファイル以外のとこに書いても
#①キャラ名設定
define w = Character('キャラ名1', color="#d7b6e9")
define k = Character('キャラ名2', color="#c8ffc8")
define m = Character('キャラ名3', color="#c8c8ff")
#→名前テキスト(ネームプレート)が指定した色になり、キャラ名nと表示される

#②立ち絵スムーズ表示スクリプト
transform smooth:
    on show:
        alpha 0.0
        linear 0.5 alpha 1.0
    on hide:
        alpha 1.0
        linear 0.5 alpha 0.0
#→出る時、消える時のトランジションです。
#(何を指定してるのかよくわからない のはナイショ)
#③場所指定(瞬間移動)        
transform left2:
    xpos 0.1
#→立ち絵の座標ポジションを増やしています。at 〇〇みたいな風に使います。
#→(例ではat left2)


<スクリプト>
label start:
#任意の名前 label 〇〇
label barashi:


#背景表示(scene 〇〇) 
    scene black
#背景表示(真っ黒にしてからbg3をフェードで入れる)
    scene black
    with dissolve  
     
    scene bg03
    with fade 

#音楽(例だと、フォルダはgame/bgmの中)
##BGM(自動でループ)流す
    play music "bgm/wind.ogg"
##BGM止める
    stop music fadeout 3.0
##SE(一回流れるだけ)
    play sound "bgm/se3.ogg" 

#立ち絵表示(aa1として登録している場合) ※変わるときも同じ(本当か?)
 #at top=座標は上からポジショニングで、,smooth=②立ち絵スムーズスクリプトによる。)
    show aa1 at top, smooth
##立ち絵消す(表情変化でこの場面中にaa1とaa3を使用したと仮定)
    hide aa1
    hide aa3 at top, smooth

#テキスト
##セリフ(①のdefine ◯ ←ここに入れたやつで、◯"ここにセリフ" ←こんなかんじ)
##ネームプレートなしもできます。
    k "かしこまりました。少々お待ちください。"
##ルビ(※screen.rpyにいくらか式を記述しておく必要があります。後述)
    w "{rb}支配人{/rb}{rt}オーナー{/rt}を呼んでくれるかしら。"

#終わる時→return でゲームを終了します。
    return


◇gui.rpy

・カラー→最初で選んだインターフェースの色設定をここで細かくカスタムできる様子
以下今回いじったところのメモ。

## 一般的な台詞のテキストサイズ。
define gui.text_size = 20 #元は19
## インターフェースのテキストサイズ。
define gui.interface_text_size = 20 #元は19

## メインメニューとゲームメニューの背景画像。
define gui.main_menu_background = "images/bg/bg01.jpg"
#デフォはguiフォルダに入ってる画像をタイトル画像に指定していますが、
#なんか一枚絵のイメージで背景の一環で管理したかったので場所を変えています。

## テキストボックスに対する、台詞の位置。左上からのピクセル数で指定するか 0.0 か
## ら 1.0 までの小数で指定します。 0.5 だと中央に表示。
define gui.dialogue_xpos = 224
define gui.dialogue_ypos = 30  #デフォルトは42。

## ボタンのボーダーのサイズ。左、上、右、下の順で指定します。ボタンのサイズは、
## その中のテキストやオブジェクトのサイズから更にボーダー分拡張したサイズになり
## ます。
define gui.button_borders = Borders(6, 6, 6, 6) #デフォルトは全部4


◇option.rpy


#すごい上の方
define config.name = _("レイクサイド~")  #ゲームの名前を入れます

## About(バージョン情報)スクリーンに表示されるテキスト。
#別になくてもいいと思いますけど~
define gui.about = _p("""制作:くまのこ道  
""")

## 実行ファイルやビルドされた配布物のディレクトリー名
define build.name = "lake" #ファイル名。半角だそうです

## 次の行をアンコメントしてオーディオファイルを指定すると~
define config.main_menu_music = "bgm/gngn00.ogg" 
#タイトル画面の音楽です。デフォルトはコメントアウトされています。

## ゲーム開始後でも "window show"、"window hide"、"window auto" ステートメントで
## 変更することができます。
define config.window = "auto"
##★多分場所はどこでもいいけどこの下に増やしてました。
#(原理不明、どこかの講座を見た)マウスロールで読み進められるようになります
init python:
    config.keymap['dismiss'].append('mousedown_5')
 
#セーブデフィレクトリ  ※デフォルトだと生きてる。コメントアウトしました
## この値は一般的に変更するべきでは~
##define config.save_directory = "sa-1540709957"


## アーカイブ(書庫化・暗号化)したいファイルは 'archive'(または任意の文字
 ## 列)に分類します。 ※パック時に暗号化されるファイルの種類を増やしています。
    build.classify('game/**.png', 'archive')
    build.classify('game/**.jpg', 'archive')
    build.classify('game/**.ogg', 'archive')
    build.classify('game/**.wav', 'archive')
    build.classify("game/**.rpy", "archive")
    build.classify("game/**.rpyc", "archive")
    build.classify("game/**.ttf", "archive")


◇screens.rpy

#多分場所はここでなくてもいいだろうけどこの辺の下に追加(★)ルビの指定
style frame:
    padding gui.frame_borders.padding
    background Frame("gui/frame.png", gui.frame_borders, tile=gui.frame_tile)
##★追加
init -2 python:
    style.ruby_text.size = 12 #文字を小さくする
    style.ruby_text.yoffset = -20 #20ピクセル上にずらして表示
    style.say_dialogue.line_leading = 12 #会話文の行間を12ピクセルに広げる 
    style.say_thought.line_leading = 12 #叙述文の行間を12ピクセルに広げる

## Quick Menu(クイックメニュー)スクリーン 
## クイックメニューはゲーム中に常時表示されるスクリーンで~
 
screen quick_menu():
    zorder 100
 
    if quick_menu:
 
        hbox:
            style_prefix "quick"
 
            xalign 0.5
            yalign 1.0
 
 
            textbutton _("save") action ShowMenu('save') text_size 18
            textbutton _("load") action ShowMenu('load') text_size 18
            textbutton _("auto") action Preference("auto-forward", "toggle") text_size 18
            textbutton _("skip") action Skip() alternate Skip(fast=True, confirm=True) text_size 18
            textbutton _("Q.S") action QuickSave() text_size 18
            textbutton _("Q.L") action QuickLoad() text_size 18
            textbutton _("log") action ShowMenu('history') text_size 18
            textbutton _("rollback") action Rollback() text_size 18
            textbutton _("option") action ShowMenu('preferences') text_size 18
        
#↑なんかこのあたりで確かメッセージウインドウメニューの
#ボタンの内容・順番を変えています。


## Navigation(ナビゲーション)スクリーン ####################################################
##↓このあたりで確かタイトルメニューとか右クリックメニューの名称を変えています。
screen navigation():
    vbox:
        style_prefix "navigation"
        xpos gui.navigation_xpos
        yalign 0.5
        spacing gui.navigation_spacing
        if main_menu:
            textbutton _("スタート") action Start()
        else:
            textbutton _("バックログ") action ShowMenu("history")
            textbutton _("セーブ") action ShowMenu("save")
        textbutton _("ロード") action ShowMenu("load")
        textbutton _("オプション") action ShowMenu("preferences")
        if _in_replay:
            textbutton _("回想終了") action EndReplay(confirm=True)
        elif not main_menu:
            textbutton _("タイトルへ") action MainMenu()
        textbutton _("バージョン情報") action ShowMenu("about")
        if renpy.variant("pc"):
            ## モバイルデバイスにはヘルプは不要であるか不適切です。
            textbutton _("操作説明") action ShowMenu("help")
            ## 終了ボタンは iOS では使えず Android では不要です。
            textbutton _("終了") action Quit(confirm=not main_menu)

## use ステートメント~
 ## ↓このへんでタイトル画面に「ゲーム名」「ver.〇〇」を文字で表示させている様子。
#タイトル画像にゲーム名が入っている場合は不要だと思うので消します。
#(例ではverの表示のみ残しています。)
    use navigation
    if gui.show_name:
        vbox:
##            text "[config.name!t]":
##                style "main_menu_title"
            text "[config.version]":
                style "main_menu_version"


## Preferences(環境設定)スクリーン 
##オプション画面です。↓のようにしていました
screen preferences():
    tag menu
    use game_menu(_("オプション"), scroll="viewport"):
        vbox:
            hbox:
                box_wrap True
                if renpy.variant("pc"):
                    vbox:
                        style_prefix "radio"
                        label _("ディスプレイ")
                        textbutton _("ウィンドウ") action Preference("display", "window")
                        textbutton _("フルスクリーン") action Preference("display", "fullscreen")
                vbox:
                    style_prefix "radio"
                    label _("ロールバック\nサイド")
                    textbutton _("無効") action Preference("rollback side", "disable")
                    textbutton _("レフト") action Preference("rollback side", "left")
                    textbutton _("ライト") action Preference("rollback side", "right")
                vbox:
                    style_prefix "check"
                    label _("スキップ")
                    textbutton _("未読テキストも\nスキップ") action Preference("skip", "toggle")
                    textbutton _("選択肢の後も\nスキップ継続") action Preference("after choices", "toggle")
                    textbutton _("トランジションを\n飛ばす") action InvertSelected(Preference("transitions", "toggle"))
                ## この場所に "radio_pref" または "check_pref" をスタイルに持つ
                ## vbox を追加して、開発者が定義した環境設定を増やすことができま
                ## す。
            null height (4 * gui.pref_spacing)
            hbox:
                style_prefix "slider"
                box_wrap True
                vbox:
                    label _("文字表示速度")
                    bar value Preference("text speed")
                    label _("オート待ち時間")
                    bar value Preference("auto-forward time")
                vbox:
                    if config.has_music:
                        label _("BGM音量")
                        hbox:
                            bar value Preference("music volume")
                    if config.has_sound:
                        label _("SE音量")
                        hbox:
                            bar value Preference("sound volume")
                            if config.sample_sound:
                                textbutton _("テスト") action Play("sound", config.sample_sound)
                    if config.has_voice:
                        label _("ボイスの音量")
                        hbox:
                            bar value Preference("voice volume")
                            if config.sample_voice:
                                textbutton _("テスト") action Play("voice", config.sample_voice)
                    if config.has_music or config.has_sound or config.has_voice:
                        null height gui.pref_spacing
                        textbutton _("全てミュート"):
                            action Preference("all mute", "toggle")
                            style "mute_all_button"


## History(履歴)スクリーン 
## このスクリーンは、ダイアローグヒストリー(台詞の履歴)を~
##馴染みがないのでヒストリー→バックログに変えてました。
screen history():
    tag menu
    predict False
    use game_menu(_("バックログ"), scroll=("vpgrid" if gui.history_height else "viewport"), yinitial=1.0):
#(中略)
        if not _history_list:
            label _("ログはありません。")

## Help(ヘルプ)スクリーン 
## キーやマウスの割り当てに関する情報を表示する~
## だんだん面倒になってきたので省く。ヘルプの文言を変えました。
    use game_menu(_("操作説明"), scroll="viewport"):
#→「ヘルプ」を「操作説明」に 等。

    hbox:
        label _("ホイール上回転")
        text _("前の台詞に戻る。")
    hbox:
        label _("ホイール下回転")
        text _("台詞を読み進める。")
#他、タブレット端末で操作しなそうならそのへんをカットするなどの対応です。
PR
Comment
color
name
subject
mail
url
comment
pass   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
ブログ内検索
このブログについて
ゲーム作りたい人のメモ。
講座というほどのものでもないおぼえがきです。
何か参考になるところがあればご自由にどうぞ。
ほぼ自分用なので、日本語いきあたりばったりでごめんなまし。

※ここに書いたことは全体的に
「本当はなんとかする方法があるかもしれないけど、私にはわからない」が多く…
あんまり仕組みを理解していないし誤解もあるかもしれません。
というわけで責任は負いません。ごめんなさい!

リンク:ゲーム作ってる本館
material by bee  /  web*citron
忍者ブログ [PR]