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

Project1

 找回密码
 注册会员
搜索
查看: 4531|回复: 30

[有事请教] 这种遮挡异常有解吗

[复制链接]

Lv5.捕梦者

梦石
0
星屑
34864
在线时间
4148 小时
注册时间
2007-12-15
帖子
9980
发表于 2018-4-2 17:35:03 | 显示全部楼层 |阅读模式

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

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

x
远景水面用角色行走图,只要不是32*32的,任你图块如何调节,都遮挡不了后面的海浪,我就¥#%……%¥&Y^%
然后我说忍了,回头想别的辙
然后我想用个其他的透视,把椰子扔远景,用影子来表现夕阳的光照,结果影子遮挡这里恶心到我了。
01.png
绘画情况,角色站在树后,影子会遮挡角色,现在这个现实简直……而且还没法调,因为角色高度大于32,你怎么让图块能认为角色实际的Y数值……没那么高
到是以前有个,让图块遮挡可以大于5的脚本
这个
#作者 抱歉,没记住,只能谁帮我写的,只能写,不详
class Game_Character
  alias _66RPG_screen_z screen_z
  def screen_z(height = 0)
    if $game_switches[220]
      if @tile_id > 0
        return $game_map.priorities[@tile_id] * 32
      else
        return (@real_y - $game_map.display_y) / 128
      end
    end
    return _66RPG_screen_z(height)
  end
end
#如果不需要用到这个功能,就把 220 号开关关掉

在没辙的情况下,只能用其他物品比如明显不能通过的仙人掌遮挡根部,避免遮挡异常 感觉好难受……
02.png

Lv5.捕梦者

梦石
0
星屑
37754
在线时间
5385 小时
注册时间
2006-11-10
帖子
6545
发表于 2018-4-2 18:33:51 | 显示全部楼层
本帖最后由 灯笼菜刀王 于 2018-4-2 18:37 编辑

所以,你是想要影子遮挡角色还是不遮挡?

遮挡的话, 在树干上一样设置优先度最高的阴影就是了, 通过调整色阶色相让树干+阴影颜色正常, 然后分两层放图块上, 绘画的时候重叠,或者直接显示阴影图片覆盖到上面
未标题-1.jpg

不遮挡的话, 阴影印到地板上就好了......

点评

显示图片会跟着场景一起卷动的,这个场景有横向卷动  发表于 2018-4-2 20:49
其实说起来,这样子显示的话,角色也应该有影子……而且影子角度一致的,但是有了影子行走图位置就不正常了……  发表于 2018-4-2 20:49
↓ 图层不够用的话,就用元件覆盖,元件还不够的话就显示图片, 显示图片还不够的话(50层=3=),就Sprite.new.........  发表于 2018-4-2 20:48
唉?可以这样吗?容我三思……感觉应该是……可以,明天去试试。  发表于 2018-4-2 20:35
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

  /) /)<

梦石
0
星屑
4207
在线时间
4890 小时
注册时间
2009-2-16
帖子
8434

开拓者短篇七成年组季军

发表于 2018-4-2 19:38:06 | 显示全部楼层
一般来说,设置成不影响角色 违和感也没那么强的

点评

一般画成是阴影铺在地面上,我是想试试能不能按照正常光影这么照过来,结果好难过……画出来的遮挡和游戏运行出来的遮挡不是一回事  发表于 2018-4-2 20:41
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
5039
在线时间
1780 小时
注册时间
2012-7-3
帖子
1799

开拓者

发表于 2018-4-2 20:29:35 | 显示全部楼层

如果因为引擎限制实在处理不好,而这一段又不是主要剧情流程,花几百块找人画一张CG要轻松省力的多……
大约就是一个左手倒右手的问题,个人建议引擎本身的层只处理沙滩、角色和阴影(刚好对应三层)
海浪和树木之类的都做到远景图里面,然后几张循环切……
至于冒头的问题……反正判定只有一格子,在这里切行走图就行……(被打飞

点评

但是画的再好也是别人的,别人画的价值万元的CG都不如自己的一张草图有意义,因为那是自己劳动成果。  发表于 2018-4-3 09:12
去找个贴吧群/微博群潜伏,勾搭画师dalao,和他混熟了,多帮帮忙就能得到一个友情价~ (还有可能是友情十二折(雾)  发表于 2018-4-2 23:36
而且cg这个,不是我自己画的各种心理障碍,找人画一张cg我能看着接受的最低几千起价……穷人,请不起啊,还是看自己画的草图的心里坦然。  发表于 2018-4-2 21:13
远景切循环就没法用脚本的自动卷动了……只能二选一,所以我多画了几个同类场景留着备用,看看最后哪个效果好。  发表于 2018-4-2 20:46
切行走图还得判断朝向……觉得二楼方法应该可行,做个逐渐变没的阴影的画到图层3上。  发表于 2018-4-2 20:39
Project Ktr进行中:
   
------------------
SRPG开发之六-天气与地形互动
→→围观
→→→去Lofter围观
------------------
离经叛道的扯淡者/伪独立游戏爱好者/Decade Studio(?)/造轮子真TM开心呀
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
1
星屑
23963
在线时间
3338 小时
注册时间
2011-7-8
帖子
3925

开拓者

发表于 2018-4-2 20:36:59 | 显示全部楼层
这个脚本是我写的啦……但是这几天没空看……

点评

回去我注上,非常感谢。  发表于 2018-4-2 21:01
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
34864
在线时间
4148 小时
注册时间
2007-12-15
帖子
9980
 楼主| 发表于 2018-4-2 21:00:30 | 显示全部楼层
突然想起来一个问题,我忽略了角色的影子,应该是这样如图所示
未标题-2.png
但是,如果按照默认的素材规格来画,角色实际位置是最下面32*32的高度,有阴影会造成太高了显示不正常,以前试图模拟地面漫反射时候也遇到了这个瓶颈,无程序情况下怎么弄
有没有什么方法可以设定一个行走图,行走图是角色图像垂直翻转后的的半透明黑影,让这个行走图在当前地图让,显示到角色当前坐标上,被角色遮挡,与角色动作一致的进行更换,模拟角色的影子
阴影脚本冲突绝对的,只能以无冲突图的默认法法来实现
如果画静态无法操作的容易,但是一旦牵扯操作,就麻烦大了
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
37754
在线时间
5385 小时
注册时间
2006-11-10
帖子
6545
发表于 2018-4-2 21:53:49 | 显示全部楼层
本帖最后由 灯笼菜刀王 于 2018-4-2 21:55 编辑
89444640 发表于 2018-4-2 21:00
突然想起来一个问题,我忽略了角色的影子,应该是这样如图所示

但是,如果按照默认的素材规格来画,角色实 ...


要做真实影子的话,有三种方法

1, 直接画到行走图里,但是这样会导致行走图过长, 落脚点不和谐, 不过落脚点可以通过修改脚本坐标调整, 两种方法  
①,修改Sprite_Character   45-50行左右, 修改self.oy = @ch  改为 self.oy = @ch / 2 这样落脚点就是角色和影子的中间了, 适合影子比例规则的情况

②,修改Game_Character 1  245-255行左右, y = (@real_y - $game_map.display_y + 3) / 4 + 32  根据你的影子长度调整后面的数字, 适合影子比例不规则的情况,  不过改这个会连元件的坐标一起改, 所以要加上个判断  
    if @tile_id == 0  #不是元件调整坐标
    y = (@real_y - $game_map.display_y + 3) / 4 - 22
    else  #元件就保持原样
    y = (@real_y - $game_map.display_y + 3) / 4 + 32
    end

当然, 也可以给它加上个开关, 当XX开关打开的时候, 就用修改的坐标, 关闭的时候就保留原样, 避免其他地图也拖长影.......

这个做法有个缺点, 所有NPC你都要给他拉影子.......不过要真实的话,也是所有人都要就是了, 但是茂盛度和遮挡优先度异常就不可避免了=v=

第二个方法
黑影单独做个行走图, 然后和角色同步行动, 同步可以用并列运行控制或者直接 在Game_Player里, 角色上下左右移动的时候 后面加上 $game_map.events[编号].direction     $game_map.events[编号].x += 1 $game_map.events[编号].y += 1

这样的做法是绿色无污染,且可以不用给NPC加影子~  缺点是, 黑影"走"到最下面一行就不能继续往下了=3=.....如果角色继续走的话.....

第三个方法

是方法二·改.  行走图改为显示图片, 完美回避 方法1和方法2的问题,  缺点比较麻烦, 调坐标调死人.jpg

点评

第二个,并行处理的情况,是怎么写的?我想不出事件怎么处理  发表于 2018-4-3 09:26
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
34864
在线时间
4148 小时
注册时间
2007-12-15
帖子
9980
 楼主| 发表于 2018-4-3 09:57:34 | 显示全部楼层
灯笼菜刀王 发表于 2018-4-2 21:53
要做真实影子的话,有三种方法

1, 直接画到行走图里,但是这样会导致行走图过长, 落脚点不和谐, 不过落脚 ...

https://rpg.blue/forum.php?mod=v ... hlight=%D3%B0%D7%D3
这个似乎可以实现,但是……因为我素材规格,遮挡异常度很高。

点评

试试高遮挡的东西用元件铺上,勾最前面显示试试  发表于 2018-4-3 11:26
我试了,除非地图处于下面的位置面没遮挡物,否则显示异常  发表于 2018-4-3 10:43
额,这个脚本强啊, 果断A之 -_,-.. 你可以试试看咯,理论上应该和行走图的遮挡没关系的  发表于 2018-4-3 10:27
影子勾上最前面显示就行了,反正投影叠到最前面也没啥违和, 只要你下面不要出现那种大粗高的椰子树就好.....  发表于 2018-4-3 10:22
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
37754
在线时间
5385 小时
注册时间
2006-11-10
帖子
6545
发表于 2018-4-3 10:11:15 | 显示全部楼层
本帖最后由 灯笼菜刀王 于 2018-4-3 10:21 编辑

把你要当影子的事件铺到合适的位置, 让它最顶端处于角色脚下, 行走图换成头下脚上的影子

然后改变行走速度和角色相同, 勾上移动动画,穿透,最前面显示,  并行处理

事件页设置
if 角色面向 下
   if 下 被 按下时
      移动路线: 本事件
                    下移动
   end
end
if 角色面向 左
   if 左 被 按下时
.....


就这样咯,

但是这样也许会有些小问题.... 比如角色被前面某个东西挡住了,无法移动, 但是如果玩家依然按着方向的话 =v=.......

要避免就用个"$game_player.moving?" 把上面那些都套起来,应该就可以避免了

或者这样写

x = $game_player.x
y = $game_player.y
$game_map.events[编号].moveto(x,y)

看看哪个效果好.
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
34864
在线时间
4148 小时
注册时间
2007-12-15
帖子
9980
 楼主| 发表于 2018-4-3 11:33:47 | 显示全部楼层
本帖最后由 89444640 于 2018-4-3 11:37 编辑
灯笼菜刀王 发表于 2018-4-3 10:11
把你要当影子的事件铺到合适的位置, 让它最顶端处于角色脚下, 行走图换成头下脚上的影子

然后改变行走速 ...


01.png

这脚本影子遮挡调了一下,很正常,角色的影子位于npc脚下,虽然跟现实还是有所区别不过能接受。
第一次测试时,npc有影子来着,我调了一下脚本变量编号,结果现在只有角色有影子,npc没有,重开新进度也没用,不知道是不是系统自动记录了什么奇怪的东西

然后,这个脚本的位置和我素材不一致,我为了横版ACT能用,角色行走图,横向的是贴图像底边。请问怎么修改一下?能让红框位置正常?
跟前的npc和远处船那个是事件,都不显示影子
目前使用脚本是这个,没有冲突,
Scripts.rxdata (329.22 KB, 下载次数: 60)
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-19 06:57

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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