召唤数据大佬
囧丫乙吧
全部回复
仅看楼主
吧务
level 15
囧丫乙 楼主
@不在宝前
有个水池的问题请教一下
我大约研究了一下水池图和水纹的生成、运动
目前还有俩问题看你清楚不
一个是白天泳池的闪光点生成算法
游戏中的xml配置文件看了一下部分不是太懂
再一个是水面浮动的方式
我只粗略估计是波纹状上下浮动但是不知道你能否有具体数据或者公式?
2020年06月22日 02点06分 1
吧务
level 15
囧丫乙 楼主
顺便贴一下水面闪光的数据配置文件
PoolSparkly.xml:
<Emitter>
<SpawnRate>150</SpawnRate><!--产生速度-->
<ParticleDuration>[20 80]</ParticleDuration><!--颗粒持续时间范围-->0
<ParticleScale>[.3 .6] [.4 .8],10 [.5 1],50 [.4 .8],90 [.3 .6]</ParticleScale><!--颗粒尺寸-->
<ParticleAlpha>.8</ParticleAlpha><!--颗粒透明度-->
<SystemLoops>1</SystemLoops><!--系统循环-->
<Image>IMAGE_POO
LSP
ARKLY</Image><!--图片路径和名字-->
<EmitterBoxX>[0 FastInOutWeak 290]</EmitterBoxX><!--发射横坐标,快进慢出?-->
<EmitterBoxY>[0 135]</EmitterBoxY>
<EmitterSkewX>-.3</EmitterSkewX><!--发射横向倾斜度-->
<Field><!--字段、场地?-->
<FieldType>Velocity</FieldType><!--场地类型、字段类型:快速、高速-->
<X>[0 -10]</X><!--横向范围0到-10-->
<Y>[-2 2]</Y><!--纵向范围-2到2-->
</Field>
</Emitter>
<Emitter>
<SpawnRate>20</SpawnRate>
<ParticleDuration>[20 60]</ParticleDuration>
<ParticleScale>[.3 .6] [.4 .8],20 [.5 1],50 [.4 .8],80 [.3 .6]</ParticleScale>
<ParticleAlpha>.8</ParticleAlpha>
<SystemLoops>1</SystemLoops>
<Image>IMAGE_POOLSPARKLY</Image>
<EmitterBoxX>[-330 260]</EmitterBoxX>
<EmitterBoxY>[0 135]</EmitterBoxY>
<Field>
<FieldType>Velocity</FieldType>
<X>[0 -5]</X>
<Y>[-2 2]</Y>
</Field>
</Emitter>
2020年06月22日 02点06分 2
完全看不懂 在说什么啊[不高兴]
2020年12月07日 12点12分
这里面,为啥要两个Emitter,或许一个是标记右边的闪光,一个是左边的?
2020年06月22日 02点06分
<ParticleScale>里的数据也有点看不懂,[.3 .6] [.4 .8],10 [.5 1],50 [.4 .8],90 [.3 .6],应该是两组一对,以逗号隔离开,难道是随机从这四对中选取一组?scale看着应该是缩放、尺寸,但是这数据里的10、50、90是干啥用的,貌似游戏中的闪光没有几十倍这么大。
2020年06月22日 02点06分
<EmitterBoxX>中,是不是标记闪光出现的横坐标?两个横坐标中,[0 FastInOutWeak 290]、[-330 260],横坐标有负的,那么是不是都标记的是水面还是整个游戏界面的坐标?坐标原点又是哪里?如果是水面中某处为原点0,那么-330 260就代表左边的闪光坐标从-330延伸到右边260,0 FastInOutWeak 290
2020年06月22日 02点06分
level 13
前排
占座,囧姨别删[滑稽]
2020年06月22日 02点06分 3
level 1
水面闪光的xml文件我没研究。
我已知的是闪光由内存中的 partile systems、emitters、partiles 这几种数据记录。
partile systems 粒子系统,以下简称“粒系”
emitters 可能翻译是“发射源”,以下简称“发源”
partiles 粒子
粒系与粒子的关联,要通过“发源”:
一个粒系包含一个或多个“发源”(暂时没见到包含0个的),
一个“发源”包含多个粒子(也可能是0个或1个)。
内存 +768 +5620 是水面闪光的“粒系”的长编号。
2020年06月22日 03点06分 5
level 1
“粒系”与“发源”在内存中的关联是这样的:
“发源”与“粒子”的关联类似,“发源”[+8]是第一个粒子编号的地址,[+10]是粒子数量。
2020年06月22日 03点06分 6
好的,谢谢,我把你的根xml再结合研究下。对了再顺便问一下,灯笼的光线发射有什么数据、规律之类的吗?游戏中的灯笼光线初看只是一个纯200*200的透明图,即使把背景色设为黑色也什么也看不到。
2020年06月22日 03点06分
@囧丫乙 开了3D加速才能看到路灯花的光圈,不开3D加速看不到,所以光圈可能不是直接贴图,是3D渲染效果。种一个路灯花,内存数据增加了一个粒系,包含2个发源,每个发源10个粒子,这20个粒子的坐标一样,都是路灯花图像的中心位置。
2020年06月22日 05点06分
@不在宝前 了解,3Q。
2020年06月22日 05点06分
@囧丫乙 路灯花的光线还真是贴图叠加效果,好像与3D渲染无关,不知道为什么要开3D加速才能看到,如果是因为xml文件中有<HardwareOnly>也不太对,过关金币袋点击后的光线也是开3D加速才能看到,它的xml文件中没有<HardwareOnly>
2020年07月02日 15点07分
吧务
level 15
囧丫乙 楼主
水面浮动的规律
可以看出,最顶端浮动很小
底部完全不动
越接近底部上下波动越小
竖着的波动跟横向波动看起来不相干
你抖你的我动我的
最两边同样也是波动很小但看起来还是有变化
2020年06月22日 06点06分 7
可能也和3D加速有关,如果关闭3D加速,水面就没有波动了。
2020年06月22日 07点06分
@avreaesrfewv 不是,这贴图是静态的,我画成了格子状方便查看。
2020年06月22日 13点06分
吧务
level 15
囧丫乙 楼主
这是路灯花光线的粒子运动文件
两个Emitter代表两个发射控制源
路灯的光线文件是
PAK包/particles/LanternShine.png
<Emitter>
<SpawnMinActive>10</SpawnMinActive><!--每个发射源产生10个粒子,也就是10个png图片-->
<ParticleScale>1 Bounce [.7 1]</ParticleScale><!--粒子缩放尺寸在0.7到1倍之间-->
<ParticleAlpha>.5 Bounce [.3 .5]</ParticleAlpha><!--微粒透明度在0.3到0.5之间-->
<ParticleDuration>[60 120]</ParticleDuration><!--微粒持续时间,应该是厘秒,但是还不清楚这个持续时间什么意思,好像也不是一个粒子转一圈的时间,没那么快-->
<SystemLoops>1</SystemLoops><!--系统循环?-->
<ParticleLoops>1</ParticleLoops><!--微粒循环?-->
<RandomStartTime>1</RandomStartTime><!--随机开始时间?-->
<Image>IMAGE_LANTERNSHINE</Image><!--图像-->
<RandomLaunchSpin>1</RandomLaunchSpin><!--随机发起旋转?-->
<ParticleSpinSpeed>[-20 -40]</ParticleSpinSpeed><!--微粒旋转速度,一个发射源是顺时针,一个是逆时针,个人估计负号的是逆时针-->
<HardwareOnly>1</HardwareOnly><!--是否需要3D硬件加速-->
</Emitter>
<Emitter>
<SpawnMinActive>10</SpawnMinActive>
<ParticleScale>1 Bounce [.7 1]</ParticleScale>
<ParticleAlpha>.5 Bounce [.3 .5]</ParticleAlpha>
<ParticleDuration>[60 120]</ParticleDuration>
<SystemLoops>1</SystemLoops>
<ParticleLoops>1</ParticleLoops>
<RandomStartTime>1</RandomStartTime>
<Image>IMAGE_LANTERNSHINE</Image>
<RandomLaunchSpin>1</RandomLaunchSpin>
<ParticleSpinSpeed>[20 40]</ParticleSpinSpeed>
<HardwareOnly>1</HardwareOnly>
</Emitter>
2020年06月23日 12点06分 9
吧务
level 15
囧丫乙 楼主
路灯花产生二十个光线图
10个顺时针旋转10个逆时针旋转
旋转的速度不一样
每个光线初始状态应该是原始大小,0.5的alpha,
根据配置文件应该是在20-40初始确定,确定以后这个光线的速度应该是不变的
每个光线图一边以固定的速度固定的方向旋转,一边以固定的速度收缩、复原
收缩范围在0.7到1之间,这个应该是不变的下限和上限
根据观察,光线的透明度应该是在收缩到0.7的时候为0.3,复原到1的时候为0.5
ParticleDuration微利持续时间的[60 120]暂时还没弄明白
2020年06月23日 12点06分 10
猜想60 120的持续时间,可能是每个光线缩放速度,每次缩放所花时间在60厘秒-120厘秒之间的一个随机数,这个随机数应该是初始化就固定了的。
2020年06月23日 12点06分
对了,这个[20 40]的估计速度,不确定是什么速度,角度不太像,目前估计应该是转动的弧长长度,如果是的话,那么换算成角度应该是11度-22度,1厘秒转22度的话未免太快,估计应该是1秒的转速在11-22度之间。
2020年06月24日 01点06分
光线在50%时缩到下限。收缩范围上限是1,下限不固定,是0.7~1的随机数,与水面光点类似,也由[+58]决定。[20 40]是每秒转动的角度,由粒子数据[+50]决定,也是0~1的随机数。
2020年07月02日 15点07分
level 12
啥也看不懂
2020年06月23日 13点06分 11
吧务
level 15
囧丫乙 楼主
以上是目前未上手写代码前对灯笼光线的推测,真正开始写的时候可能会进一步修正。
下面记录一下对白天泳池和夜晚泳池的观察和推测
夜晚泳池没有闪光,其它跟白天泳池的合成和运动方式一样
首先是素材方面
两个水池相关素材都在pak包的images里
pool.jpg、pool_base_night.jpg 这两个图应该是合成后的效果图,在游戏中没有用处
2020年06月24日 01点06分 13
level 6
囧姨nb
2020年06月24日 02点06分 14
吧务
level 15
囧丫乙 楼主
白天泳池的主图是pool_base.jpg
蒙版是pool_base_.png
夜晚水池的主图是pool_base_night.jpg
蒙版跟白天泳池公用
2020年06月24日 02点06分 15
其中主图就是实际显示出来被我们看到的图,格式是jpg,考虑到是因为颜色复杂丰富且要注重文件大小故而用jpg而不用png,但是jpg格式没有透明通道且颜色,蒙版png就是用来解决这个问题的。蒙版盖在主图上,以png蒙版的黑百度作为透明值,png上黑色的部位就是主图上完全舍弃的、透明度最高的。
2020年06月24日 02点06分
蒙版上白色的区域,就是主图上透明度为0完全可见的,蒙版上灰色的就是半透明的,透明度计算应该是 灰度数值/255*1,假如灰度数值为127,那么就是大约0.5的透明度。主图+蒙版合成处理后的图作为水池的底层,是的,这还是底层,接下来还有其它层。
2020年06月24日 02点06分
吧务
level 15
囧丫乙 楼主
再往上一层应该可以叫做水的阴影
跟底层图一样也是由主图和蒙版合成的
白天水池的阴影主图pool_shading.jpg
夜晚水池的阴影主图pool_shading_night.jpg
公用的蒙版pool_shading_.jpg
2020年06月24日 02点06分 16
吧务
level 15
囧丫乙 楼主
这个阴影图就很简单了
就是两块纯色的图而已
蒙版蒙上去
形成一块白色区域的纯色最清晰其他区域半透明的阴影效果图
然后这层图就是第二层了
2020年06月24日 02点06分 17
1 2 3 尾页