Skip to content

Instantly share code, notes, and snippets.

@vbkaisetsu
Last active December 14, 2015 08:59
Show Gist options
  • Save vbkaisetsu/5061797 to your computer and use it in GitHub Desktop.
Save vbkaisetsu/5061797 to your computer and use it in GitHub Desktop.
MultiCharacter example code
#
# MultiCharacter example script for:
# https://github.com/vbkaisetsu/renpy/compare/multi-character
#
# Author: Koichi Akabe <vbkaisetsu@gmail.com>
#
##############################################################################
# DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
# Version 2, December 2004
#
# Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
#
# Everyone is permitted to copy and distribute verbatim or modified
# copies of this license document, and changing it is allowed as long
# as the name is changed.
#
# DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
# TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
#
# 0. You just DO WHAT THE FUCK YOU WANT TO.
#
##############################################################################
#
# 関数:
# MultiCharacter(who=renpy.character.NotSet, kind=None, col=0,
# group=None, **properties)
# 2人以上のキャラクターの台詞を1つの画面に表示します。
# 引数説明:
# col ... そのキャラクターの台詞をどの列に表示させるか。一番左が 0 。
# group ... キャラクターが属するグループの名前です。同じグループに属するキャラク
# ターの台詞は、同じウィンドウに表示されます。None にした場合は、
# グループ名は dual となります。
#
# スタイル:
# キャラクターを定義すると、指定されたグループ名に従って次の3つのスタイルが作成されます:
# multi_child_label_{group} ... キャラクター名が表示されるウィンドウのスタイル
# multi_child_dialogue_{group} ... 台詞が表示されるウィンドウのスタイル
# multi_child_window_{group} ... 台詞とキャラクター名を含むウィンドウのスタイル
#
# これら以外に、デフォルトで2つのスタイルがあります:
# multi_window ... MultiCharacterで使用される最上位のウィンドウのスタイル
# multi_hbox ... 台詞を横に並べる hbox のスタイル
#
# ステートメント:
# multi clear ... すべてのキャラクター名と台詞を消去します。
#
# showlater=True を指定すると、他のセリフの開始と同時に指定した台詞が開始されます。
# 例:
# $ yuka("この台詞は同時に流れます", showlater=True)
# maria "この台詞は同時に流れます"
#
# 3人の台詞を同時に表示する場合は、スタイルとキャラクターを例えば次のように定義します:
#
# define yuka = MultiCharacter("ユカ", col=0, group="triple", color="#c8ffc8")
# define maria = MultiCharacter("マリア", col=1, group="triple", color="#ffc8c8")
# define me = MultiCharacter("僕", col=2, group="triple", color="#c8c8ff")
#
# init python:
# style.multi_child_window_triple.xminimum = int(config.screen_width / 3) - 7
# style.multi_child_window_triple.xmaximum = int(config.screen_width / 3) - 7
#
init python:
style.default.font = "YOzFontE-Regular-strip.ttf"
style.default.language = "japanese-strict"
style.default.layout = "greedy"
style.default.line_spacing = 3
style.default.line_leading = 3
define yuka = MultiCharacter("ユカ", col=0, color="#c8ffc8")
define maria = MultiCharacter("マリア", col=1, color="#ffc8c8")
define me = Character("僕", color="#c8c8ff")
label start:
yuka "なんでこんなことも分からないの?こんな証明問題、直感的に分かるじゃない!"
maria "そんな説明でユウタ君が分かると思ってるの?ユウタ君、気合が大切!気合があれば解けるわ!"
yuka "何よ気合って。念力でも使って解くわけ?"
maria "は?あんたこそ直感で解くとか言って、カンニングしてるんじゃないの?"
$ yuka("ユウタくん、マリアの説明どう思う?", showlater=True)
menu:
maria "私の説明のほうが分かりやすいよね?"
"うーん、正直どっちの説明も分かりづらい":
call bad
"うん、ありがとう。どっちの説明も分かりやすいよ":
call good
return
label bad:
me "うーん、ごめん、正直どっちの説明も分かりづらいなぁ。"
yuka "はあ?何でわからないの?"
maria "ユウタくん、私の説明がわからないなんてひどい!"
me "ああ、ごめんごめん。えっと、ここで何でラグランジュリゾルベントが出てくるの?いきなり過ぎててさぁ。"
return
label good:
me "うん、ありがとう。どっちの説明も分かりやすいよ!{p}{size=12}あとでサトコちゃんに聞いておくか{/size}"
yuka "ん?ユウタ君なにか言った?"
maria "うん、絶対言った。サトコちゃんって誰?"
return
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment