nooknazha โพสต์ 2018-5-23 20:50:22

[Renpy] 11.วิธีใส่ภาพตัวละคร ประกอบคำสนทนา

แก้ไขครั้งสุดท้ายโดย nooknazha เมื่อ 2018-5-23 20:55

วิธีใส่ภาพตัวละคร ประกอบคำสนทนา

หลักๆก็จะมี 2 แบบนะค่ะ คือแบบแสดงแค่ภาพเดียว กับแบบแสดงภาพตามความรู้สึก

แบบที่ 1 แบบภาพเดียวตั้งแต่ต้นจนจบเกมส์
เราก็ต้องเตรียมภาพตัวละครไว้หนึ่งภาพ ขนาดเล็กหน่อยๆ สัก แนวนอน 120* แนวสูง150 หรือจะเล็กกว่านั้นก็ได้ค่ะ (เก็บภาพทั้งหมดไว้ที่แฟ้ม "game" ในไฟล์เกมส์ของเรา)




แล้วก็ประกาศตัวแปรตัวละครในไฟล์ script.rpy
init:
$ k = Character('กวี',
color="#FCFC68",
window_left_padding=200,
show_side_image=Image
("kawii_mini.png",
xalign=0.0, yalign=1.0))




- ตรง "window_left_padding=200"คือ การเลื่อนระยะที่จะให้คำสนทนาเว้นถอยออกจากกรอบคำพูดด้านซ้ายสุด (ถ้าไม่ตั้งไว้ ภาพตัวละครจะบังคำพูดที่อยู่ด้านหลัง)




- ตรง "show_side_image=Image" เป็นคำสั่งที่จะให้แสดงภาพตัวละครที่ด้านหน้า ภาพเดียว

- ตรง "xalign=0.0, yalign=1.0" คือ การกำหนดพิกัดภาพว่าจะให้แสดงตัวละครนั้นแสดงที่ตำแหน่งไหน Xalign = พิกัดแนวนอน Yalign = พิกัดที่แนวตั้ง

และต่อจาก Label start: ก็พิมพ์ประโยคสนทนาไปตามปกติ ภาพตัวละครก็จะแสดงขึ้นมาให้ค่ะ


label start:

k "คุณชื่ออะไรค่ะ?"

return

ตัวอย่าง...





แบบที่ 2 เปลี่ยนภาพไปตามความรู้สึก
การแสดงภาพแบบนี้ จะทำให้ผู้เล่นมีความเพลิดเพลิน และเข้าใจความรู้สึกของตัวละคร ณ ขณะนั้นมากขึ้น อีกทั้งยังช่วยสลัดความน่าเบื่อหน่ายที่ต้องเอาแต่นั่งอ่านตัวหนังสืออย่างเดียวให้ลดลง

ขั้นตอนแรก เราควรมีภาพแสดงอารมณ์ของตัวละคร อย่างน้อย 2 ภาพขึ้นไป หรือทำมาเยอะๆเลยก็ได้ถ้าขยัน ภาพที่ควรทำไว้ก็เช่น ดีใจ เสียใจ หน้าเอ๋อ ติ๊งต๊อง หัวเราะ ร้องไห้ โกรธ หงุดหงิด ฯลฯ และแต่บทบาท ของตัวละคร


ขั้นตอนต่อมา ก็ให้เข้าไปประกาศตัวแปรในไฟล์ scritp.rpy ซึ่งก็จะมีความแตกต่างกันนิดหน่อยค่ะ


init:
$ k = Character('กวี',
color="#FCFC68",
what_xpos = 5,
show_side_image=ConditionSwitch(
"kawii == 'normal'", "kawii_mini.png",
"kawii == 'happy'", "kawii_mini_smile.png",
None, Null(),
xalign=0.0, yalign=1.0))

- ตรง "what_xpos = 5" จะคล้ายกับคำสั่ง "window_left_padding=200" (สลับกันใช้ได้ แล้วแต่จะเลือก) 2 คำสั่งนี้จะมีความแตกต่างกัน

ตรงที่ "what_xpos = 5" นั้นจะเลื่อนแค่ประโยคคำพูดอย่างเดียว ชื่อตัวละครไม่เลื่อน(ที่อยู่ที่เดิม)

แต่ "window_left_padding=200" คือ ทั้งชื่อตัวละคร และคำพูดของตัวละคร จะเลื่อนตำแหน่งตามกันทั้งหมด

- ตรง "show_side_image=ConditionSwitch()" เป็นคำสั่งที่จะให้แสดงภาพตัวละครแสดงด้านหน้า และเปลี่ยนภาพไปมาได้


- ตรง "kawii == 'normal'", "kawii_mini.png", คือ "ตัวแปรที่รองรับ(ตั้งว่าอะไรก็ได้)" == 'ชื่อตัวแปรภาพ(ควรตั้งตามอาการของตัวละคร)'","ชื่อไฟล์ของภาพตัวละครในอาการนั้นๆ"


และต่อจาก Label start: ก็จะต้องใช้คำสั่งที่ต่างออกไปเช่นกันค่ะ คือจะต้องมีคำสั่ง $ ชื่อตัวแปรรองรับ = ชื่อตัวแปรของภาพนั้นๆ กำกับทุกครั้งที่มีการเปลี่ยนภาพตัวละคร


label start:

$ kawii = 'normal'
k "อ่ะ..จำได้สิ เราเพิ่งเจอกันมื่อ 10 นาทีก่อน"

$ kawii = 'happy'
k "ก็น่าจะใช่ล่ะมั้ง... ^^\" "

return


สำหรับคนที่ไม่เคยเขียนโปรแกรมมาก่อนอาจจะงงๆอยู่ งั้นมาดูตัวอย่างการเขียนข้างล่างกันค่ะ



แล้วก็รันโปรแกรมโล๊ด...










ในกรณีทำภาพให้อยู่ในกรอบก็ทำด้วยวิธีเดียวกันค่ะ คือ...

ภาพกรอบนอก (ทำในโปรแกรม Adobe Illustrator) ให้บันทึกกรอบส่วนที่จะใส่ภาพตัวละครมากับภาพเลย



แล้วก็ภาพกรอบสำหรับแสดงบทสนทนา ตัวนี้เราจะทำให้โปร่งใสค่ะ ดูวิธีทำที่บทความนี้ประกอบ วิธีเปลี่ยนพื้นกรอบ คำสนทนา

แล้วก็ภาพตัวละครท่าทางต่างๆ บันทึกพร้อมกรอบมาเลยค่ะ


ที่เหลือก็ทำตามวิธีข้างต้นค่ะ แล้วก็ต้องปรับระยะพิกัดแสดงภาพ ตรง " xalign=0.05, กับ yalign=0.98" ให้วางซ้อนทับพอดีกับภาพกรอบด้านหลัง ก็เป็นอันเรียบร้อย หุหุ (แต่ละคนระยะจะไม่เท่ากันขึ้นอยู่กับขนาดของกรอบ) จำได้ไหมค่ะ x คือ แนวนอน ปรับได้ตั้งแค่ 0.0 ถึง 1.0 และ y คือแนวตั้ง ปรับได้ตั้งแต่ 0.0 ถึง 1.0 เช่นกันค่ะ

***ควรระวังเรื่องการเคาะเว้นวรรคด้วยนะค่ะ ไม่งั้นโปรแกรมจะเกิด Error
ขอจบบทความแค่เพียงเท่านี้ แล้วพบกันใหม่บทความหน้าค่ะ ^^
บทความโดย นุ้ก (ขอสงวนสิทธิ์อนุญาตให้เผยแพร่เฉพาะในเว็บ www.graphicfufu.com เท่านั้น)

หน้า: [1]
ดูในรูปแบบกติ: [Renpy] 11.วิธีใส่ภาพตัวละคร ประกอบคำสนทนา