找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6243|回复: 0

[转载] Ren'Py引擎从入门到放弃(支线4·续)—--假装3D的模拟摄像机和...

[复制链接]
发表于 2019-5-11 16:01:20 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 BuErShen 于 2019-6-28 18:49 编辑

Ren'Py引擎从入门到放弃(支线4·续)——假装3D的模拟摄像机和图层

世上无难事,只要肯放弃。

支线系列是独立于基础之外的内容,会引用一些外部平台大佬的内容,感觉有困难的同学可以暂时不(fang)看(qi)。

本篇内容继续讲解模拟摄像机和3D图层。请善用官方文档的搜索功能,能解决大部分疑问。

第一个问题:按shift+P进入的设置菜单有哪些功能?

答:菜单的默认选项本质都是文本按钮,不过默认文本按钮没有背景色,使用的时候不是很友好。建议修改配置,让指针悬停状态的按钮背景色发生改变。打开screens.rpy文件,找到 style button 的配置,在其中增加一行:
[RenPy] 纯文本查看 复制代码
hover_background "#00a"  #这里设置的是纯蓝,可以改成自己需要的颜色

(这里属于GUI定制化的内容,我还没有讲过,以后的主线大概会解释。)

除了最上面的时间轴,一级菜单总共有3行。我给第一行主要功能遍号如下:

我给第一行主要功能遍号如下.jpg

default warper虽然有两个单词,其实是一个按钮……点击之后会进入一个warper函数列表。如图:

点击之后会进入一个warper函数列表.jpg

默认使用 linear(一次线性函数)。作者很贴心地在右侧做了各种非线性函数的示意图。

rot 可以显示纵横各两条三分线。

② rot 可以显示纵横各两条三分线.jpg

hide 能够隐藏整个菜单,便于查看效果。鼠标在点击窗口内任意位置可以取消隐藏。
play 播放自定义的变换和动画效果,配合时间轴使用。
clipboard 将变换和动画效果生成脚本并置入剪贴板。
最后那个 close关闭菜单,回到工程主线中。按 Esc键 效果相同。
第二行菜单是 关键帧(keyframe)设置。如果学习过Pr 或 Ae之类视频编辑软件的同学一定理解关键帧的概念。这里也是类似的。不过现在这套工具中不用手动添加关键帧。调整时间轴,设置所有图片的变换和动画,默认就生成了一个关键帧。第二行的菜单功能主要是删除关键帧和平移(move)某个关键帧(也就是只修改时间不修改图像特性值)。

第三行菜单分别对应图像(Images)、3D图层(Layers) 和 3D摄像机的特性(property)。先说 3D图层和摄像机。2D摄像机一直是灰色的,不清楚原本计划做什么用。

3D图层只有一个深度值(depth),表示图层与相机之间的距离,默认值为1848。这个值越大,图层上的图像越小,近大远小嘛。需要注意,只有在options.rpy文件中注册过的图层才能在这里列出。
摄像机有xyz坐标值和旋转(rotate)。这里的旋转只能是以 z轴旋转。
Images菜单是这套工具最核心的功能……点击选中该菜单后,下面会显示一行二级菜单,分别是注册的各个图层名称(所有图层,不仅仅是3D图层)。选中一个图层会有“+”号,及图层上使用的所有可视组件。选择对应的可视组件后,该组件的几个中间变换特性就会显示在下方的滑动条中,使用鼠标就能直接调节。如果点击那个“+”号,就会打开一个图像选择器,右侧列出了Ren'Py自动识别和脚本中定义的所有可视组件,鼠标移动到可视组件名称上会在界面中央显示对应的图像。在图层上添加的图层按照名称的拉丁字母自动排序。另外,工具有个缺点,图层删除可视组件时只能全部清空,不能指定删除某一个,肥肠蛋疼……所以添加图像需要格外注意,万一加错了一个“Remove”就全部白搭。

第二个问题:具体有什么用处?

这里选取了我迦的几张背景图捣鼓了下,录屏结果比较大就以视频形式上传了。

https://v.vzuu.com/video/1107681 ... oplay=false&useMSE=

必须吐槽一句,“move keyframe”功能很容易出现程序崩溃问题,慎用……不要问我是怎么知道的……

虽然只有5张图片,自动生成的动画脚本还是有点多,这里也粘贴出来供参考:
[RenPy] 纯文本查看 复制代码
show bg046  onlayer master:
        subpixel True xpos 0.5 ypos 1.0 xanchor 0.5 yanchor 1.0 rotate None
        parallel:
                yanchor 0.0
                linear 2.0 yanchor 0.5
                linear 2.0 yanchor 1.0
        parallel:
                xpos 0.0
                linear 2.0 xpos 0.0
                linear 2.0 xpos 0.0
        parallel:
                xanchor 0.0
                linear 2.0 xanchor 0.0
                linear 2.0 xanchor 0.0
        parallel:
                ypos 0.0
                linear 2.0 ypos 0.5
                linear 2.0 ypos 1.0
        parallel:
                alpha 0.0
                linear 2.0 alpha 1.0
                linear 2.0 alpha 0.0
show bg018  onlayer master:
        subpixel True xpos 0.5 ypos 1.0 xanchor 0.5 yanchor 1.0 rotate None
        parallel:
                alpha 0.0
                linear 6.0 alpha 0.0
                linear 2.0 alpha 1.0
                linear 2.0 alpha 0.0
        parallel:
                xpos 1.0
                linear 4.0 xpos 1.0
                linear 2.0 xpos 1.0
                linear 2.0 xpos 0.5
                linear 2.0 xpos 0.0
        parallel:
                xanchor 1.0
                linear 6.0 xanchor 1.0
                linear 2.0 xanchor 0.5
                linear 2.0 xanchor 0.0
        parallel:
                ypos 1.0
                linear 6.0 ypos 0.0
                linear 2.0 ypos 0.0
        parallel:
                yanchor 1.0
                linear 6.0 yanchor 0.0
                linear 2.0 yanchor 0.0
show bg001  onlayer master:
        subpixel True xpos 0.5 ypos 1.0 xanchor 0.5 yanchor 1.0 rotate None
        parallel:
                yanchor 0.5
                linear 8.0 yanchor 0.5
        parallel:
                xpos 0.5
                linear 4.0 xpos 1.0
                linear 4.0 xpos 0.5
        parallel:
                xanchor 0.5
                linear 8.0 xanchor 0.5
        parallel:
                alpha 1
                linear 8.0 alpha 1.0
        parallel:
                ypos 0.5
                linear 8.0 ypos 0.5
        parallel:
                zoom 0.0
                linear 8.0 zoom 0.0
                linear 2.0 zoom 0.5
                linear 2.0 zoom 1.0
show bg017  onlayer master:
        subpixel True xpos 0.5 ypos 1.0 xanchor 0.5 yanchor 1.0 rotate None
        parallel:
                alpha 0.0
                linear 2.0 alpha 0.0
                linear 2.0 alpha 0.0
                linear 2.0 alpha 1.0
                linear 2.0 alpha 0.0
        parallel:
                xpos 1.0
                linear 4.0 xpos 1.0
                linear 2.0 xpos 1.0
        parallel:
                xanchor 1.0
                linear 4.0 xanchor 1.0
                linear 2.0 xanchor 1.0
        parallel:
                ypos 1.0
                linear 4.0 ypos 1.0
                linear 2.0 ypos 0.5
                linear 2.0 ypos 0.0
        parallel:
                yanchor 1.0
                linear 4.0 yanchor 1.0
                linear 2.0 yanchor 0.5
                linear 2.0 yanchor 0.0
show bg093  onlayer master:
        subpixel True xpos 0.5 ypos 1.0 xanchor 0.5 yanchor 1.0 rotate None
        parallel:
                alpha 0
                linear 2.0 alpha 0.0
                linear 2.0 alpha 1.0
                linear 2.0 alpha 0.0
        parallel:
                xpos 0.0
                linear 2.0 xpos 0.0
                linear 2.0 xpos 0.5
                linear 2.0 xpos 1.0
        parallel:
                xanchor 0.5
                linear 2.0 xanchor 0.0
                linear 2.0 xanchor 0.5
                linear 2.0 xanchor 1.0

自动生成的脚本应该是每2个关键帧之间都会生成对应的 transform

通过滑动块拖动能调整的时间轴最多只有7秒,可以点击“time”后直接输入目标时间点的值,理论上可以无限长。

总结下这套工具(插件)的主要用法,单独建个工程用来设计和产出动画脚本……不知道跟粒子之类的是否可以结合起来使用……

吐槽部分:五一假期嘛……emmmm……被某个朋友鄙视了一顿,因为合作的项目进度缓慢。看起来可以考虑鸽一下这里的更新了……

预告部分:还没想好下一篇写什么。按照进度应该准备讲定制化GUI了……头大,想放弃……




“Ren'Py引擎从入门到放弃”系列教程


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

本版积分规则

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

GMT+8, 2024-4-27 08:44 , Processed in 0.074306 second(s), 16 queries , File On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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