|
แก้ไขครั้งสุดท้ายโดย nooknazha เมื่อ 2018-5-23 20:55
[renpy] วิธีใส่ภาพตัวละคร ประกอบคำสนทนา
หลักๆก็จะมี 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) ให้บันทึกกรอบส่วนที่จะใส่ภาพตัวละครมากับภาพเลย
แล้วก็ภาพกรอบสำหรับแสดงบทสนทนา ตัวนี้เราจะทำให้โปร่งใสค่ะ ดูวิธีทำที่บทความนี้ประกอบ [renpy] วิธีเปลี่ยนพื้นกรอบ คำสนทนา
แล้วก็ภาพตัวละครท่าทางต่างๆ บันทึกพร้อมกรอบมาเลยค่ะ
ที่เหลือก็ทำตามวิธีข้างต้นค่ะ แล้วก็ต้องปรับระยะพิกัดแสดงภาพ ตรง " xalign=0.05, กับ yalign=0.98" ให้วางซ้อนทับพอดีกับภาพกรอบด้านหลัง ก็เป็นอันเรียบร้อย หุหุ (แต่ละคนระยะจะไม่เท่ากันขึ้นอยู่กับขนาดของกรอบ) จำได้ไหมค่ะ x คือ แนวนอน ปรับได้ตั้งแค่ 0.0 ถึง 1.0 และ y คือแนวตั้ง ปรับได้ตั้งแต่ 0.0 ถึง 1.0 เช่นกันค่ะ
***ควรระวังเรื่องการเคาะเว้นวรรคด้วยนะค่ะ ไม่งั้นโปรแกรมจะเกิด Error
ขอจบบทความแค่เพียงเท่านี้ แล้วพบกันใหม่บทความหน้าค่ะ ^^
บทความโดย นุ้ก (ขอสงวนสิทธิ์อนุญาตให้เผยแพร่เฉพาะในเว็บ www.graphicfufu.com เท่านั้น)
|
-
|