SSA Pawaa xD~
Author: Tenka_Muteki-7X3
Website: [Only registered and activated users can see links. ]
Mail: [Only registered and activated users can see links. ]
Hiện nay thì ai làm effect bằng ASS đều dùng lua trong Aegisub là chủ yếu, tuy nhiên cái này vừa lằng nhằng vừa khó hiểu, nhất là những ai không biết tí gì về lập trình (như tớ chẳng hạn ), it's really a pain in the ass to learn lua from scratch. Thế mới tìm học cái này đây, script được viết bằng Python đối với những ai chưa biết lập trình thì dễ hơn lua rất nhiều mà hiệu ứng tạo ra cũng không thua nếu không muốn nói có một số mặt dùng cái này lợi hơn
Các hiệu ứng tenka làm bằng cái này, xem thử vài cái như Deathnote, _Gundam_ (nhất là cái này, mới nhìn toàn tưởng làm bằng AFX ), Blackcat, Fantastic Children đi thì sẽ thấy [Only registered and activated users can see links. ] [Only registered and activated users can see links. ]
Vào vấn đề chính, trước tiên down mấy cái này về cài:
Down về giải nén file ssa_pawaa_xd.pyc vào thư mục cài Python.
Vào đây đọc cho biết ít nhất Python là cái gì, nhưng mà thật ra cũng không cần thiết nữa o<: [Only registered and activated users can see links. ]
Cần một soft edit code Python thay cho NotePad, tớ đang xài PyScripter: [Only registered and activated users can see links. ]
Xem bài hướng dẫn ngắn ở đây, mà thật ra cũng không cần hiểu hết, miễn biết nó hoạt động ra sao là ổn: [Only registered and activated users can see links. ]
Bây giờ tới script, ở đây tớ comment lại trên script Karaoke_Base.py down từ link trên kia để nắm sơ qua ý của nó, rồi từ script này viết hiệu ứng mới:
Code:
# -*- coding: cp1252 -*-
# Karaoke Base - Rev. 1
# Copyright (c) 2005-2007 Tenka_Muteki-7X3 <tenka_muteki_jp@yahoo.co.jp>. All rights reserved.
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License.
# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
# You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
from random import *
from string import *
from time import *
from ssa_pawaa_xd import *
TEM_INI_PRO = time()
nah, forget that, get to the good part:
Code:
# [dimensions và fps]
COL_INI_SCR = 0 # ô dọc đầu tiên của script
LIN_INI_SCR = 0 # ô ngang đầu tiên của script
COL_FIN_SCR = 1024 #*** ô dọc cuối cùng script
LIN_FIN_SCR = COL_FIN_SCR * 9 / 16 #*** ô ngang cuối cùng của script
VAL_FPS_VID = 23.976 # video fps
VAL_DUR_FPS = 100 / VAL_FPS_VID # thời gian của 1 frame
chỉ là gán giá trị cho biến thôi, chắc không cần giải thích nhỉ
# [positions]
COL_FRA_KAR = 50 #*** ô dọc bắt đầu câu
LIN_FRA_KAR = 40 #*** ô ngang bắt đầu câu
LIN_FRA_TRA = LIN_FIN_SCR - 30 #*** hàng của trans
ALI_SIL_KAR = 4 #*** syl alignment
ALI_FRA_KAR = 1 #*** alignment của câu [ 1 = trái ] [ 2 = giữa ] [ 3 = phải ]
vị trí kara
Code:
# [tên]
TIT_SCR_KAR = 'Karaoke Base' #*** script title
EXT_SCR_KAR = '.ass' # script extension
DIR_SCR_KAR = 'D:\\Arquivos\\Temporarios\\Trabalho\\Karaokes\\' #*** script directory
NOM_SCR_PRI = 'Karaoke_Base' #*** tên script chính
NOM_SCR_MAS = NOM_SCR_PRI + '_(Mask)' # tên script mask (dùng overlay trong avisynth)
DIR_NOM_PRI = DIR_SCR_KAR + NOM_SCR_PRI + EXT_SCR_KAR # đường lưu script chính
DIR_NOM_MAS = DIR_SCR_KAR + NOM_SCR_MAS + EXT_SCR_KAR # đường lưu script mask
chỗ đặt script
Code:
# [ajustments]
AJU_ESP_CAR = 1 #*** chỉnh độ rộng của space cho callarcar
AJU_LAR_CAR = -3 #*** chỉnh độ rộng giữa các syl cho callarcar
AJU_ALT_CAR = -10 #*** khoảng cách cho các hàng dọc (kanji)
AJU_FON_PIX = -5 #*** chỉnh font cho calpospix
AJU_COL_PIX = -20 #*** chỉnh cột dọc (pos) cho calpospix
AJU_LIN_PIX = -19 #*** chỉnh hàng (pos) cho calpospix
sẽ dùng để chỉnh pos khi làm fx, bây giờ chưa cần quan tâm tới nó
Code:
# [fonts]
TAM_FON_SCR = 40 #*** font size
COD_FON_SCR = 'br' #*** font code
NOM_FON_SCR = "Arial" #*** font name
NOM_FON_WIN = 'Arial.ttf' #*** tên file font
ENC_FON_ESC = 1 #*** font encoding type
DAD_FON_SCR, DAD_FON_PIX = gerconfon(ENC_FON_ESC, NOM_FON_WIN, TAM_FON_SCR, AJU_LAR_CAR, AJU_FON_PIX)
list các event (nếu không hiểu event là gì thì lấy đại 1 cái file ass rồi xài notepad mở nó lên đi)
Code:
# [flags]
GER_FRA_HOR = True #*** tạo các câu nằm ngang
GER_CAB_SCR = True #*** tạo phần mở đầu trong script
GER_FRA_KAR = True #*** tạo các câu karaoke
GER_FRA_TRA = True #*** tạo translation
GER_EFE_FIN = False #*** tạo event end effect (sẽ giải thích sau)
GER_CON_SIL = False #*** vẽ ô xác định chiều dài rộng của \k
GER_SSA_PRI = True #*** tạo script chính
GER_SSA_MAS = False #*** tạo script mask (overlay trong avisynth)
GER_DIV_LET = True #*** làm effect cho từng char trong syl
GER_DIV_TEM = False #*** chia thời gian effect ra cho từng char trong syl
your options
Code:
# [lấy thông tin từ raw kara]
DAD_EXT_KAR = callarcar(GER_DIV_LET, GER_DIV_TEM, LIS_KAR_SCR, DAD_FON_SCR, AJU_ESP_CAR, COD_FON_SCR)
LIS_TEM_KAR = DAD_EXT_KAR[0] # thời gian của syl
LIS_SIL_KAR = DAD_EXT_KAR[1] # syl
LIS_LAR_KAR = DAD_EXT_KAR[2] # độ rộng của syl
LIS_ALT_KAR = DAD_EXT_KAR[3] # chiều cao của syl
bắt đầu vào làm kara rồi đây, cái function trên kia là để lấy thông tin từ raw kara, không cần hiểu lắm đâu
####################################################################################################
## start - câu
##
while CON_LIN_KAR < len(LIS_TEM_KAR) :
print 'Frase:', CON_LIN_KAR, LIS_SIL_KAR[CON_LIN_KAR][0]
DUR_IND_INT = 40 #*** thời gian (centi giây) của lead in từng \k
DUR_INT_INT = 1 #*** thời gian (centi giây) giữa từng lead in của từng \k
DUR_ANT_FRA = 0 #*** thời gian cộng vào trước câu (centi giây)
DUR_POS_FRA = 0 #*** thời gian cộng vào sau câu (centi giây)
DUR_INT_ENC = 1 #*** thời gian (centi giây) giữa từng lead out của từng \k
DUR_IND_ENC = 40 #*** thời gian (centi giây) lead out của từng \k
TEM_ANT_FRA = temparval(ltrim(LIS_TEM_KAR[CON_LIN_KAR][0], 10)) - DUR_ANT_FRA # thời gian trước câu
TEM_INI_FRA = temparval(ltrim(LIS_TEM_KAR[CON_LIN_KAR][0], 10)) # thời gian bắt đầu câu
TEM_FIN_FRA = temparval(rtrim(LIS_TEM_KAR[CON_LIN_KAR][len(LIS_TEM_KAR[CON_LIN_KAR]) - 1], 10)) # thời gian kết thúc câu
TEM_POS_FRA = temparval(rtrim(LIS_TEM_KAR[CON_LIN_KAR][len(LIS_TEM_KAR[CON_LIN_KAR]) - 1], 10)) + DUR_POS_FRA # thời gian sau câu
LIS_FRA_ESQ = [] #*** list số câu left alignment
LIS_FRA_DIR = [] #*** list số câu right alignment
ALI_FRA_TEL = geralikar(CON_LIN_KAR, LIS_FRA_ESQ, LIS_FRA_DIR, ALI_FRA_KAR) # alignment value của từng câu
LAR_FRA_ATU = sum(LIS_LAR_KAR[CON_LIN_KAR]) # độ rộng của câu
COL_INI_CAR = calposfra(COL_FIN_SCR, MAR_VER_SCR, LAR_FRA_ATU, ALI_FRA_TEL) # ô dọc bắt đầu syl đầu tiên của câu
COL_ACU_CAR = 0 # tổng độ rộng các syl
LIN_INI_CAR = LIN_FRA_KAR # giá trị dòng đầu của kara (kanji)
LIN_ACU_CAR = 0 # giá trị dòng của các syl trước (kanji)
QUA_KAR_FRA = len(LIS_TEM_KAR[CON_LIN_KAR]) # số lượng \k trong câu
CON_COL_KAR = 0 # đếm số syl của câu
TEM_INT_ACU = QUA_KAR_FRA * DUR_INT_INT + DUR_INT_INT # tổng thời gian lead in
TEM_ENC_ACU = DUR_INT_ENC # tổng thời gian lead out
if GER_FRA_HOR == False : # nếu tạo câu nằm dọc (kanji)
LAR_FRA_ATU = conkarval(LIS_LAR_KAR[CON_LIN_KAR]) * LIS_ALT_KAR # độ rộng của câu
LIN_INI_CAR = LIN_FRA_KAR + calposfra(LIN_FIN_SCR, MAR_HOR_SCR, LAR_FRA_ATU, ALI_FRA_TEL) # hàng của syl đầu trong câu
bắt đầu vào kara từ đây phần này lấy thông tin từ raw để tính thời gian, vị trí,... của các syl của từng câu. Mấy cái biến trên kia mới đọc vào chưa hiểu hết nổi đâu cứ đợi tới lúc viết script dùng tới rồi sẽ biết nó là cái gì
Code:
####################################################################################################
## start - syl
##
while CON_COL_KAR < len(LIS_TEM_KAR[CON_LIN_KAR]) :
TEM_SIL_ATU = LIS_TEM_KAR[CON_LIN_KAR][CON_COL_KAR] # thời gian hiện tại
SIL_FRA_ATU = LIS_SIL_KAR[CON_LIN_KAR][CON_COL_KAR] # đếm syl/char hiện tại
LAR_SIL_ATU = LIS_LAR_KAR[CON_LIN_KAR][CON_COL_KAR] # độ rộng syl/char hiện tại
ALT_SIL_ATU = LIS_ALT_KAR # chiều cao syl/char hiện tại
TEM_INT_FRA = TEM_ANT_FRA - TEM_INT_ACU # thời gian lead in của câu
TEM_ENC_FRA = TEM_POS_FRA + TEM_ENC_ACU # thời gian lead out của câu
TEM_IND_INT = TEM_INT_FRA - DUR_IND_INT # thời gian lead in của từng \k
TEM_IND_ENC = TEM_ENC_FRA + DUR_IND_ENC # thời gian lead out của từng \k
TEM_INI_KAR = temparval(ltrim(TEM_SIL_ATU, 10)) # thời gian bắt đầu của \k
TEM_FIN_KAR = temparval(rtrim(TEM_SIL_ATU, 10)) # thời gian kết thúc \k
QUA_CEN_ATU = TEM_FIN_KAR - TEM_INI_KAR # thời gian của câu (centi giây)
QUA_FRA_ATU = confrasil(QUA_CEN_ATU, VAL_DUR_FPS) # số lượng frame
TEM_ENC_FRA = TEM_POS_FRA + TEM_ENC_ACU # thời gian lead out
VAL_AJU_COL = gerajucol(ALI_SIL_KAR, LAR_SIL_ATU) # ajustment value của từng syl/char
if SIL_FRA_ATU != '' :
DAD_ALI_POS = gerdadali(SIL_FRA_ATU, GER_FRA_HOR, COL_INI_CAR, COL_ACU_CAR, VAL_AJU_COL, LIN_FRA_KAR, LAR_SIL_ATU, LIN_ACU_CAR, COL_FRA_KAR, LIN_INI_CAR, ALT_SIL_ATU, AJU_ALT_CAR) # generate giá trị position và alignment
COL_SIL_ATU = DAD_ALI_POS[0] # giá trị ô dọc của \k
LIN_SIL_ATU = DAD_ALI_POS[1] # giá trị ô ngang của \k
COL_ACU_CAR = DAD_ALI_POS[2] # tổng giá trị ô dọc của các kí tự \k hiện tại
LIN_ACU_CAR = DAD_ALI_POS[3] # tổng giá trị ô ngang của các kí tự \k hiện tại
# với các syl không phải khoảng trống:
if SIL_FRA_ATU != ' ' and SIL_FRA_ATU != '' :
COM_BAS_SIL = an(ALI_SIL_KAR)
ESC_FIN_EVE = 100
COM_BAS_FIN = alpha(255) + fscxy(ESC_FIN_EVE)
COM_FIN_EVE, CON_FIN_EVE = dadfineve(GER_EFE_FIN, COM_BAS_FIN, 'A')
COM_POS_KAR = pos(COL_SIL_ATU, LIN_SIL_ATU)
# vẽ ô xác định chiều rộng, cao của syl
ael(LIS_EVE_FRE, mes(sta = TEM_INI_FRA, end = TEM_FIN_FRA, tex = '{' + pos(0, LIN_SIL_ATU) + bord(1) + a1(255) + a3(64) + c3('0000FF') + an(ALI_SIL_KAR) + p(1) + '}m ' + str(COL_SIL_ATU) + ' ' + str(0) + ' l ' + str(COL_SIL_ATU + LAR_SIL_ATU) + ' ' + str(0) + ' ' + str(COL_SIL_ATU + LAR_SIL_ATU) + ' ' + str(DAD_EXT_KAR[3]) + ' ' + str(COL_SIL_ATU) + ' ' + str(DAD_EXT_KAR[3]) + '{' + p(0) + COM_FIN_EVE + '}' + CON_FIN_EVE), GER_CON_SIL)
tính vị trí, toàn bộ thời gian,... cho từng syl/char 1, bắt đầu thực hiện hiệu ứng từ khúc này trở xuống, các biến trên kia sẽ được dùng cho fx
Code:
# events generation flags, là các flag tạo các event ở khúc dưới:
GER_INI_BLO = defgereve(DUR_IND_INT)
GER_INT_BLO = defgereve(DUR_INT_INT)
GER_PRI_BLO = defgereve(DUR_ANT_FRA)
GER_SEG_BLO = True
GER_TER_BLO = True
GER_QUA_BLO = True
GER_QUI_BLO = defgereve(DUR_POS_FRA)
GER_ENC_BLO = defgereve(DUR_INT_ENC)
GER_FIN_BLO = defgereve(DUR_IND_ENC)
####################################################################################################
## start - karaoke effect
##
if GER_FRA_KAR == True :
#--------------------------------------------------------------------------------------------------#
# lead in từng syl/char (lead in start -> lead in end)
COM_INI_BLO = fscxy(200) + alpha(255) + fr(360) + frx(360) + t(fscxy(100) + alpha(0) + fr(0) + frx(0))
ael(LIS_EVE_FRE, mes(sta = TEM_IND_INT, end = TEM_INT_FRA, tex = mte(COM_POS_KAR + COM_BAS_SIL + COM_INI_BLO, SIL_FRA_ATU, COM_FIN_EVE, CON_FIN_EVE, GER_EFE_FIN)), GER_INI_BLO)
#--------------------------------------------------------------------------------------------------#
# lead in của câu (lead in end -> đầu câu)
COM_INT_BLO = ''
ael(LIS_EVE_FRE, mes(sta = TEM_INT_FRA, end = TEM_ANT_FRA, tex = mte(COM_POS_KAR + COM_BAS_SIL + COM_INT_BLO, SIL_FRA_ATU, COM_FIN_EVE, CON_FIN_EVE, GER_EFE_FIN)), GER_INT_BLO)
#--------------------------------------------------------------------------------------------------#
# khoảng trước câu
COM_PRI_BLO = ''
ael(LIS_EVE_FRE, mes(sta = TEM_ANT_FRA, end = TEM_INI_FRA, tex = mte(COM_POS_KAR + COM_BAS_SIL + COM_PRI_BLO, SIL_FRA_ATU, COM_FIN_EVE, CON_FIN_EVE, GER_EFE_FIN)), GER_PRI_BLO)
#--------------------------------------------------------------------------------------------------#
# trước kara (đầu câu -> đầu syl)
COM_SEG_BLO = ''
ael(LIS_EVE_FRE, mes(sta = TEM_INI_FRA, end = TEM_INI_KAR, tex = mte(COM_POS_KAR + COM_BAS_SIL + COM_SEG_BLO, SIL_FRA_ATU, COM_FIN_EVE, CON_FIN_EVE, GER_EFE_FIN)), GER_SEG_BLO)
#--------------------------------------------------------------------------------------------------#
# kara (đầu syl - cuối syl)
COM_TER_BLO = bord(5) + t(bord(VAL_BOR_SCR))
ael(LIS_EVE_FRE, mes(sta = TEM_INI_KAR, end = TEM_FIN_KAR, tex = mte(COM_POS_KAR + COM_BAS_SIL + COM_TER_BLO, SIL_FRA_ATU, COM_FIN_EVE, CON_FIN_EVE, GER_EFE_FIN)), GER_TER_BLO)
## lis_pix_car = calpospix(SIL_FRA_ATU, DAD_FON_PIX, COD_FON_SCR)
##
## con_ite_lis = 0
##
## while con_ite_lis < len(lis_pix_car) :
##
## val_col_pix = lis_pix_car[con_ite_lis][0]
## val_lin_pix = lis_pix_car[con_ite_lis][1]
## val_alp_pix = lis_pix_car[con_ite_lis][2]
##
## pos_col_pix = COL_SIL_ATU + val_col_pix + AJU_COL_PIX
## pos_lin_pix = LIN_SIL_ATU + val_lin_pix + AJU_LIN_PIX
##
## com_pos_pix = pos(pos_col_pix, pos_lin_pix)
## com_bas_pix = an(5) + bord(0) + shad(0) + fscxy(150) + alpha(val_alp_pix)
## com_adi_pix = ''
## com_dia_pix = p(1)
## com_pic_pix = ppix()
## com_tra_pix = p(0)
##
## ael(LIS_EVE_FRE, mes(sta = TEM_INI_KAR, end = TEM_FIN_KAR, tex = mte(com_pos_pix + com_bas_pix + com_adi_pix + com_dia_pix, com_pic_pix, com_tra_pix + COM_FIN_EVE, CON_FIN_EVE, GER_EFE_FIN)), GER_TER_BLO)
##
## con_ite_lis = con_ite_lis + 1
#--------------------------------------------------------------------------------------------------#
# sau kara (cuối syl -> cuối câu)
COM_QUA_BLO = ''
ael(LIS_EVE_FRE, mes(sta = TEM_FIN_KAR, end = TEM_FIN_FRA, tex = mte(COM_POS_KAR + COM_BAS_SIL + COM_QUA_BLO, SIL_FRA_ATU, COM_FIN_EVE, CON_FIN_EVE, GER_EFE_FIN)), GER_QUA_BLO)
#--------------------------------------------------------------------------------------------------#
# khoảng sau câu
COM_QUI_BLO = ''
ael(LIS_EVE_FRE, mes(sta = TEM_FIN_FRA, end = TEM_POS_FRA, tex = mte(COM_POS_KAR + COM_BAS_SIL + COM_QUI_BLO, SIL_FRA_ATU, COM_FIN_EVE, CON_FIN_EVE, GER_EFE_FIN)), GER_QUI_BLO)
#--------------------------------------------------------------------------------------------------#
# lead out của câu
COM_ENC_BLO = ''
ael(LIS_EVE_FRE, mes(sta = TEM_POS_FRA, end = TEM_ENC_FRA, tex = mte(COM_POS_KAR + COM_BAS_SIL + COM_ENC_BLO, SIL_FRA_ATU, COM_FIN_EVE, CON_FIN_EVE, GER_EFE_FIN)), GER_ENC_BLO)
#--------------------------------------------------------------------------------------------------#
# lead out của từng syl/char
COM_FIN_BLO = t(fscxy(200) + alpha(255) + fr(360) + frx(360))
ael(LIS_EVE_FRE, mes(sta = TEM_ENC_FRA, end = TEM_IND_ENC, tex = mte(COM_POS_KAR + COM_BAS_SIL + COM_FIN_BLO, SIL_FRA_ATU, COM_FIN_EVE, CON_FIN_EVE, GER_EFE_FIN)), GER_FIN_BLO)
#--------------------------------------------------------------------------------------------------#
##
## end - karaoke effect
####################################################################################################
TEM_INT_ACU = TEM_INT_ACU - DUR_INT_INT
TEM_ENC_ACU = TEM_ENC_ACU + DUR_INT_ENC
CON_COL_KAR = CON_COL_KAR + 1
##
## end - syl
####################################################################################################
trong script này kara được chia làm nhiều phần nhỏ rồi làm effect cho từng phần, ở chỗ này có thể thêm tags, phần mới,v.v...
phần màu đỏ là cách dùng calpospix để làm effect pixel dot (xem hiệu ứng của ergo proxy trên kia đi thì thấy o<)
translation và tạo output file
nhìn chung thì script khá dài nhưng lúc tạo hiệu ứng mới thì chỉ cần sửa một số chỗ trong đó thôi
cái này nhìn thì khó hiểu nhưng cứ bắt tay vào làm thử thì thấy dễ liền thôi
___________________________________
"Anime makes you stupid. Watching anime makes you stupid, fansubbing anime too, but apparently professionally working with anime makes you the most stupid. Funimation is the proof of this theory." [ To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts. ]
lulz
The Following 8 Users Say Thank You to 50119 For This Useful Post:
calbezcur (x start, y start, x final, y final, số điểm giữa, limit x start, limit y start, limit x final, limit y final)
Tính toán tọa độ của các điểm trên [Only registered and activated users can see links. ] trả về dạng list.
x start, y start = tọa độ điểm bắt đầu
x final, y final = tọa độ điểm kết thúc
số điểm giữa = số điểm nằm giữa start và end
limit = giới hạn vùng vẽ các điểm nằm giữa
Không có lệnh clip shape nên cái đó phải làm bằng tay, vd: '\\clip(m 0 0 l 100 0 0 100)'
Với màu và alpha phải viết ngược lại do trong Python function không bắt đầu bằng số: 1c, 2c, 3c, 4c, 1a, 2a, 3a, 4a -> c1, c2, c3, c4, a1, a2, a3, a4
Theo như tenka thì các tag với màu và alpha trả về tag và số nhận dạng để tạo script mask, cái này chưa rõ lắm, có hỏi nhưng hắn chưa trả lời.
Code:
Ex.:
>>> a1(255)
'[alp_sta]0[alp_end]'
>>> a4(0)
'[alp_sta]1[alp_end]'
>>> c2('FFFFFF')
'[cor_sta]0[cor_end]'
>>> alpha(254)
'[alp_sta]2[alp_end]'
>>> fad(100, 100)
'[fad_sta]0[fad_end]'
Karaoke_Base.py vẫn còn nhiều function khác trong đó nhưng không nói ở đây do mấy cái đó chỉ được dùng cho cấu trúc file ssa và cũng không cần đụng vào khi làm kara, thành ra cũng không cần quan tâm tới nó lắm.
def thay cho function bị lỗi ở trên, bới smallkirby:
Code:
def cut_color(no, str_color, end_color):
from string import upper
scr=int(str_color[0:2],16)
scg=int(str_color[2:4],16)
scb=int(str_color[4:6],16)
enr=int(end_color[0:2],16)
eng=int(end_color[2:4],16)
enb=int(end_color[4:6],16)
return_color=[]
no_t=0
while no_t<no :
r_return=upper(hex(scr+no_t*(enr-scr)/(no-1))[2:5])
g_return=upper(hex(scg+no_t*(eng-scg)/(no-1))[2:5])
b_return=upper(hex(scb+no_t*(enb-scb)/(no-1))[2:5])
if len(r_return)==1:
r_return='0'+r_return
if len(g_return)==1:
g_return='0'+g_return
if len(b_return)==1:
b_return='0'+b_return
return_color.append(r_return+g_return+b_return)
no_t=no_t+1
return return_color
___________________________________
"Anime makes you stupid. Watching anime makes you stupid, fansubbing anime too, but apparently professionally working with anime makes you the most stupid. Funimation is the proof of this theory." [ To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts. ]
lulz
thay đổi nội dung bởi: 50119, 11-08-2009 lúc 09:48 PM.
The Following User Says Thank You to 50119 For This Useful Post:
Hồi lúc cũng có mò vô trang của thằng Tenka rồi mà lúc đó nó chưa bày. Thanks nhiều nhé Mặc dù lua nếu tận dụng hết thì power cũng ghê gớm lắm đấy. Điển hình ở cái Air OP thì tớ đã qua mặt bọn KAA và THORA Còn cái OP1 của HnG thì cũng ko khác cái của Eclipse làm bằng AFX là mấy
___________________________________
To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.
lũ THORA làm air hồi nào mình không biết nhỉ, đi check thử o<
à mà tụi này cũng đâu thấy có cái kara nào đẹp
they only have nice encodes, but that's enough o<
[Only registered and activated users can see links. ]
nếu nói về tận dụng hết sức mạnh thì ass không đơn giản là tới đó đâu, xem mấy cái như deathnote hay gundam của thằng tenka đi rồi sẽ thấy
còn AFX thì mấy cái trên kia chưa coi, nhưng gặp phải mấy thằng xài effect bạt mạng như link trên kia với [Only registered and activated users can see links. ] thì thôi thua chúa cũng không bắt chước trong ass nổi hai cái naruto op ấy
[Only registered and activated users can see links. ]
vài cái MISC tiếp trong bài:
-về event end: cài này dùng để tạo các chuyển động phức tạp cho particle trong ass, ví dụ vẽ một dấu chấm kế chữ a, tớ cho nguyên cụm đó vừa di chuyển vừa xoay 5 vòng, sau đó cho chữ a alpha 255, ta sẽ có cái chấm hồi nãy chuyển động theo một vòng xoay tròn mà không thể làm bằng lệnh move được, có thể dùng thêm scale, org, whatever,...
tham khảo deathnote op, shippuuden op: vận dụng cái này rất tốt
-có thể dùng vector clip + movcoopix để làm chữ vỡ mảnh ra
tham khảo saint seiya
-có thể tận dũng overlay trong avisynth để tạo màu gradient hay các color change phức tạp một cách rất đơn giản bằng script mask
tham khảo ergo proxy OP
ngoài ra có thể dùng overlay để dùng hình lên như trong AFX
tham khảo Inu OP 4, Fantastic Children ED
do Python đơn giản hơn nhiều ngôn ngữ khác nên việc viết vài function mới để tạo script avisynth cũng không khó đâu
-1 cái sơ đồ minh họa cho 1 số biến trong khi làm effect
có cái này dễ hiểu hơn
___________________________________
"Anime makes you stupid. Watching anime makes you stupid, fansubbing anime too, but apparently professionally working with anime makes you the most stupid. Funimation is the proof of this theory." [ To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts. ]
lulz
thay đổi nội dung bởi: 50119, 02-06-2008 lúc 06:47 PM.
The Following User Says Thank You to 50119 For This Useful Post:
Thì mấy cái của tớ cũng mới chỉ là 1 phần của ASS thôi chứ đã full power đâu Có điều cái gì cũng có limit cả. Nhiều effect làm bên AFX được nhưng ASS ko thể làm nổi và ngược lại mà Btw, bọn THORA nó chỉ làm cái OP và theo nx khách quan thì tụi này failed Bản trans nó lấy từ Koi và ko edit kỹ cho phù hợp với long ver của OP, style suck và quality cũng chỉ nhỉnh hơn 1 ít, phải scrshot mới thấy khác biệt được Chú ý là raw bọn nó là blu-ray gốc còn cái tớ lấy là đã rip rồi
___________________________________
To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.
thay đổi nội dung bởi: delacroix01, 02-06-2008 lúc 10:46 PM.
CHo mình hỏi là giờ mình đã làm thử tất cả những gì ghi như trên...và cái script cuối cùng là ra .py fải ko
Mình muốn hỏi là làm cách nào để kiểm tra thành wả
Máy Anh chị o hướng đẫn chạy phần mềm sao biết. Em bấm F5 nó ra như vậy nè.
Traceback (most recent call last):
File "C:\Python26\Kidou_Senshi_Gundam_00_-_OP_1_-_By_Tenka_Muteki-7X3.py", line 12, in <module>
from ssa_pawaa_xd import * # Rev. 1
ImportError: Bad magic number in C:\Python26\ssa_pawaa_xd.pyc
>>>