Monthly Archives: 1月 2013

You are browsing the site archives by month.

選択肢メニュー表示のNVLモードとADVモード切り替え

WikiLogo
ver 6.14.1

NVLモードで文中に選択肢を表示させるときは、その前段階で

    $ menu = nvl_menu

のように設定しますが、途中でADVモードに切り替えても選択肢メニューまでは切り替わりません(´・ω・`)
試しに

    ## 間違った例
    $ menu = adv_menu

としてもエラーになってしまいます。

解決策として、選択肢メニューはデフォルトではADVモードなので
以下のようにデフォルト設定を上書きすることで解決しました(・ω・)b

    $ menu = renpy.display_menu

NVLモードとADVモードの切り換えって、window show とかも意味合い変わったりするし
色々注意してないとだね(・ω・)

チャプターごとにゲームを開始できるようにする

WikiLogo
ver 6.14.1

チャプターごとにゲームを開始できるようにする

書いてある通りです(・ω・)以上!

screens.rpy の中にある main_menu のあたりを探してメニュー項目を追加するだけ!

        textbutton _("Start Chapter 2") action Start("chapter2")

action Start の引数にラベル名を入れる。空の場合はゲームの先頭から開始になる。
開発中はショートカット代わりに作っても便利ヾ(・ω・)ノ

キャラクター名を独自ウィンドウで表示

WikiLogo
ver 6.14.1

How do I put the character’s name in its own box? に書いてるけど…英語っていうね(;´д`)
以下、内容を簡単適当良い加減超意訳してみた。

Q: どのようにキャラクター名の独自表示領域を設置できますか?
A: “show_two_window” を使えば可能です。
もしあなたがキャラクターの名前をメインウィンドウの外に表示したいとき、次の式をを加える必要があります。

$ e = Character("Eileen", show_two_window=True)

この名前ウィンドウの配置、背景などを編集するには、次の例のように属性を変更することで可能です。

    style.say_who_window.background = Frame("frame.png", 15, 15) #Background skin
    style.say_who_window.xalign = 0.0
    style.say_who_window.yalign = 1.0
    #style.say_who_window.xpos = 100 #For precise placement
    #style.say_who_window.ypos = 100 #For precise placement
    style.say_who_window.left_padding = 15
    style.say_who_window.top_padding = 15
    style.say_who_window.right_padding = 15
    style.say_who_window.bottom_padding = 15
    style.say_who_window.xminimum = 150
    style.say_who_window.yminimum = 15
    style.say_who_window.xfill = False

とりあえずメインウィンドウの外に表示ができた。
全体のイメージが決まるまではデフォルト設定で使ってみよう(・ω・)

danceとdancing

English

I like dance. でも、I like dancing.でもOKですが、ニュアンスが若干違います。
I like dancing.だと「踊ることがすき」の意味になります。
I like danceだと、「ダンスが好き」です。(見るのがすき、するのがすき、学校のダンスのクラスが好き、等々、いろいろな意味になりえます。)

なるほど。名詞形のdanceと動詞形のdance+ingで名詞形にするのとでは、意外と意味が変わってくるのね(・ω・)

参考
英語での言い方 – OKWave

発熱と震えのメカニズム

寒い時にブルブルと震えるのは何故か?風邪を引いて熱を出すのは何故か?
友達が風邪を引いたときに話にでたので引用のまとめ(・ω・)

人間を含めた多くの恒温動物は、寒冷環境中では、体温が低下してしまわないように、脳からの指令によって骨格筋を震えさせることで熱を積極的に産生します。この「ふるえ熱産生」は、感染による発熱時にも生じ、体温上昇に寄与します。こうした生理反応は、普段私達が身近に経験するものです

thermometer

一般に正常体温は36.5°C前後が最も多い。臨床的に発熱とは37.5°C以上のものを指す。

体深部温を上昇させる生理学的意義としては、
1.体内に侵入した細菌類の増殖至適温度域よりも体温を上げ、それらの増殖を抑える
2.体温を上昇させることで免疫系の活性化を促す

寒い環境では体表面の血管収縮により体表面からの熱放散が抑制させて
他方、運動神経を活性化させて骨格筋におけるふるえ熱産生を促すことで
体深部温を上昇させる・・・と。

人間ってよく出来てるね(・ω・)

参考
発熱 – Wikipedia
寒さによって「ふるえ」を起こす脳の仕組みを解明 – 京都大学

This is for you.

English

日本では贈り物を渡すときの英語を、Present for you. なんて言ったりするけど、
英語圏の人はこんなこと言ったりしないらしい。
言うとしても、I have a present for you. とか。

一般的には
This is for you.
I bought this for you.
I got this for you.
I got you a present.
I got a present for you.
このあたりを使うようだ。

The Action Teacher はわかりやすくて実用的でいいなぁ(*´-`)

レイヤー上に文字を表示する

WikiLogo
ver 6.14.1

暗い画面の真ん中に、「第一章」と白い文字を浮かべる。
これからゲームが始まるときの区切りや、タイトルの演出などに使います。
割りとありきたりな表現ですが、ユーザーへここが区切りであることを伝えやすい方法ですね。

label start:
    show expression Text("第一章", size=36, yalign=0.45, xalign=0.5, drop_shadow=(2, 2)) as text1
    show expression Text("-人の心を持った人形が人間ならば、花の心を持った人間は花になれるのだろうか-", size=18, yalign=0.55, xalign=0.5, drop_shadow=(2, 2)) as text2
    with Dissolve(1.5)
    pause(4.0)
    hide text1
    hide text2
    with Dissolve(1.5)

show expression Text という命令を使うと、
キャラクターや背景に被せるようにし上部レイヤーに文字を表示できます。
上記の例だと、中央に上下2列でDissolveをかけて表示しています。

pauseをかけて文字の演出をコントロールしてるんだけど、クリックされると
ぱたっとDissolveとかが途切れちゃう。クリック無効にする方法もあるみたいだけど
なんだか上手く行かなかった。色々難しいです。

ルビをつける

WikiLogo
ver 6.14.1

文章にルビをつけるには、まず options.rpy のスタイル設定を変更する。
チュートリアルゲームから該当箇所をまるまんま流用したので詳しいことはわからないヽ(・ω・)/

    ## Note that these only change the size of some of the text. Other
    ## buttons have their own styles.

    style.default.line_leading = 10 # デフォルトのテキスト行間
    style.button_text.line_leading = 0 # ボタンテキストの行間

    style.ruby_style = Style(style.default)
    style.ruby_style.size = 10 # ルビのフォントサイズ
    style.ruby_style.yoffset = -20 # ルビの縦軸位置

    style.default.ruby_style = style.ruby_style # デフォルトのルビ設定に変更を適用する

んでもって、script.rpy などのラベル内文章に {rb}文章{/rb}{rt}ルビ{/rt} という形式で入力するだけ。

label start:
    "{rb}帝都{/rb}{rt}ていと{/rt}。"
    "かつてそう呼ばれた場所、東京。"

普通はゲーム内にルビを振ることはそう多くないと思うのだけど、
友人から誘われたゲームはルビが盛り沢山!(゚д゚;)
手作業ではとても時間がかかってしまう上にヒューマンエラーの可能性も多くなるので、
ルビを辞書化してしまって自動変換することを考えてみた。

といっても、プログラムのド素人が出来ることはたかが知れてるけどね!(ノ∀`)

NVLモード : ナレーションの設定

WikiLogo
ver 6.14.1

NVLモードで会話以外の文章(ナレーション)をさせるには、Characterで定義するが、
通常のキャラ設定のように定義すると、設定したキャラ名(この例ではn)を何度も書かなければいけない。

define n = Character(None, kind=nvl)

label start:
    n "実直で堅実な父だったが、大きな劣等感を抱えていた。"
    n "それは息子であるところの僕に遺憾なく発揮された。"

ナレーションにはデフォルトで予約されている変数narratorがあるので、
そこにNVLモードの設定をしてあげると楽ができます。

define narrator = Character(None, kind=nvl)

label start:
    "実直で堅実な父だったが、大きな劣等感を抱えていた。"
    "それは息子であるところの僕に遺憾なく発揮された。"

ADVモードに戻りたい時は

    $ narrator = Character(None, kind=adv)

といった命令を設定すると元のADVモードに戻ります。

NVLモード : ウィンドウの表示/非表示

WikiLogo
ver 6.14.1

Ren’Pyには2つの表示モードが標準実装されています。
・ADVモード: デフォルトではこのアドベンチャーモードです。恋愛ゲーム等に見られる画面上部にキャラクター表示、画面下部に会話が表示される形式です。
・NVLモード: ノベルモード。かまいたちの夜のような画面全体に文章が表示され、背景としてキャラクターなどが表示される形式。

NVLモードへの変更についてはWikiに説明があるのでそちらを参考にされると良いと思います。
ここでは備忘録として簡単にまとめておきます。

NVLモードに変更するには scrript.rpy などに下記を付け加えます。

init python:
    config.empty_window = nvl_show_core # NVLモード・ウィンドウの制御を有効化
    config.adv_nvl_transition = dissolve
    config.nvl_adv_transition = dissolve

config.empty_window を nvl_show_core に設定すると、NVLモード・ウィンドウは、トランジションを伴って表示されます。
最後の2行では、ウィンドウの表示/非表示の切り替えに使われる既定のトランジションを設定しています。

有効化することで、windowコマンドによってウィンドウの表示/非表示ができるようになります。

NVLモードでtransitionを使った場面転換をすると、ADVモードのウィンドウが一瞬表示されたりします。
デフォルトではtransition時にウィンドウを表示し続ける設定になっていますが、これをtransitionするときには
ウィンドウを消すように設定(False)すると、NVLモードにADVモードのウィンドウが出てくることはありません。

init python
    # トランジション中もウィンドウを表示させる場合はフラグをTrueに
    _window_during_transitions = False

参考
NVLモード・チュートリアル