找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 39803|回复: 13

[有回复] 大佬们,怎么让一个角色说话的时候其他角色都变暗

  [复制链接]
发表于 2020-2-13 21:29:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
虽然看了大佬的“[color=rgb(255, 102, 0) !important]如何让某张立绘变灰”的帖子,但是感觉还是不适用,一般来说我们应该是说话的人物高亮,其他的人变暗或者变透明来凸显说话人,
但是以上帖子的方法每一句话都要设计一边所有人状况,太过于麻烦了
有没有大佬可以尝试更简略一些



 楼主| 发表于 2020-4-16 09:03:40 | 显示全部楼层
来自Lemma Soft Forums 论坛的Ren’Py版块
[RenPy] 纯文本查看 复制代码
transform pulse:
    linear 0.1 zoom 1.01
    pause 0.1
    linear 0.1 zoom 1.0

default speaking_char = None

init -1 python:
    from functools import partial
    def char_pulse(char, event_name, *args, **kwargs):
        if event_name == "begin" and char != store.speaking_char:
            if char != None:
                tags = renpy.get_attributes(char)
                str_tags = " ".join(tags)
                renpy.show(char + " " + str_tags, at_list=[pulse])
            store.speaking_char = char

define e = Character("Eileen", callback=partial(char_pulse, "eileen"))
define s = Character("Someone", callback=partial(char_pulse, "someone"))

label start:
    show eileen at left
    show someone at right

label talk:
    s "Hello~"
    e "Hello!"
    e "Hey, I just pulsed."
    e "Uuuh, not anymore, I guess..."
    s "I didn't see anything."
    s "Woah, I pulsed too... but not this time."
    e "It seems we pulse everytime we talk."
    s "That's sooooo cool."
    jump talk

原帖

评分

参与人数 1干货 +1 收起 理由
BuErShen + 1 感谢分享!

查看全部评分

回复 支持 5 抱歉 0

使用道具 举报

发表于 2020-7-21 13:56:44 | 显示全部楼层
本帖最后由 u1timate 于 2020-7-21 14:07 编辑

[RenPy] 纯文本查看 复制代码
transform dark_in:
    alpha 1.0

transform dark_out:
    alpha 0.5

init -1 python:
    from functools import partial
    def char_fade(char, event_name, *args, **kwargs):
        if event_name == "begin":
            if char != None:
                tags = renpy.get_attributes(char)
                str_tags = " ".join(tags)
                l = [char, str_tags]
                q.append(l)
                for x in q:
                    if(x[0] == char):
                        x[1] = str_tags
                renpy.show(char + " " + str_tags, at_list=[dark_in])
                for x in q:                                   
                    if x[0] != char:
                        renpy.show(x[0] + " " + x[1], at_list=[dark_out])
        if event_name == "end":
            for x in q:
                renpy.show(x[0] + " " + x[1], at_list=[dark_out])

label start:
    $ q = []


照着上面的码改了一下 现在已经可以记录所有发言者上一次发言时的表情了
声明character时别忘了加回调函数
callback=partial(char_fade, "此处为角色tag")



评分

参与人数 2活力 +60 干货 +4 收起 理由
被诅咒的章鱼 + 60 + 2 感谢分享!
龙氏 + 2 感谢分享!

查看全部评分

回复 支持 2 抱歉 0

使用道具 举报

发表于 2020-3-9 18:49:04 | 显示全部楼层
本帖最后由 畿空空空空 于 2020-3-9 18:54 编辑

我这里有个笨办法:(以小明为例)首先用PS制作正常立绘和变灰的立绘,然后取名为“xiaomin light”和“xiaomin dark”,然后让character小明绑定图像“xiaomin”(具体看中文文档-对话和旁白-带有图像属性(attribute)的say语句)。
然后对话这样写:
[RenPy] 纯文本查看 复制代码
show xiaomin light at left


    m "x现在是小明在说话,他的立绘是亮的!"
    hide xiaomin light
    show xiaomin dark at left
    h "现是小红在说话,所以小明的立绘变灰了!"
    m [url=home.php?mod=space&uid=1671]@[/url] light """
    
    现在小明又开始说话了,所以小明的立绘变亮了!

    大概就是这样!
    """

    h "小红说话,小明的立绘又变暗了!"



这样可以少打几个字......不过应该会有大佬有更好的办法的(同求!)
第八行那两个方括号和里面的文字请忽略!实际上就只有一个艾特符号!
回复 支持 1 抱歉 0

使用道具 举报

发表于 2020-2-14 10:24:01 | 显示全部楼层
同等一个x
回复

使用道具 举报

 楼主| 发表于 2020-2-20 22:26:06 | 显示全部楼层
有大佬可以帮忙么
回复 支持 抱歉

使用道具 举报

发表于 2020-3-30 17:14:55 | 显示全部楼层
每个角色都定义两个颜色图:明亮或半透明。
一个角色说话时,用明亮图,其他同框出现的角色,用半透明不行吗
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2020-4-16 09:06:16 | 显示全部楼层
这一劳永逸的方法,不用一句一句设置,也不用做图来回切换,写着代码的Lord Hisu 和philat我愿成为巨佬
回复 支持 抱歉

使用道具 举报

发表于 2020-4-16 19:12:37 | 显示全部楼层
令貓 发表于 2020-4-16 09:03
来自Lemma Soft Forums 论坛的Ren’Py版块
[mw_shl_code=renpy,true]transform pulse:
    linear 0.1 zoom ...

汗!题目看错自我检讨中
回复 支持 抱歉

使用道具 举报

发表于 2020-6-5 12:41:02 | 显示全部楼层
令貓 发表于 2020-4-16 09:03
来自Lemma Soft Forums 论坛的Ren’Py版块
[mw_shl_code=renpy,true]transform pulse:
    linear 0.1 zoom ...

!感谢分享!
回复 支持 抱歉

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|RenPy中文空间 ( 苏ICP备17067825号|苏公网安备 32092302000068号 )

GMT+8, 2024-11-21 14:29 , Processed in 0.129269 second(s), 30 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表