Thaigraph

 

   

ค้นหา
Thaigraph หน้าฟอรั่ม Ren'Py [renpy] วิธีแทรกฉาก Movies ขณะเล่น ...
ดู: 2064|ตอบ: 6
go

[renpy] วิธีแทรกฉาก Movies ขณะเล่นเกมส์

Rank: 7Rank: 7Rank: 7

โพสต์เมื่อ 26-4-2013 06:29 |แสดงโพสต์ทั้งหมด
[renpy] วิธีแทรกฉาก Movies ขณะเล่นเกมส์

การสั่งให้โปรแกรมเล่นไฟล์ Movie จะแบ่งออกเป็น 2 ประเภทด้วยกันนะค่ะ คือ
1. สั่งให้เล่นฉาก Movie ก่อนเข้าสู่หน้าเมนูหลัก เป็นไตเติ้ลก่อนเข้าเกมส์
2. สั่งให้เล่นฉาก Movie หลังผู้เล่นคลิกปุ่ม "Start" ตัวอย่างเช่น เพลงหรือเนื้อเรื่องอินโทร ก่อนเข้าสู่เนื้อหาหลักของตัวเกมส์
หรือ สั่งให้เล่นฉาก Movie  แทรกขั้นกลางขณะเล่นเกมส์เมื่อมาถึงช่วงใดช่วงหนึ่ง

ในบทความนี้จะแนะนำเฉพาะวิธีที่ 2 นะค่ะ



*** สกุลไฟล์ที่ใช้ได้นะค่ะ .mpg .ogv (.avi ไม่ขอแนะนำบางไฟล์มันจะเล่นภาพกระตุก)


แล้วให้นำไฟล์ Movie ไปวางไว้ที่แฟ้ม "game" ของเรา  หรือจะใส่ไว้ที่โฟลเดอร์ย่อยชื่ออะไรก็ได้ แต่จะต้องให้อยู่ภายในแฟ้ม "game")

*** ดูวิธีการแปลงไฟล์ให้เป็นสกุลต่างๆ ได้ที่นี่ค่ะ Format Fatory โปรแกรมแปลงไฟล์ครอบจักรวาล




การเล่น Movie หรือ VDO แทรกระหว่างขณะเล่นเกมส์ ในโปรแกรม Renpy จะมี 2 ชนิดด้วยกัน คือ

1. แบบแสดงผลเต็มหน้าจอ

รูปแบบการเขียนโค๊ด...




  1. Function:  renpy.movie_cutscene  (filename, delay=None, loops=0, stop_music=True):  
คัดลอกไปที่คลิปบอร์ด
อธิบาย:-
filename
- คือชื่อไฟล์ Movie พร้อมสกุล
delay - จำนวนวินาทีที่จะเล่น Movie โดยปกติจะเล่นอัตโนมัติตามความยาวของ Movie และจะไม่หยุดเล่นจนกว่าผู้ใช้จะคลิกเม้าส์บนหน้าจอเกมส์
loops - จำนวนครั้งที่ต้องการให้เล่นวนซ้ำ ถ้ากำหนดเป็น -1 คือเล่นวนไปเรื่อยๆ
stop_music - ในกรณีที่มี Movie เล่นต่อกันมากกว่า 2 ไฟล์ ถ้ากำหนดเป็น True เมื่อผู้ใช้คลิกเม้าส์ที่หน้าจอ โปรแกรมจะหยุดเล่นเพลง และถ้าทำการคลิกเม้าส์ที่หน้าจออีกครั้ง Movie ถัดไปจะเล่นต่อแทน


ตัวอย่างการเขียนโค๊ด....

  1. $ renpy.movie_cutscene("On_Your_Mark.mpg")
คัดลอกไปที่คลิปบอร์ด
ตัวอย่างการนำไปใช้งาน
  1. label start:
  2.     $ renpy.movie_cutscene("Echo.mpg") #<------------แบบแสดงภาพ Movie เต็มจอ
  3.     e "You've created a new Ren'Py game."
  4.     return
คัดลอกไปที่คลิปบอร์ด

พิมพ์โค๊ดลงไปใส่ไฟล์ script.rpy .....  


ผลลัพธ์ที่ได้....


2. แบบกำหนดขนาดและตำแหน่งที่จะเล่น
รูปแบบการเขียนโค๊ด...

  1. Function:  Movie  (fps=24, size=None, **properties)
คัดลอกไปที่คลิปบอร์ด
อธิบาย:-
fps
- จำนวนเฟรมต่อวินาที
size - ขนาดของฉาก Movie เทีบยกับขนาดของหน้าจอเกมส์
properties - ใช้ใส่รายละเอียดต่างๆ เช่น ตำแหน่งพิกัดที่วาง Movie



ตัวอย่างการเขียนโค๊ด....


  1. init:
  2.     image movie = Movie(fps=200, size=(400, 300), xalign=0.5, yalign=0.5) #<--- สร้างตัวแปรกำหนค่า Movie

  3. # The game starts here.
  4. label start:
  5.     show movie #<---- เปิดใช้คุณสมับติที่กำหนดในของ Movie
  6.     play movie "Echo.mpg" #<----สั่งให้โปรแกรมเล่น Movie

  7.     e "You've created a new Ren'Py game."
  8.    
  9.     stop movie #<----สั่งให้โปรแกรมยุติการเล่น Movie
  10.     hide movie #<----ปิดการใช้คุณสมบัติที่กำหนดในของ Movie

  11.     e "Wow, this movie is really terrible."
  12.     return
คัดลอกไปที่คลิปบอร์ด

พิมพ์โค๊ดลงไปใส่ไฟล์ script.rpy .....


ผลลัพธ์ที่ได้.... ฉาก Movie จะเล่นที่กลางหน้าจอเกมส์ เพราะเรากำหนดตำแหน่งไว้ที่ แกน X = 0.5 และ Y = แกน 0.5





วิธีป้องกันไม่ให้ผู้เล่นคลิกข้ามฉาก Movie

อย่างที่รู้กันว่า... บางครั้ง user หรือ ผู้เล่นมักจะคลิกเม้าส์เพื่อข้ามฉาก Movie บางตอนที่สำคัญไป ไม่ว่าจะด้วยความเร่งรีบ หรือความพลั้งเผลอก็ตาม เราสามารถบังคับให้ผู้เล่นทนดู Movie ทั้งหมดตั้งแต่ต้นจนจบได้โดยการใส่คำสั่งดังนี้ค่ะ
  1.     play movie "Echo.mpg"
  2.     $ renpy.pause(194.0, hard=True) #<--- คำสั่งตัวนี้คือ การสั่งให้โปรแกรมหยุดการรับทุกคำสั่งชั่วคราว
คัดลอกไปที่คลิปบอร์ด
สรุปง่ายๆมันก็คือคำสั่ง "หยุดชั่วคราว"( pause )เมื่อใช้คำสั่งนี้ โปรแกรมจะไม่ทำงานอะไรเลย รวมทั้งไม่รับคำสั่งจากเม้าส์ จนกว่าจะถึงเวลาที่กำหนด


เวลาที่กำหนดที่ว่านี้ คือ ตัวเลขที่อยู่ด้านหลังคำสั่ง pause ค่ะ ซึ่งจะแทนค่าเวลาที่โปรแกรมจะหยุดรับคำสั่งมีหน่วยเป็นวินาที ตัวอย่างการคิดตัวเลข ก็เช่น ถ้า Movie มีความยาวในการเล่นทั้งสิ้น 3 นาที 14 วินาที ก็ให้เอา 3 คูณด้วย 60 วินาที บวกด้วย 14 แค่นี้เราก็จะได้ตัวเลขหน่วยที่เป็นวินาทีมาเท่ากับ 194 ค่ะ



ขอให้สนุกกับการสร้างเกมส์นะค่ะ


บทความโดย NOOKFUFU2
(ขอสงวนสิทธิ์ให้เผยแพร่เฉพาะในเว็บไทยกราฟเท่านั้น!!!)



ไฟล์แนบ: คุณจำเป็นต้องเข้าสู่ระบบก่อนจึงจะสามารถดูและดาวน์โหลดไฟล์แนบได้ หากยังไม่มีแอคเคานต์หรือยังไม่ได้เป็นสมาชิก กรุณาสมัครสมาชิก
บางบทความคุณจำเป็นต้องสมัครสมาชิกแบบ VIP และ SUPERVIP ถึงจะเข้าอ่านบทความได้

Rank: 1

โพสต์เมื่อ 27-4-2013 01:13 |แสดงโพสต์ทั้งหมด
ขอบคุณจากใจจริงขอรับ

Rank: 1

โพสต์เมื่อ 29-4-2013 16:03 |แสดงโพสต์ทั้งหมด
ขอบคุณมากครับจะติดตามบทความของคุณต่อๆไป
จนกว่าจะได้เป็นเกมของตัวเอง

Rank: 7Rank: 7Rank: 7

โพสต์เมื่อ 29-4-2013 16:14 |แสดงโพสต์ทั้งหมด
ตอบกระทู้ hobbit2008 ตั้งกระทู้

แก้ไขให้แล้วค่ะ ขอบคุณค่ะที่ช่วยชี้จุดบกพร่อง ^^  

Rank: 1

โพสต์เมื่อ 27-10-2013 11:51 |แสดงโพสต์ทั้งหมด
กำ
ผมแอดไม่ได้

Rank: 1

โพสต์เมื่อ 24-1-2017 20:05 |แสดงโพสต์ทั้งหมด
thxx ครับผมม

Rank: 1

โพสต์เมื่อ 14-7-2017 21:12 |แสดงโพสต์ทั้งหมด
มันไม่มีเสียงอ่าครับ
คุณต้องเข้าสู่ระบบก่อนจึงจะสามารถตอบกลับ เข้าสู่ระบบ | สมัครสมาชิก


Thaigraph

GMT+7, 24-7-2017 21:35 , Processed in 0.124056 second(s), 20 queries .

Powered by Discuz! X1.5

© 2001-2010 Comsenz Inc. Thai Language by DiscuzThai! Team.