DHR-動畫研究字幕組

標題: [羽的Aegisub教學(4)]pre-line的妙用 方程式和定位點 [打印本頁]

作者: 羽hane    時間: 2014-10-6 10:11
標題: [羽的Aegisub教學(4)]pre-line的妙用 方程式和定位點
本帖最後由 羽hane 於 2014-10-6 12:12 編輯

一段時間沒來了~之前的文章都貼在電腦資訊區
這一次簡單說明template pre-line的使用方法~如字面上所說template pre-line只是在每行字幕前面加上標籤
大部分都是拿來上\fad或\blur用的
因此無法用在製作卡拉OK特效(廢話)
不過對於製作圖片、影片濾鏡蠻好用的等等

1.使用template pre-line畫方程式
這東西原理不難,如我的簽名檔所示
首先先定義原點X0,Y0
假設原點是 640,360所以先設個變數
code once
  1. x0=640 y0=360
複製代碼
利用\pos畫出方程式

假設你要畫的圖為 y=(1/4)X^2
(正方向)
template pre-line loop 640
  1. {\an5\pos(!x0+j!,!y0+j*j/4!)}●
複製代碼
(負方向)
template pre-line loop 640
  1. {\an5\pos(!x0-j!,!y0-j*j/4!)}●
複製代碼
這邊的an5是用來置中對齊用的
然後下面放一行空字幕 就可以畫出方程式了
很簡單吧w


2.畫定位點
其實原理很簡單 你只要知道會算定位點的位置就會畫了
例如把 1280*720的畫面上面畫上 159*89的定位點
畫法如下
先算出點的個數 160*90=14151 這代表要loop14151次
在算出每個點的間距
1280/(159+1) = 8
720/(89+1)  = 8
使用pos 一軸取餘數 一軸用除法然後使用math.floor取到整數
所以
(由左向右排)
template pre-line loop 14151
  1. {\an5\pos(!(j-1)%159*8+8!,!math.floor((j-1)/159)*8+8!)}●
複製代碼
(由上往下排)
template pre-line loop 14151
  1. {\an5\pos(!math.floor((j-1)/89)*8+8!,!(j-1)%89*8+8!)}●
複製代碼
上面兩種方法皆可
然後下面放一行空字幕 就可以畫出方程式了
(這邊的空字幕放一行就好,放太多行放到電腦當掉自行負責)

圖片之後再補上去
延伸課題:三坪房間侵略者ED馬賽克效果再現
在三坪房間侵略者ED是用8*4的格子(x軸方向兩堆端的格子方向各切一半)另一組則是7*5上下各被切一半
因為開頭只有第1組的那些格子在轉動 所以後面的就不考慮了

因此先算出格子大小來畫圖 先算出對角線長度
1280/7 ≒ 182
720/4 = 180
總長加起來會超過畫面所以就大概取184 到時候再對齊
首先到AssDraw去畫圖 經調整過後得到
  1. m 92 0 l 0 92 l 92 184 l 184 92
複製代碼
然後用上面的原理算出格子數 也就是loop總數
8*4 = 32
另外再設變數作微調
x0 y0 為第1組座標之微調
調好之後第1組的腳本如下
code once
  1. x0=-2 y0=86
複製代碼
template pre-line loop 32
  1. {\an5\pos(!(j-1)%8*184+x0!,!math.floor((j-1)/8)*184+y0!)\p1}m 92 0 l 0 92 l 92 184 l 184 92
複製代碼
以上就可以做出類似的格子~如果你要讓格子轉動可以加上\t(0,200,\fry180)試試看
動畫的部分等下一次再說吧















歡迎光臨 DHR-動畫研究字幕組 (https://dhr.moe/) Powered by Discuz! X3.1