hỏi một chút về đoạn fim khởi đầu game

anhdung86

Donkey Kong
Lão Làng GVN
Tham gia ngày
26/10/05
Bài viết
462
Reaction score
99
mình đang muốn đưa một đoạn fim mình vừa tạo bằng windowmoviemaker ,nếu bây giờ mình muốn đưa đoạn fim này vào game sao cho lúc bắt đầu vào game thì tự động play rồi mới vào game(cũng như các đoạn quảng cáo tên nhà sản xuất và studiogame như các game bình thg)thì phải làm sao hả các bạn?mình đang dùng rpgmaker xp và 2003 ,bạn nào bít cách dạy mình với nha, xin thankz trước
 
Bạn trước hết phải có 1 Script để Play Movie đã , rồi hẵng tính đến đó , bạn có thể tham khảo qua Game của mình mới làm bên box Final Fantasy đó , còn Script để bật đoạn phim đó mình sẽ đưa lên sau , hiện ko vào dc :(( , thế nhé :D :hug: :-/ :>
 
sưu tầm bên rmxp.net:

mở đầu script scene opening:
hoặc nếu không rõ về nó có thể dùng script bỏ qua title screen để đưa vào 1 event bên trong kích hoạt script này
Mã:
class Scene_Movie

def initialize(movie)
@readini = Win32API.new 'kernel32', 'GetPrivateProfileStringA', %w(p p p p l p), 'l'
@movie_name = Dir.getwd()+"\\Movies\\"+movie+".avi"
main
end

def main

game_name = "\0" * 256
@readini.call('Game','Title','',game_name,255,".\\Game.ini")
game_name.delete!("\0")
@wnd = Win32API.new('user32','FindWindowEx','%w(l,l,p,p)','L')
@temp = @wnd.call(0,0,nil,game_name).to_s
movie = Win32API.new('winmm','mciSendString','%w(p,p,l,l)','V')
movie.call("open \""+@movie_name+"\" alias FILE style 1073741824 parent " + @temp.to_s,0,0,0)
@message = Win32API.new('user32','SendMessage','%w(l,l,l,l)','V')

@detector = Win32API.new('user32','GetSystemMetrics','%w(l)','L')
@width = @detector.call(0)
if @width == 640
fullscreen
Graphics.update
sleep(1)
Graphics.update
sleep(1)
Graphics.update
sleep(1)
end

status = " " * 255
movie.call("play FILE",0,0,0)
loop do
sleep(0.1)
@message.call(@temp.to_i,11,0,0)
Graphics.update
@message.call(@temp.to_i,11,1,0)
Input.update
movie.call("status FILE mode",status,255,0)
true_status = status.unpack("aaaa")
if true_status.to_s != "play"
break
end
if Input.trigger?(Input::B)
Input.update
break
end
end
movie.call("close FILE",0,0,0)
bail
end

def bail
if @width == 640
fullscreen
end
end
end

def fullscreen()

$full.call(18,0,0,0)
$full.call(13,0,0,0)
$full.call(18,0,2,0)
$full.call(13,0,2,0)
end
$full = Win32API.new('user32','keybd_event','%w(l,l,l,l)','')
Gọi script trên là Scene_Movie chẳng hạn thì khi ta gọi script sẽ là
"Scene_Movie("tên_phim")"
có thể cho chạy nhiều movie liên tục bằng nhiều đoạn script này nối tiếp nhau

trong phần code, bạn đổi tất cả những chữ FILE thành tên file film của bạn.
file film phải là file avi và để trong 1 thư mục có tên là movies năm trong phần DATA trong thư mục game của bạn
còn đây là Demo: Download

script này có thể chạy được file avi với độ phân giải nhỏ hơn 640*480
nếu muốn chạy các file khác thì thay đổi dòng:
Mã:
@movie_name = Dir.getwd()+"\\Movies\\"+movie+".avi"
đổi đuôi avi thành đuôi nào đó như là mpq, wma chẳng hạn.

chú thích: theo tôi thử nghiệm thì có thể chạy với cả những sideview CBS để làm đoạn phim giữa battle
 
cách đưa phim vào trước khi menu hiện lên:
trong bảng Main, trước dòng
Mã:
$scene = Scene_Title.new
thêm vào dòng
Mã:
  $scene = Scene_Movie.new("tênphim")
 
Thế mà cũng đòi , cách này rất dễ Bug cho 1 số trường hợp , có cách khác hay hơn nhìu , hôm nào vào topic Demo xịn mà lấy Demo về coi nhé :D
 
well vụ này tui chưa biết cánh làm cảm ơn ông liện cánh đó lên đây nha
 
thế muốn đưa Film vào trong hoạt cảnh thì làm sao...

VD : Đang nói chuyện với nhân vật khác , Mình muốn bất ngờ có một đoạn Film xen vào .,,,được chứ
 
đâu có làm được đâu! bây giờ bấm vào Test Play cũng không được nữa chứ nói gì đến làm movie, chán quá! cái này scrpit này hư rùi!
 
vậy làm sao tạo phim mà điều thứ 2 tui cần phải hỏi biết cánh liện rồi mà ko biết cánh làm
 
vậy làm sao tạo phim mà điều thứ 2 tui cần phải hỏi biết cánh liện rồi mà ko biết cánh làm
Làm phim phải có côl3D với lại Video Editor làm mới đẹp, mấy các khác em chả biết nữa, chỉ hay xài 2 cái này thoai!
 
Ối dào , RMXP nói thẳng ra là ko có hỗ trợ về Movie mấy đâu , có RM 2k3 thì ổn :D
 
Back
Top