TCAX 字幕特效制作工具官方论坛 | ASS | TCAS | Python | Aegisub | Lua

 找回密码
 新人加入
查看: 6044|回复: 9
打印 上一主题 下一主题

【River】河の对岸的个人特效感想 [复制链接]

Moderator

苦练姿势,夺回人类的尊严

Rank: 5Rank: 5

跳转到指定楼层
楼主
发表于 2012-8-2 21:10:10 |只看该作者 |倒序浏览
本帖最后由 河对岸 于 2012-8-3 02:02 编辑

先把前段时间的五角星发上来   曲奇or葬大作品?

HypotrochoidOutThreeFifths.gif

111.jpg

R = 5  r=3  d=5

222.jpg

基本就是根据喂鸡上面的公式写的
这个函数要先用到hu()函数 为了让圆度数弧度制转换
之所以循环1080遍是因为 要转3圈才能完成一个完整的五角星
333.jpg

生成的列表是[(x1,y1),(x2,y2),(x3,y3),(x4,y4),(x5,y5)]这种格式
2

查看全部评分

Moderator

苦练姿势,夺回人类的尊严

Rank: 5Rank: 5

沙发
发表于 2012-8-4 15:40:40 |只看该作者
22222.jpg
关于这个效果的烟云部分的仿制

33333.jpg
7X3的代码如此 是无规律的随机 随机格式为:
m (一对随机数) b (一对随机数) (一对随机数) (一对随机数) b (一对随机数) (一对随机数) (一对随机数)
随机范围是 0-200
屏幕快照 2012-08-04 下午3.27.39.png

如此写函数  因为那一行截图放不开 因此我回车分了三行 这样不知道能不能运行 原本一行
屏幕快照 2012-08-04 下午3.25.31.png

ass的效果如此写道

200行 73大爷好萌  zifu部分因为一行太多我分行的 原本一行

然后是73大爷的move起始点是凑字的 我实在没精力向他那么EP了 因此我选择的是随机

大概思路是 像素点生成的坐标列表内  列表数字随机 应该能做到他那样的凑字

Moderator

苦练姿势,夺回人类的尊严

Rank: 5Rank: 5

板凳
发表于 2012-8-11 21:00:14 |只看该作者
本帖最后由 河对岸 于 2012-8-11 21:05 编辑
  1. from math import *
  2. from random import *

  3. def listsui(a):
  4.   b = random.choice(a)
  5.   return b
复制代码
列表元素随机
使用方法是:
akb = [1,2,3,4,5,6,7]

listsui(akb)

Moderator

苦练姿势,夺回人类的尊严

Rank: 5Rank: 5

地板
发表于 2012-8-29 16:04:38 |只看该作者
本帖最后由 河对岸 于 2012-8-29 16:19 编辑

屏幕快照 2012-08-29 下午4.01.59.png
small大的列表随机 这个似乎更好用写
我之前写的那个在做特效的过程中曾经出现错误 当时忙着效果没仔细研究为什么有错 但但是写那个函数的时候是可以用的 似乎有一些条件限制    small大这个目前没发现条件限制
2

查看全部评分

Moderator

苦练姿势,夺回人类的尊严

Rank: 5Rank: 5

5#
发表于 2012-8-29 16:16:59 |只看该作者
屏幕快照 2012-08-29 下午4.06.53.png

特效中的一些构思 特定的一些条件应该善用这些条件语句
前段时间做的贝塞尔曲线  以前写的贝塞尔都在用一个辅助函数 但是那个辅助函数相当麻烦 很多隐藏bug
因为贝塞尔的起始点是随机的  结束点是字符坐标 所以第三点坐标的随机范围是起始点随机范围一倍大而且不在起始点随机范围内取值的时候 可以比较好的避免斜率为o或不存在的问题 虽然算出的曲线可能有类似一条直线的情况 但不会太夸张

这段语句的意思是 i 历遍akb列表中所有的元素, 如果 i 的值也在ske的列表和sdn的列表内 ,打印 i  。  意思就是打印三个列表内共有的那个元素
也就是3      

Moderator

苦练姿势,夺回人类的尊严

Rank: 5Rank: 5

6#
发表于 2012-9-15 17:03:09 |只看该作者
本帖最后由 河对岸 于 2012-9-15 17:14 编辑
  1. # -*- coding: utf-8 -*-
  2. # ass绘图爬虫
  3. from string import *
  4. from os import *
  5. akb = 'm 10 30 5 l 19 40 l 31 43 l 12 64 79 b 82 34 56 b 23 34 45 '  # m l l l b b
  6. # 把akb内所有元素独立出来重写列表 方便之后的重组
  7. akb_list = []
  8. for i in akb:
  9.         akb_list.append(i)
  10. print akb_list
  11. print 'akb内元素个数是'+str(len(akb))
  12. # 寻找关键标记
  13. l = 'l'
  14. b = 'b'
  15. m = 'm'
  16. sign = []                        #目标物的列表
  17. sign.append(l)
  18. sign.append(m)
  19. sign.append(b)
  20. print sign
  21. # 分析出所有关键标记的健值
  22. Dictionary = []
  23. # 健值使用函数 enumerate()
  24. for n,s in enumerate(akb):
  25.         if s in sign:
  26.                 Dictionary0 =(n,s)
  27.                 Dictionary.append(Dictionary0)

  28. print Dictionary
  29. # 把每个关键标记后的坐标数值提取出来准备重组
  30. setDictionary = []
  31. a = 1
  32. while a < len(Dictionary):
  33.         setDictionary0 = akb_list[Dictionary[a-1][0]+1:Dictionary[a][0]]
  34.         setDictionary.append(setDictionary0)
  35.         a += 1
  36. print setDictionary

  37. space_list0 = []
  38. b = 0
  39. while b < len(setDictionary):
  40.         for u,k in enumerate(setDictionary[b]):
  41.                 if k == ' ' :
  42.                         space0 = (b,u,k)
  43.                         space_list0.append(space0)

  44.         b += 1
  45. print '空格坐标 '+str(space_list0)
  46. # 把空格之间的字符串类数值想加
  47. # 先把每个组内非空格的字符提取出来写入list
  48. # 然后进行数值编辑
  49. spaceno_number = []
  50. c = 1
  51. while c < len(space_list0):
  52.         q = space_list0[c-1][0]
  53.         w = space_list0[c][1]
  54.         w1 = space_list0[c-1][1]
  55.         l = setDictionary[q][w1:w]
  56.         d = 0
  57.         e = ''
  58.         while d < len(l):
  59.                 e = e + l[d]
  60.                 d += 1
  61.         r = (q,e)
  62.         spaceno_number.append(r)
  63.         c += 1
  64. #print r
  65. print '数值整合后的结果 :'+str(spaceno_number)
复制代码
开学前写的分析ass绘图代码的脚本 本来想做字体的肆意变形等等的
后来感觉真要把效果写的带感真心好累啊 就扔了
屏幕快照 2012-09-14 下午11.58.52.png
这是提取出来的结果
没有寻思要以什么样的格式生成出来  
也没打包成函数
最后生成的数组开头数字是第几个字母的计数 0是第一个m的计数值
本来想把所有坐标提取出来做一个随机数的变形的 貌似应该蛮带感
但是感觉这样做出来的效果偏劲爆风 和手上那个慢歌不搭调 就弃这了 啥时候需要了再来完善吧

感觉写这样的脚本真涨熟练度  很容易看自己到底啥本事啊
代码写的又臭又长神马的
编程思路呆板老是钻进牛角尖神马的
各种不熟练神马的
各种隐藏bug神马的
写完一脸翔神马的

我用了爬虫两个字 挺不要脸的 不过这也算是爬虫吧
1

查看全部评分

Moderator

苦练姿势,夺回人类的尊严

Rank: 5Rank: 5

7#
发表于 2013-1-5 13:55:55 |只看该作者
本帖最后由 河对岸 于 2013-1-5 13:59 编辑

3333.JPG
先发一个椭圆坐标表现方法
x_和y_是圆心坐标 a是最长直径/半径(?忘记了。。)a_是a的百分比长度

打算实现的效果是能量罩 本来的想法是通过球体计算坐标系实现3D效果 后来发现没意义 就算求出结果按照我的想法还得平面坐标系里面实现

现在效果的实现想法是 圆的Y长度不变 x按百分比缩小 在结合透明度和ass层的差异实现球体的立体效果

以上是实现效果的基础 剩下的放假慢慢造
2

查看全部评分

Moderator

苦练姿势,夺回人类的尊严

Rank: 5Rank: 5

8#
发表于 2013-2-1 16:30:17 |只看该作者
屏幕快照 2013-02-01 下午4.21.19.png
一连串图片素材组成动画
7X3大神指出的一条路
AVS结合ASS也可以做出华丽屌爆不一样的东西
一直以来想研究的东西 借琴浦来一发
AVS有必要深入学习一下

图片是AVS脚本生成函数

Moderator

苦练姿势,夺回人类的尊严

Rank: 5Rank: 5

9#
发表于 2013-8-1 12:57:31 |只看该作者
本帖最后由 河对岸 于 2013-8-1 12:58 编辑
  1. def Fry_syl1(pos_x,pos_y,x_bili,y_bili,num_syl_len,num_syl_str):
  2.     change_pos_x = pos_x *float(x_bili*10)/100 - num_syl_str*2
  3.     shang_y_chang = ((10.0- y_bili+0.0)/2)/(num_syl_len)/10
  4.     change_pos_y = pos_y + num_syl_str*shang_y_chang

  5.     y0 = 0 + shang_y_chang * (num_syl_str)
  6.     x1 = 0 + (float(x_bili)/10)** (num_syl_str+1)
  7.     change_y = float(10 - y_bili)/10/2
  8.     y1 = 0 + float(shang_y_chang) * (num_syl_str+1) - y0
  9.     x2 = x1
  10.     y2 = 1 - float(shang_y_chang) * (num_syl_str+1) - y0
  11.     x3 = 0
  12.     y3 = 1  - float(shang_y_chang) * (num_syl_str) - y0

  13.     return [change_pos_x,change_pos_y,x1,y1,x2,y2,x3,y3]
复制代码
syl特效下的透视  模拟出整行frzy那种感觉

Moderator

苦练姿势,夺回人类的尊严

Rank: 5Rank: 5

10#
发表于 2013-11-21 16:11:44 |只看该作者
不知名作者用js模拟出的滑动流体粒子

这个是抓取下的源码

滑动流体粒子-JS.zip

92.38 KB, 下载次数: 1724

1

查看全部评分

您需要登录后才可以回帖 登录 | 新人加入

GitHub|TCAX 主页

GMT+8, 2024-12-4 16:38

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部
RealH