马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 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行。我给第一行主要功能遍号如下:
① default warper虽然有两个单词,其实是一个按钮……点击之后会进入一个warper函数列表。如图:
默认使用 linear(一次线性函数)。作者很贴心地在右侧做了各种非线性函数的示意图。
② rot 可以显示纵横各两条三分线。
③ hide 能够隐藏整个菜单,便于查看效果。鼠标在点击窗口内任意位置可以取消隐藏。
④ play 播放自定义的变换和动画效果,配合时间轴使用。
⑤ clipboard 将变换和动画效果生成脚本并置入剪贴板。
最后那个 close关闭菜单,回到工程主线中。按 Esc键 效果相同。
第二行菜单是 关键帧(keyframe)设置。如果学习过Pr 或 Ae之类视频编辑软件的同学一定理解关键帧的概念。这里也是类似的。不过现在这套工具中不用手动添加关键帧。调整时间轴,设置所有图片的变换和动画,默认就生成了一个关键帧。第二行的菜单功能主要是删除关键帧和平移(move)某个关键帧(也就是只修改时间不修改图像特性值)。
第三行菜单分别对应图像(Images)、3D图层(Layers) 和 3D摄像机的特性(property)。先说 3D图层和摄像机。2D摄像机一直是灰色的,不清楚原本计划做什么用。
3D图层只有一个深度值(depth),表示图层与相机之间的距离,默认值为1848。这个值越大,图层上的图像越小,近大远小嘛。需要注意,只有在options.rpy文件中注册过的图层才能在这里列出。
摄像机有x、y、z坐标值和旋转(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引擎从入门到放弃”系列教程
|