บทความสอนกราฟิก

 ลืมรหัสผ่าน
 ลงทะเบียน
ค้นหา
ดู: 3009|ตอบกลับ: 0

[Renpy] 18. วิธีทำแสงแดดในเกมส์ และที่หน้า Main Menu

[คัดลอกลิงก์]

272

กระทู้

272

โพสต์

979

เครดิต

ผู้ดูแลระบบ

Rank: 9Rank: 9Rank: 9

เครดิต
979
แก้ไขครั้งสุดท้ายโดย nooknazha เมื่อ 2018-5-27 22:09

[Renpy] 18. วิธีทำแสงแดดในเกมส์ และที่หน้า Main Menu
แสงแดดที่ว่านี้ก็คือการสร้างภาพแสงแดดแต่ละภาพขึ้นมา ประมาณ 3-4 ภาพให้มีความแตกต่างกันแล้วก็สั่งให้ภาพนั้นแสดงเป็นเข้ม - จาง เล่นวนสลับกันไปเรื่อยๆ นะค่ะโดยมีการกำหนดระยะที่จะแสดง และซ่อนภาพไว้ด้วยค่ะ

ขั้นตอนที่1 (มีภาพสำเร็จให้ด้านล่างบทความ)
- แต่ก่อนที่จะมาลุยตัวโค๊ดเรามาดูวิธีการทำภาพแสงแดดกันก่อนดีกว่า โปรแกรมที่ทำแสงแดดนั้นเราสามารถทำได้ทั้งในโปรแกรม AI และ PS นะค่ะ เครื่องมือหลักที่ใช้ก็มีแค่ Gradient Tool ตัวเดียว

- สีหลักที่ใช้ทำแสงแดดก็คือ "สีขาว"หรือบางคนอาจจะให้มีสีฟ้าจางๆ หรือสีส้มจางๆ ผสมบ้างก็ได้แต่ก่อนที่จะเริ่มไล่เฉดสีแสงแดด ขอแนะนำให้กำหนดเลเยอร์ล่างสุดเป็นพื้นสีดำค่ะเพื่อที่เราจะได้มองเห็นทิศทางของแสงแดด ได้ง่ายขึ้น (เวลาจะเซฟเป็นสกุล . pngค่อย ปิดตาเลเยอร์พื้นสีดำ )

Light_Sun_01.png

- เพื่อให้การไล่เฉดออกมาดูเหมือนแสงแดดของจริงมากที่สุดเราไม่ควรกำหนดให้ความเข้มของสีขาวมีค่าเป็น 100% เพราะเวลาที่แสดงภาพมันจะพาดทับภาพฉากและภาพตัวละครเป็นสีขาวทึบ ไม่โปรงใสเหมือนแสงแดดของจริง  เพราะฉะนั้นส่วนที่เข้มที่สุดในแสง เราควรกำหนดค่าความเข้ม (Opacity)ไว้ที่ประมาณ 30% แค่นั้นพอ
Light_Sun_02.png

- และเพื่อให้ขอบของลำแสงดูซอฟจางหายไปกับภาพพื้นหลังเราควรกำหนดค่าความเข้ม(Opacity)ตรงบริเวณที่จางมากที่สุดให้เป็น0% ค่ะ
Light_Sun_03.png
- ให้สร้างแสงแดด แบ่งออกมาเป็นแต่ละเลเยอร์ ใน 1 เลเยอร์อาจมีลำแสงสัก 2-3 เส้นวางไว้ในตำแหน่งที่ไม่ซ้ำที่กัน (เลเยอร์ดวงอาทิตย์ ("sun") ไว้เลเยอร์บนสุด) แล้วก็ให้ปิดตาเลเยอร์พื้นที่เป็นสีดำไปซะจากนั้นทยอยเซฟภาพทีละเลเยอร์ เท่านี้ก็เรียบร้อยแล้วค่ะสำหรับการทำภพแสดงแดด ^^
Light_Sun_04.png
ขั้นตอนที่ 2
-  ให้นำโค๊ดด้านล่างนี้มาประยุกต์ใช้ค่ะเราสามารถกำหนดระยะเวลาในการแสดงภาพ และระยเวลาในภาพซ่อนภาพได้ที่ตัวเลขหลังคำสั่ง "linear" (หน่วยเวลาเป็น 1.0 วินาที)

- คำสั่ง "alpha" คือคำสั่งสำหรับให้กำหนดความเข้ม-จางในการแสดงภาพโดยกำหนดได้ตั้งแต่ 0.0 - 1.0 ค่ะ ถ้ากำหนดเป็น 0.0 หมายถึงภาพจะหายไปทั้งหมด (ความเข้มภาพ = 0% )และถ้ากำหนดเป็น1.0 จะหมายถึงให้แสดงภาพเต็มที่ (ความเข้มภาพ = 100%)

- คำสั่ง"repeat" คือคำสั่งสำหรับให้เล่นวนซ้ำไปเรื่อยๆ

  1. transform light1:
  2.     alpha 0.0
  3.     linear 3.0 alpha 1.0
  4.     linear 7.0 alpha 0.0
  5.     repeat
คัดลอกไปที่คลิปบอร์ด

ตัวอย่างการนำโค๊ดมาใช้ ในไฟล์ "script.rpy" :--- สร้างโค๊ดสำหรับกำหนดการแสดงลำแสงออกเป็น3 แบบด้วยกันตามจำนวนภาพแสงแดดที่เราสร้างไว้


  1. #-----------------------------[ Character ]--------------------------------
  2. init:
  3.     $ v = Character("วิชชา", color="#00ff2a")
  4.    
  5. #-----------------------[ Image Light Sun ]--------------------------------

  6.     image sun = "cha/sun.png"
  7.     image light_1 = "cha/light_01.png"
  8.     image light_2 = "cha/light_02.png"
  9.     image light_3 = "cha/light_03.png"
  10.    
  11. #--------------------------[Image  Character ]------------------------------
  12.     image viccha_02 = "cha/viccha_02.png"
  13.    
  14. #--------------------------[ Time Light Sun]------------------------------
  15.     transform light1:
  16.         alpha 0.0
  17.         linear 3.0 alpha 1.0
  18.         linear 7.0 alpha 0.0
  19.         repeat
  20.             
  21.     transform light2:
  22.         alpha 1.0
  23.         linear 7.0 alpha 0.0
  24.         linear 3.0 alpha 1.0
  25.         repeat
  26.             
  27.     transform light3:
  28.         alpha 0.0
  29.         linear 15.0 alpha 0.0 #<----0.0 คือไม่แสดงภาพ/ 1.0 คือให้แสดงภาพ
  30.         linear 15.0 alpha 1.0 #<----- linear ใช้กำหนดระยะเวลาแสดงภาพและซ่อนภาพต่อวินาที)
  31.         repeat
  32. #---------------------------------[ Intro Start ]-----------------------------------------
  33. label start:
  34.     scene black
  35.     show viccha_02
  36.    
  37.     show sun
  38.     show light_1 at light1
  39.     show light_2 at light2
  40.     show light_3 at light3
  41.    
  42.     v "สวัสดีครับ....^^ "
  43. return
คัดลอกไปที่คลิปบอร์ด

(ตัวอย่าง.......... )

Light_Sun_05.png
- บันทึกไฟล์และลองรันโปรแกรมดูผลลัพธ์.....แสงแดดจะเล่นวนสลับกันไปเรื่อยๆ ถ้าเห็นว่ามัน วิว-วับๆๆเร็วเกินไปก็ปรับเวลาใหม่ให้ช้าลงกว่านี้ก็ได้
Light_Sun_06.png
----------------------------------------------------------------
วิธีใส่ภาพแสดงแดดไว้ที่หน้าMain Menu
แล้วในกรณีที่เราอยากให้ภาพแสงแดดนี้มาแสดงที่หน้าMain Menu ด้วย ก็ทำได้ไม่ยากค่ะ แค่ใช้คำสั่ง "add" เพิ่มเข้าไปที่หน้าโค๊ดของ Main Menu เหมือนกับที่เคยอธิบายไว้ที่บทความตามลิงค์ข้างบน

ตัวอย่าง....โค๊ด
  1. add "sun"
  2.     add "light_1" at light1
  3.     add "light_2" at light2
  4.     add "light_3" at light3
คัดลอกไปที่คลิปบอร์ด

(ตัวอย่าง...... วิธีแทรกโค๊ดคำสั่ง "add" เพิ่มภาพแสงแดดไว้ที่หน้า Main Menu)
Light_Sun_08.png

- บันทึกไฟล์และลองรันโปรแกรมดูค่ะ .........  จะเห็นว่ามีแสงแดดมาแสดงที่หน้า Main Menu ด้วย
Light_Sun_07.png
Light_Sun_10.jpg
*** ด้านล่างนี้เป็นภาพแสงแดด สำหรับใครที่ยังไม่ได้ทำไว้นะค่ะ(กดโหลดไปได้เลย) ที่เห็นเป็นสีขาวโล่งๆ เพราะแสงมันเป็นสีขาวจางๆเลยดูกลืนไปกับสีพื้นหลังเว็บบอร์ด
light_03.png

light_02.png

light_01.png

blank.png
sun.png

บทความโดย นุ้ก
ขอจบบทความแค่เพียงเท่านี้ แล้วพบกันใหม่บทความหน้าค่ะ ^^
(ขอสงวนสิทธิ์อนุญาตให้เผยแพร่เฉพาะในเว็บ www.graphicfufu.comเท่านั้น)
Light_Sun_09.jpg
ขออภัย! คุณไม่ได้รับสิทธิ์ในการดำเนินการในส่วนนี้ กรุณาเลือกอย่างใดอย่างหนึ่ง ลงชื่อเข้าใช้ | ลงทะเบียน

รายละเอียดเครดิต

ข้อความล้วน|อุปกรณ์พกพา|ประวัติการแบน|GraphicFUFU

GMT+7, 2024-12-22 14:52 , Processed in 0.075810 second(s), 22 queries .

Powered by Discuz! X3.4 R20180101, Rev.59

© 2001-2017 Comsenz Inc.

ตอบกระทู้ ขึ้นไปด้านบน ไปที่หน้ารายการกระทู้