Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
การทำระบบตั้งชื่อตัวละครอย่างง่าย (Name Input)
#1
สำหรับ Visual Novel แนว Simulator
เพื่อสร้างอารมณ์ร่วมในการสวมบทบาท หลายๆเกมส์มักจะมอบโอกาสให้ผู้เล่นตั้งชื่อตัวละครเองได้
ฉะนั้น เราก็จะเห็นตัวละครสาวน่ารักเรียกชื่อเราเช่น "นายจะบ้าเหรอ! 'สมศักดิ์' อย่าได้เข้าใจผิดเชียวนะ!" เป็นต้น

วันนี้เราจะมาสอนวิธีการทำแบบนั้นใน Ren'Py โปรแกรมVN Engineยอดนิยมกัน ไฮโซ

ก่อนอื่นก็เปิดไฟล์script.rpyขึ้นมา ด้วยโปรแกรมอะไรก็ได้ตามสะดวก ส่วนของผมใช้ jedit ล่ะ

จากนั้น ก็เริ่มต้นด้วยการ define ตัวละครขึ้นมาก่อน ให้มาเริ่มที่ส่วนประกาศ เหนือ label start

Code:
#การประกาศตัวแปรชื่อ สามารถเปลี่ยน m กับ my_name ได้ตามใจชอบ
define m = DynamicCharacter('my_name', color="#ff0100")
แล้วก็เขียนโค้ดดังนี้ลงไปในส่วนของตัวเกมส์

Code:
label start:
    
    #การตั้งชื่อตัวละคร my_name สามารถเปลี่ยนได้ตามใจชอบ คุณอาจจะเลือกคำอื่นๆเช่น player แทนตัวแปรได้ ทั้งนี้จะต้องเป็นคำเดียวกันกับคำที่คุณประกาศตัวแปรไว้ก่อนหน้านี้นะ

    $ my_name = renpy.input("โปรดตั้งชื่อตัวละครของคุณ")
    $ my_name = my_name.strip()

    #ส่วนตรงนี้ ในกรณีที่ผู้เล่นไม่ใส่ชื่อตัวละคร เราจะตั้งชื่อตัวละครแบบdefaultไว้ด้วย
    if my_name == "":
        $ my_name="สมศักดิ์"

เสร็จแล้วครับ ไม่ยากเลยใช่ไหม ทีนี้คำว่า my_name ทุกคำในเกมส์ของคุณก็จะใช้แทนชื่อตัวละครหลักไปตลอด
เวลาจะใช้ในเกมส์ก็ให้ทำอย่างนี้

Code:
m "ผมชื่อ %(my_name)s!"

พอลองเริ่มเกมส์มา ตัวละครที่คุณ define ไว้ คือ m = my name ก็จะพูดว่า "ผมชื่อ สมศักดิ์!"

วิธีตั้งชื่อนี้สามารถใช้กับตัวแปรอะไรก็ได้ตามต้องการนะครับ หากคุณอยากให้ผู้เล่นตั้งชื่อแมว ชื่อหมา ชื่อแฟน ชื่อพ่อแม่ ก็ให้ประกาศตัวแปรอีกอันแทน my_name แล้วทำตามแบบวิธีข้างต้นโดยเปลี่ยน my_name เป็นตัวแปรอื่นตามใจชอบได้เลย

เอาละ! Lesson Complete
หวังว่าบทความนี้คงจะประโยชน์ให้แก่ผู้สนใจเอนจิ้นเรนปี้ไม่มากก็น้อยนะครับ ร้องไห้หนักมาก

โอกาสหน้าพบกันใหม่ เมี้ยว
คุยได้เล่นได้ครับ ผมไม่กัด แมวน้ำเต้น
My Facebook
My Youtube Channel
[-] The following 5 users say Thank You to Rocette for this post:
  • dreamknight, Kuma, motley, Nazuth, P.P.DarkWings
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)