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é :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é
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!
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!