Basic 3D Game with SceneKit

Sarinthon Mangkorn-ngam
2 min readMar 23, 2018

--

SceneKit

เป็น Framework ที่เข้ามาช่วยสร้างเกม 3D ให้ง่ายขึ้นทั้งเรื่องของ Animation, Physics, Particle and Realistic physically พูดง่าย ๆ คือ SceneKit เปรียบเสมือน Game engine ที่ช่วยให้เราพัฒนาเกมได้เร็วและสะดวกมากขึ้น

การที่เราจะสร้างเกมเพื่อแสดงผลบน SceneKitView นั้นก็เป็นเหมือนกับ View ทั่ว ๆ ไป ซึ่งเราก็สามารถลาก View อื่น ๆ เข้ามาใส่ได้ไม่ว่าจะเป็น ButtonView, LabelView และอื่น ๆ ดังตัวอย่าง

อีกอย่างที่สำคัญคือเกมของเราจะแสดงผลบน SceneKitView ได้ก็ต่อเมื่อใช้ Scene หรือฉากของเกมเข้ามาช่วย ซึ่งเจ้า Scene หรือ .scn นี่ละที่จะใช้จัดการกับ 3D Object ต่าง ๆ ดังนั้นเราต้องสร้าง Scene ขึ้นมาก่อน

จากนั้นลองสร้าง Box เปล่า ๆ ขึ้นมา

จะเห็นได้ว่าเป็นกล่องขาว ๆ ธรรมดาเราสามารถหา Texture 2D เข้ามาใส่ให้สวย ๆ ได้และทำการ Set เข้าไปที่ Material ได้ดังนี้

เทคนิคการใช้ Scene

ถ้าใช้ Hold click mouse และลากซ้ายขวาหรือบนล่างมันจะหมุนไปรอบ ๆ ตัวเอง แต่ถ้า Scroll up/down มันจะเป็นการเลื่อนขึ้นลง แต่ถ้าเราอยาก Zoom in/out ให้ทำการกดปุ่ม Option และ Scroll up/down

** การแสดงผลต่าง ๆ บนหน้าจอขึ้นอยู่กับ Camera ดังนั้นถ้าเราฉาย Camera ไปทางไหนมันก็จะเห็นทางนั้น นั่นหมายความว่าไม่ว่า 3D Object จะอยู่ส่วนไหนของ Scene แต่ถ้า Camera ไม่ได้ฉายไปทางนั้นมันก็จะไม่เห็น

ดังนั้นเราควร Set camera position ให้อยู่ตำแหน่ง 0,0,0 ก่อน

และก็วาง 3D Object ถัดเข้าไปจะได้เห็นได้ชัดเจน

จากนั้นทำให้ Set scene ให้กับ SceneKitView

sceneView.scene = SCNScene(named: “FirstScene.scn”)!

และเลือก Allow camera control เราก็จะสามารถเลื่อน 3D Object ของเราได้บนมือถือแล้ว

ผลลัพธ์

--

--

No responses yet