设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1649|回复: 12
打印 上一主题 下一主题

[讨论] 【ULDS】让时间操控阴影

[复制链接]

Lv2.观梦者

梦石
0
星屑
409
在线时间
286 小时
注册时间
2015-10-4
帖子
294
跳转到指定楼层
1
发表于 2016-7-20 11:41:14 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 威风镰鼬 于 2016-7-20 12:32 编辑

注:因为楼主年幼无知(啪 ),依然老规矩把自己得意的贴发在水区。

前言:
之前我发过一个贴,是关于在阴影随着时间变化的问题,对——是问题……

使用ULDS绘制地图的阴影确实美观很多,但在时间系统的使用上依然避免不了这样一个问题,就是在早上和黄昏,太阳最斜,地图阴影也就越长,正午可算没有,傍晚也不用。那样的表达是一个二次函数了(???),这样的阴影长度变化,可以实现吗?

答:至少我不能(打脸
不过我通过另一种方法解决的,对,改变不透明度。默认的阴影绘制没有给出不透明度这东西,所以如题目所说的,下面该方法仅适于ULDS

正文:
①ULDS配上的阴影可以通过变量表示,具体为opacity:v[]
我们让变量i承载0~255的阴影图不透明度,变量越大阴影就越“大”,小于0和大于255我不知道可不可以,总之我们现在先来写算法↓

②我们找到脚本编辑器里Game_Screen的170多行左右有个更改色调的方法,里面已给出了@tone.red,@tone.green,@tone.blue,@tone.gray4个关于画面色调的对象,大家都知道光学三原色,最后那个@tone.gray完全不用管,RGB的取值范围都是-255~255,撇开其他回到前言里的问题:也就是变量赋值里面。那么请允许我任性——

③根据我的观点和习惯,设置的思路是:
1、正午时3个色调均调为0,那个时候变量i为0,无阴影,因此要加上基础值k。(k按自己的习惯来定,抱歉我比较习惯白天全阴影,所以下面我把k设成了200)
2、早上和黄昏的时候大概让人想到的颜色分别是黄和橙,blue对阴影透明度的权是最小的,将RGB的权以3:2:-1的比例分配。
3、晚上默认的色调是蓝最小,这样不好看,我习惯是三值均匀调小,三个都是-102时完全没阴影了。结合2来说就是s=k+102x(3+2-1)=0,从而算出x应为多少,当k=200时,我取x大概为二分之一。
4、综上得出我的计算公式是$game_variables[]=200+(@tone.red*[email protected]*[email protected])/2
5、最后还要判断变量i为0~255之间

④写代码:
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 更新色调
  3.   #--------------------------------------------------------------------------
  4.   def update_tone
  5.     if @tone_duration > 0
  6.       d = @tone_duration
  7.       @tone.red = (@tone.red * (d - 1) + @tone_target.red) / d
  8.       @tone.green = (@tone.green * (d - 1) + @tone_target.green) / d
  9.       @tone.blue = (@tone.blue * (d - 1) + @tone_target.blue) / d
  10.       @tone.gray = (@tone.gray * (d - 1) + @tone_target.gray) / d
  11.       @tone_duration -= 1
  12.       $game_variables[23]=200+(@tone.red*3+@tone.green*[email]2-@tone.blue[/email])/2  #计算阴影不透明度
  13.       if $game_variables[23] > 255
  14.         $game_variables[23]=255
  15.       elsif $game_variables[23] < 0
  16.         $game_variables[23]=0
  17.       end
  18.     end
  19.   end

不知我有没有在其他地方加了语句,好像只是在Game_Screen插了几句,另外是ulds方面了:
<ulds=XXX>
z:200
opacity:v[[23]]
loop:
</ulds>
⑤测试阶段:
事件和输出结果: ,如果你想让效果更突出点的话可以把k值改小,要看个人习惯了。

评分

参与人数 1星屑 +85 收起 理由
天地有正气 + 85 塞糖

查看全部评分

Lv2.观梦者

梦石
0
星屑
409
在线时间
286 小时
注册时间
2015-10-4
帖子
294
2
 楼主| 发表于 2016-7-20 11:42:44 | 只看该作者
[]里面的东西全部无视掉了……看得懂就好
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
12157
在线时间
4435 小时
注册时间
2014-4-11
帖子
5955

开拓者

3
发表于 2016-7-20 12:17:20 | 只看该作者
可是这样只是画面的色调改变了。并不是阴影啊。
阴影不是那个,一个窗,光射进来,旁边是阴影,光的地方是亮的吗。
像是阳光斜射过来,房子侧面一边是阴影的,一面是亮的。
而更改色调就是全部都更改。

点评

我的帖子是为有时间系统的坑打造的,此外其他普通的日夜朝暮变化依旧适用。  发表于 2016-7-20 12:37
③我也不是很懂自己的帖子/w\请问阁下哪里出了问题可以指出吗?  发表于 2016-7-20 12:31
①照我刚刚的方法把阴影和高光放在同一图片也是可行的;②我并没有写画面色调的方法啊,是玩家自行改变色调后图片不透明度变了  发表于 2016-7-20 12:30
回复 支持 反对

使用道具 举报

Lv3.寻梦者

○赛

梦石
0
星屑
1249
在线时间
1276 小时
注册时间
2013-1-22
帖子
2246

贵宾

4
发表于 2016-7-20 18:02:40 | 只看该作者
很不错呢,请楼主继续加油~

点评

↓发现怪蜀黍  发表于 2016-7-31 16:51
发现正太  发表于 2016-7-31 16:49
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
1
星屑
9805
在线时间
4416 小时
注册时间
2005-10-22
帖子
6904

开拓者贵宾

5
发表于 2016-7-20 19:40:38 | 只看该作者
其实真正的技术都在水区,那个假装技术区的地方实际上是幼儿园~\(≧▽≦)/~
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
409
在线时间
286 小时
注册时间
2015-10-4
帖子
294
6
 楼主| 发表于 2016-7-31 11:54:02 | 只看该作者
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
2 小时
注册时间
2016-7-11
帖子
5
7
发表于 2016-8-12 11:10:59 | 只看该作者
支持镰鼬
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
686
在线时间
1 小时
注册时间
2016-8-13
帖子
2
8
发表于 2016-8-14 15:12:06 | 只看该作者
挽尊{:2_249:}
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-10-1 01:22

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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