ASS一切都好信息网

ASS一切都好信息网

当前位置: 主页 > ASS一切都好 >

ass特效编程--Python流

ASS一切都好信息网 时间:2022年09月18日 11:41


  以上是乱七八糟的声明,可以直接略过的 因为该教程是新手培训教程 所以先从教打 K 开始(。。 想看特效编程的同学可以鼠 。) 标拖进度条了。 啊 再说一句: 该教程是新手教程,适合对 ass 文件了解,对 ass 各个标签都熟悉,就 算记不住怎么用也能查资料后使用,并且对 python 语法有基本了解的人阅读。 Python 语法我看了两天 看懂这个脚本也不过就是一星期的时间 所以很简单的。

  好!现在讲打 K! 其实我真的不知道这有什么好讲的,感觉自己学 ass 的时候没在这地方绊过,但是身边有好 多不会打 K 的时间轴,所以现在简单说下吧。 打 K 工具选用 aegisub 先打开时间轴

  先把行的开始时间和结束时间拉好 这里的行开始结束时间 就是一会脚本中的 kai_yuan 和 jie_yuan 变量 要注意的是 拉卡拉 OK 轴子是不能像拉电影视频轴子一样随意的! 一切都要以准确 适合观看 不瞎狗眼为最高准则 声音开始的时候 就是开始时间 声音结束的时候 就是结束时间 不要莫名其妙的出现一段空白 因为这段空白在之后的效果制作里面是占用时间的 完全按照节拍来的效果肯定是最带感的效果 做卡拉轴时 请多想一下给人的视觉效果 要知道 修改卡拉 OK 的轴子所废的功夫 重新拉一次都够了

  会出现分割线 按照词组分割 我基本上是按音节做 K 但是我对日文一窍不通 所以我是把 每个字都分割开了 这个是日语知识 本人实在是无能为力

  然后接受分割 音频谱曲会出现黄色的分割线 然后你按照每个字的发音长短分配音频区域就 OK 了 现在说个小经验 你分割完毕后 鼠标移动到黄色分割线上是呈现左右箭头形状的 如果你是按照声音开始 就是 K 值开始的原则分 K 时间的话 现在每个黄色分割线向左移动左右箭头一半这么个距离 让 K 值提前声音开始,因为所谓的视觉停留 人类的狗眼和狗耳总是不能同步,这事挺蛋疼的 提前半个箭头是我拉了好多 K 值后总结出的经验 感觉半个箭头的距离会让你的 K 值显示

  分配好时间后 卡拉 OK 上面那一行的小按钮 那个小对号可以让 K 值进入每个字 上面那排小按钮建议看下该怎么用 有几个小功能不错 音频谱最右边那几个竖着的进度条 最左的进度条是拉长音频谱 你这一句歌时间太短的话 长度不适合打 K 可以用这个拉长 然后按提交 然后下一句 我认为没什么要讲的了 体力活 没难度。 ###############################################################################

  现在开始讲 7X3 流 py 脚本的使用方法, ,73 流只是我个人的叫法,解释器是 python 解 释器,脚本格式长的差不多的我统统叫 73 流的-。-! 脚本原作者是:天下无敌 7X3 是个说,脚本注释写葡萄牙语的家伙,该神写的效果都 极其复杂且碉堡,强力推荐 我要讲的这个脚本的本质是: small_code_02 这个库文件, 这个脚本是按照 7X3 的那个脚 本格式写的新脚本,其中关键的函数全部换成了 small_code_02 中的函数。而 7X3 用到的那 个脚本的核心库文件并没有公布源代码。 small_code_02 的作者是:small 据我所知 7X3 的脚本翻译者是:葬樱 两位都是 ass 特效群(105120985)的管理。 闲话说完开讲!

  一开始是导入库文件,这是 python 语法,random 是个随机数字的模块,string 是字符串, time 是时间,small_code_02 是关键库文件,ass 文件的结构生成,写入,ass 标签的输入等 等等等,river_code 是我自己写的模块,里面写的几个小函数支撑自己的效果,math 是数字 普及下 py 知识: from XXX import XXX 的意思是从 XXX 库文件中导入你要导入的函 数,* 是导入所有的函数 下面两行是设置你要做的 ass 文件的分辨率,ass 头文件中的 PlayResX 和 PlayResY。 下面这俩是帧,我基本不修改。 PS:Ass 的分辨率不是必须和视频的分辨率一致的,1280 的 X 值中心是 680,压制进 X 为 640 宽的视频中一样是在中间位置,因此,分辨率高的 ass 文件内,效果会比较细腻。

  这个就是库文件,库文件里面定义了一大堆函数,这是 python 的编程模式~ 写的库文件放在 python 安装根目录下 之后可以在命令行和脚本中引用。 Small_code_02 中定义了很多生成 ass 标签的函数,把输入的 K 值信息分解,制作时间 轴,制作效果部分的函数,还有生成 ass 文件格式的函数

  这里是 ass 样式的设置前 4 个是文字主体,文字次要,文字边框,文字阴影的透明度。值得 一提:这里设置的数字是 16 进制 00 是 0 。FF 是 255 取值范围(0,-255) 第五行到第八行:是字体颜色,主要颜色,次要颜色,边框颜色,阴影颜色 然后是边框大小 阴影大小 是不是加粗 是不是倾斜 你要是对 ass 文件很熟悉的话 你会知 道

  下面那些散乱的数字是 ass 文件中 Style 样式后面跟着的那些数字 注意样式是 edr 位置 这里写的这个 X 值坐标,对整个效果是没有作用的,只有文字竖排出现时才会起到作 用。 Y 值指你这一行文字出现的高度位置,决定文字出现在视频哪个 X 坐标方位的是最后一行 的 ALT_FRA_KAR 。 1 是出现在视频最左边,2 是出现在视频正中间,3 是最右边。这个 是整行的位置 不会因为你字数多少而影响效果 small_code 库文件中的函数会自动算每个 字的 X 坐标。

  第三行的是生成 ass 文件的路径 这里友情提示:路径中不能包含中字,这可能是 python 对中文支持不够给力的原因,linux 下似乎也有这毛病。 第四行是 ass 文件的名字 字体设置部分 第一个是字号 在 1280X720 的分辨率下,这个字号视觉良好,在其他的分辨率下过大。 另外一行中每个字都在 ass 文件中占一行,因此每个字都有一个 pos 坐标 两个字之间的距 离就是这个字号的数值。同时也是字宽的数值,字高的数值大了个概,也是它。 字体的名称会被写入 ass 文件的样式中,下面那个字体路径 比如你做像素字等效果时,要 用到 python 模块读取字体。该路径一样不可以有中文字符 如果你写到的特效用不着读取字体信息,那么这行是不工作的,但是不能没有。 比如说我电脑上的那个 1111.tff 是黑体。 但是我的这个脚本生成出的 ass 特效字体是有泽太

  这里没什么值的说的 就是一些初始化,python 语法 没必要动的东西 下面这个是对 ass 文件的控制 第一个 是横竖控制 文字横排出现还是竖排出现 我没用过 我是把 X 和 Y 的值颠倒来实现 竖排的。 第二个是产生 ass 开头的那些信息 那个不出现 ass 文件不显示东西啊 也没必要动 第三个第四个第五个 都没动过 最后两个有点意思 有时候一个 K 值里面好几个字 你可以让每个字都有一个效果显示 这个歌词有英文单词的时候希望关掉 因为字母和汉字的字宽不一样 效果会很奇怪 时间是不是分开 你可以让一个单词的每个字母都显示效果 但是不希望时间也平均分开 的话 这个要关掉 True 和 False 这是布尔值 编程基础知识。

  开始的数据是脚本 往几个列表内存储那些时间 词组 字宽字高的信息 下面这个看起来很长很吓人 其实就是往生成的 ass 文件中写入 ass 的样式(Style) 还有效果开始前的那几句 样式名 字体 字号 四个颜色 那一串数字(边框大小阴影大小字符间距啥啥啥的) 这里定义了 2 行 其实生成只有一行 你可以自己设置 这里只讲明这是在干什么了

  kai_yuan 是这一行的开始时间 jie_yuan 是这一行的结束时间 print 那里是在 python shell 中打印这个脚本运行的进程 运行到行:行数 这行的第一个字 记住 python 的计数规则 计数是从 0 开始 这和 java 是一样的 剩下的没必要改

  重点来了 这里是设定效果的时间部分 这里只写了两个方式 你可以自己写 用到多少个就写多少个 Kai_yuan 是行的开始时间 Jie_yuan 是行的结束时间 K_zhi 是每个字的 K 值的时间 zi_kuan 是字宽 zi_gao 是字高 这里的 kai_cha_shi 是从 kai_yuan 减去 30 后 第几个字 加 几 X2 的时间 CON_COL_KAR 是这行有的字数 这些在 while 循环中 每循环一次 字数加 1 循环改行字数 次。 Kai_cha_shi 显示出的效果是字依次出现

  Pos_x 是每个字的 X 坐标的数值 Pos_y 是每个字的 Y 坐标的数值

  从这里开始 脚本正式进入效果部分的制作部分 开头第一句 if CON_LIN_KAR in [] : 这是个判断语句 ass 打 K 文件中这几行的歌词会被 实现下面写的效果 字符内的这些函数如 pos() a1() a3() fscxy() 都是 ass 标签在 small_code 中的书写方式 Zifu 是效果的部分 Kaishi 和 jieshi 是这行特效的开始时间和结束时间 这个 txt1,2,3,4 是含有图形信息的写 法 这段代码我写了一个贝塞尔曲线的效果 让一个小球在文字上跳跃。跳跃速度是 K 值时 间 计算机图形学原理: 一个点的移动是由一连串点的出现和消失构成的, 文件中之所以 ass 有 move 标签 那是开发团队已为你封装好,你可以直接拿来用 但其工作的原理依然是一连 串点的出现和消失 这里的效果 通过 river_code 中的 home_sanjiaoxing()函数, 由该文字的 XY 值和下一个文 字的 XY 值推导出一个三角形的第三个坐标, bezl2()函数借 3 个坐标导出贝塞尔曲线轨迹 用 上的坐标点们然后在下面的循环中 pos 每一个坐标点 并且设置好每一个点的开始和结束时 间。 贝塞尔曲线导出原理不明白请去百度 以上效果实现方法对于特效编程刚入门的新手可先不看。 在 while 循环前 我写了一个 print k_fen ,len(bezXY),k_zhi 这句不是必须存在的 我只 是为了方便在命令行观察导出的数据数值而写的这句 生成的 ass 是这样的 部分 一句要导出的 ass 行数太多

  每个 zifu layer kaishi jieshi ael() 这在 ass 中生成一行效果 这样的一部分代码暂且叫一段 吧,前三段实现的效果是歌词的显示,看时间部分是从行开始时间左右到行结束时间的,其 中在每个字的 K 值时间内 出现了一个文字主体部分透明度变化的效果 下面的 while 循环 循环 7 遍 文字主体完全透明 边框透明度 100 重复一个文字变大然后 变小的效果,而效果开始的时间和结束的时间导致这个变大效果不是同时出现 在视觉上是 个幻影效果。 下面是歌词文字的显示 ass 代码

  Python 的语法中没有大括号包裹的代码块 一切都是以缩进为基本的分段 缩进就是空格 所以 python 的代码格式会很工整 因为不工整脚本没法运行 因此 你写效果的时候 不要破 坏脚本里面的缩进 那样会引起逻辑混乱 也不要某一行代码少一个空格 那样脚本会显示错 误,没法运行。 对新手来说 这样可能会有蛋疼的经历 但是一旦接受这个设定,还是会很带感的 Python 下的工整代码很酷!

  以上就是脚本的讲解。这是入门基础。 对于做 ass 特效而言,以上的这些只是你实现脑中美丽效果的手段。对于 FXer 来说,创 意永远是最重要的。而且其实 ass 只是很小的一片天空,计算机图形学的世界还是十分广阔 的。在此推荐下 aegisub 的开发者写的那篇文章《如何学习制作卡拉 OK 特效》 ,看完后,你 一定会有一番感悟。中文翻译是:soleil 艾 和 MeteorX

  学会以上的手段,或许你还会接触到更厉害的技术。而这时,你仅仅刚升到 70 级。 70 级,只是一个开始。 相信该文对你会有启发。



ass特效编程--Python流的相关资料:
  本文标题:ass特效编程--Python流
  本文地址:http://www.45678123.com/ASSyiqieduhao/0918902.html
  简介描述:以上是乱七八糟的声明,可以直接略过的 因为该教程是新手培训教程 所以先从教打 K 开始(。。 想看特效编程的同学可以鼠 。) 标拖进度条了。 啊 再说一句: 该教程是新手教程,...
  文章标签:ASS一切都好
  您可能还想阅读以下相关文章:
----------------------------------