Project1

标题: 【ULDS】让时间操控阴影 [打印本页]

作者: 威风镰鼬    时间: 2016-7-20 11:41
标题: 【ULDS】让时间操控阴影
本帖最后由 威风镰鼬 于 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值改小,要看个人习惯了。

作者: 威风镰鼬    时间: 2016-7-20 11:42
[]里面的东西全部无视掉了……看得懂就好
作者: yang1zhi    时间: 2016-7-20 12:17
可是这样只是画面的色调改变了。并不是阴影啊。
阴影不是那个,一个窗,光射进来,旁边是阴影,光的地方是亮的吗。
像是阳光斜射过来,房子侧面一边是阴影的,一面是亮的。
而更改色调就是全部都更改。
作者: 天地有正气    时间: 2016-7-20 18:02
很不错呢,请楼主继续加油~
作者: orochi2k    时间: 2016-7-20 19:40
其实真正的技术都在水区,那个假装技术区的地方实际上是幼儿园~\(≧▽≦)/~
作者: 威风镰鼬    时间: 2016-7-31 11:54

作者: 海之帝    时间: 2016-8-12 11:10
支持镰鼬
作者: 灵药丶    时间: 2016-8-14 15:12
挽尊{:2_249:}




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1