ช่วงนี้ทำงาน Immersive ค่อนข้างเยอะ และถ้าจบที่ Unity ก็คงจะดี แต่บางงานมันก็แค่ต้อง Run และแสดงผลงานพวกนี้ openFrameWorks เป็นตัวเลือกนึงที่น่าสนใจ เขียนด้วย C++
openFrameworks คือ ชุดเครื่องมือ C++ แบบโอเพ่นซอร์สสำหรับการเขียนโค้ดเชิงสร้างสรรค์
พูดง่ายๆ ก็คือ openFrameworks ช่วยให้นักพัฒนาสร้างงานศิลปะแบบอินเทอร์แอคทีฟ แอนิเมชัน เกม และแอปพลิเคชันมัลติมีเดียอื่นๆ ได้ง่ายขึ้น โดยไม่ต้องกังวลกับรายละเอียดทางเทคนิคระดับต่ำมากนัก
จุดเด่นของ openFrameworks:
- ใช้งานง่าย: openFrameworks ออกแบบมาให้ง่ายต่อการเรียนรู้และใช้งาน แม้แต่ผู้เริ่มต้นก็สามารถเข้าใจและสร้างผลงานที่น่าสนใจได้
- ข้ามแพลตฟอร์ม: รองรับการพัฒนาบนระบบปฏิบัติการต่างๆ เช่น Windows, macOS, Linux, iOS, Android
- โอเพ่นซอร์ส: ฟรี สามารถใช้งาน แก้ไข และเผยแพร่ได้อย่างอิสระ
- ชุมชนแข็งแกร่ง: มีชุมชนนักพัฒนาขนาดใหญ่ คอยช่วยเหลือ แบ่งปันความรู้ และพัฒนาเครื่องมือต่างๆ
openFrameworks เหมาะสำหรับ:
- ศิลปิน: สร้างสรรค์ผลงานศิลปะดิจิทัล งานติดตั้งแบบอินเทอร์แอคทีฟ
- นักออกแบบ: ออกแบบ Visual สร้างต้นแบบอินเทอร์แอคทีฟ
- นักพัฒนา: สร้างเกม แอปพลิเคชันมัลติมีเดีย และโปรแกรม visualization
ตัวอย่างการใช้งาน openFrameworks:
- งานศิลปะ generative: สร้างภาพ แอนิเมชัน และรูปแบบต่างๆ แบบอัตโนมัติ
- การควบคุมฮาร์ดแวร์: เชื่อมต่อกับเซ็นเซอร์ กล้อง ไมโครโฟน และอุปกรณ์อื่นๆ
- การสร้าง Visual effect: สร้างเอฟเฟกต์ภาพ เช่น particle system, shader
- การพัฒนาเกม: สร้างเกม 2D และ 3D
แล้วเจ้า Creative Coding คืออะไร?, ต้องบอกว่า ช่วงนึงอ่านหนังสือ Creative Code, ของ Marcus Du Sautoy
หนังสือ Creative Code โดย Marcus du Sautoy เป็นผลงานที่ว่าด้วยการผสมผสานระหว่างความคิดสร้างสรรค์กับคณิตศาสตร์และปัญญาประดิษฐ์ AI โดยเขาพูดถึงคำถามว่า “คอมพิวเตอร์ทำงานสร้างสรรค์ได้จริงหรือ?” และวิธีที่โค้ดและอัลกอริทึมมีบทบาทสำคัญในการสร้างผลงานศิลปะ ดนตรี วรรณกรรม และอื่นๆ
ในหนังสือเล่มนี้ du Sautoy อธิบายว่าความคิดสร้างสรรค์ซึ่งแต่เดิมถูกมองว่าเป็นคุณลักษณะเฉพาะของมนุษย์ อาจถูกท้าทายด้วยความก้าวหน้าของ AI และแมชชีนเลิร์นนิง โดยเขานำเสนอกรณีศึกษาต่างๆ เช่น การสร้างดนตรีด้วย AI การเขียนบทกวี และการสร้างงานศิลปะดิจิทัล เพื่อให้เห็นภาพว่าคอมพิวเตอร์สามารถ “เรียนรู้” ที่จะสร้างสรรค์ได้อย่างไร
ใน Creative Code ผู้เขียนยังสำรวจแนวคิดเกี่ยวกับความคิดสร้างสรรค์ในเชิงปรัชญา และตั้งคำถามว่าความคิดสร้างสรรค์หมายถึงอะไร อะไรที่ทำให้ผลงานสร้างสรรค์มีคุณค่า และบทบาทของมนุษย์จะเป็นอย่างไรเมื่อเทคโนโลยีมีความสามารถในการสร้างสรรค์เทียบเท่าหรือเกินกว่ามนุษย์
เข้าเรื่องเลยมาทำงานกันดีกว่า ทีนี้ openFrameworks และ C++ นี่มันต้องใช้เครื่องมือ Compile Code ซึ่งก็คงหนีไม่พ้น Visual Studio Community 2022 ครับ ไปดาวน์โหลดที่ Visual Studio 2022 Community Edition – Download Latest Free Version (https://visualstudio.microsoft.com/vs/community/)
ติดตั้งโปรแกรมแล้วก็อย่าลืมเลือก Workloads ที่จำเป็นสำหรับการพัฒนา C++ โดยต้องเลือก “Desktop development with C++“
ทำการกดปุ่ม Install รอจนกว่าการติดตั้งจะเสร็จสิ้น
ระหว่างที่รอ ก็แนะนำให้ไปทำขั้นตอนที่ 2 คือการติดตั้ง openFrameworks
- ดาวน์โหลด openFrameworks เวอร์ชันล่าสุด จากเว็บไซต์ทางการ: https://openframeworks.cc/download/ เลือกเวอร์ชันที่ตรงกับระบบปฏิบัติการของคุณ (Windows)
- แตกไฟล์ .zip ที่ดาวน์โหลดมาไว้ในไดเรกทอรีที่คุณต้องการ เช่น
D:\openFrameworks
เราจะเห็น Folder ชื่อ projectGenerator ให้เข้าไปในนั้นเปิดโปรแกรมเพื่อทำการ New Project ใหม่แต่ Visual Studio ต้องมี Desktop development with C++ แล้วนะ
ตั้งค่า Project Generator
- เปิดโฟลเดอร์
projectGenerator
ที่อยู่ในโฟลเดอร์ openFrameworks ที่คุณแตกไฟล์ไว้ - ดับเบิลคลิกที่ไฟล์
projectGenerator.exe
เพื่อเปิด Project Generator - ใน Project Generator เลือก “Visual Studio 2022” ในช่อง “ProjectGenerator IDE”
สร้าง Project ใหม่
- ใน Project Generator ตั้งชื่อ Project ของคุณในช่อง “ProjectName” เช่น
myFirstProject
- เลือกโฟลเดอร์ที่จะเก็บ Project ของคุณในช่อง “ProjectPath”
- กดปุ่ม “Generate” เพื่อสร้าง Project
เปิดและรัน Project
กดปุ่ม “Local Windows Debugger” (ปุ่มสีเขียวรูปสามเหลี่ยม) เพื่อรัน Project
เปิด Visual Studio 2022
ไปที่ File > Open > Project/Solution แล้วเลือกไฟล์ .sln
ในโฟลเดอร์ Project ที่คุณสร้างไว้ เช่น D:\myFirstProject\myFirstProject.sln
โอเคถ้าไม่มีอะไรผิดพลาดก็จะเห็นหน้าจอแบบนี้!
แปลว่าเราเริ่มที่จะพร้อมเขียนโปรแกรมละ ต่อไปก็คือ C++ กัน
บทความต่อไป: Creative Coding ด้วย C++ และ openFrameworks การเขียนโปรแกรมเบื้องต้น
2 Comments