φυβλαςのβλογ
บล็อกของ phyblas



~ mmdpaimaya ~ ส่วนแก้ไขเพิ่มเติมใน 1.2
เขียนเมื่อ 2017/05/07 00:14
แก้ไขล่าสุด 2021/09/28 16:42
หลังจากที่ได้สร้างโปรแกรม mmdpaimaya สำหรับใช้แปลงโมเดลของ MMD มาใส่ในโปรแกรมมายาไป https://phyblas.hinaboshi.com/20170221

ตอนนี้ได้ปรับปรุงโปรแกรมเพิ่มเติมเพื่อให้สามารถใช้งานได้ดีขึ้นแล้ว ตัวโค้ดก็ยังโหลดใช้ได้จากที่เดิม https://github.com/phyblas/mmdpaimaya

รุ่นปรับปรุงนี้ใช้ชื่อว่าเวอร์ชัน 1.2 เนื่องจากมีการปรับปรุงจากที่ออกไปตอนแรกพอสมควร

และในส่วนของคำอธิบาย readme ก็มีการแก้ไขเพิ่มเติมให้สอดคล้องกับเวอร์ชันใหม่

สำหรับตรงนี้จะขอเขียนบันทึกเอาไว้ว่ามีการเปลี่ยนแปลงอะไรยังไงบ้าง



1. แก้บั๊กที่โหลดบางไฟล์ไม่ได้
ในตอนแรกเริ่มมีโมเดลจำนวนหนึ่งที่ใช้โค้ดนี้โหลดแล้วเกิดข้อผิดพลาดขึ้นอย่างไม่ทราบสาเหตุ ทำให้ไม่สามารถใช้ได้

หลังจากได้ลองหาทางวิธีก็พบว่ามันเกิดจากการที่มีหน้าโพลิกอนบางส่วนมีการใข้จุดยอดซ้ำ หน้าแบบนั้นจะเกิดขึ้นไม่ได้ในไพธอน แม้แต่เวลาที่เปิดไฟล์ .obj เองก็ตามหากมีหน้าแบบนั้นอยู่ก็จะเกิดข้อผิดพลาดเหมือนกัน

แต่ว่าในโมเดลของ MMD มีอยู่จำนวนหนึ่งที่เกิดหน้าแบบนั้นขึ้นมา ไม่ว่าจะด้วยสาเหตุอะไรก็ตาม มันไม่ทำให้เกิดปัญหาในการเปิดใน MMD แต่พอนำมาแปลงก็จะมีปัญหาทันที

ดังนั้นการแก้ก็คือต้องเขียนโค้ดให้ทำการคัดเอาหน้าแบบนั้นทิ้งไป เท่านี้ก็ใช้ได้

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



2. ใช้เปิดไฟล์ .x ได้แล้ว
ถ้าเป็นก่อนหน้านี้จะเปิดได้แต่ไฟล์ .pmd และ .pmx ทำให้หากมี .x อยู่ก็ต้องนำไปแปลงก่อน

เพื่อความสะดวกมากขึ้นจึงหาทางเขียนโค้ดให้สามารถอ่าน .x ได้ด้วยโดยตรง

โค้ดในส่วนที่ใช้อ่าน .x นั้นถูกเขียนขึ้นมาใหม่แยกจากส่วนที่เปิดอ่าน .pmd และ .pmx เพราะเป็นไฟล์ที่มีความแตกต่างกันมาก

เดิมทีโค้ดไม่ได้ถูกเขียนมาให้รองรับ .x ด้วย กลไกการอ่านข้อมูลมีความต่างกันพอสมควร โค้ดส่วนนี้จึงเขียนขึ้นเองทั้งหมดโดยไม่ได้ใช้ไลบรารีเสริมใดๆดังนั้นจึงอาจไม่มีประสิทธิภาพเท่า

มีโมเดลบางส่วนที่โหลดขึ้นมาแล้วยังมีอาการแปลกๆ ดังนั้นจึงเห็นได้ว่ายังใช้การได้ไม่ดีเท่าที่ควร ยังไงก็ยังแนะนำให้ใช้ .pmd กับ .pmx มากกว่า ไว้มีโอกาสจะปรับปรุงต่อไป



3. เพิ่มให้สามารถปรับเปลี่ยนภาษาได้
เพิ่ม GUI ภาษาญี่ปุ่นและภาษาจีนเข้าไปด้วย สามารถปรับภาษาไปมาได้โดยเลือกที่ด้านบนขวา ข้อความที่ขึ้นจะเปลี่ยนไปตามภาษาที่เลือก

การเพิ่มภาษาเข้าไปก็เพื่อให้สะดวกสำหรับคนชาติอื่นด้วยเท่านั้น ไม่ได้มีผลต่อชิ้นงาน





4. เลือกวัสดุได้หลากหลาย

ถ้าเป็นก่อนหน้านี้จะเลือกได้แค่ว่าสร้างวัสดุหรือเปล่า ถ้าเลือกสร้างก็จะทำเป็นวัสดุชนิด blinn

ตอนนี้ได้ทำให้เลือกวัสดุเป็นชนิดอื่นได้ด้วย ได้แก่ blinn, phong, lambert และ aiStandard

แต่โดยพื้นบานแล้วที่เหมาะจะใช้มากที่สุดก็ยังเป็น blinn เพียงแต่หากจะใช้อาร์โนลด์ในการเรนเดอร์แล้วใช้ aiStandard จะเหมาะกว่า

ส่วน phong และ lambert นั้นแค่ถือโอกาสใส่เพิ่มไปด้วยเฉยๆ โอกาสใช้งานจริงๆอาจจะไม่มี



5. สามารถเลือกว่าทำอัลฟาแม็ปทั้งหมดได้
ก่อนหน้านี้จะเลือกแค่ว่าจะไม่ทำอัลฟาแม็ปเลยหรือว่าเลือกทำบางส่วน

แต่จากการลองใช้มาเรื่อยๆก็พบว่าจริงๆแล้วการทำอัลฟาแม็ปในวัสดุที่ทำได้ไปก่อนทั้งหมดนั้นไม่ได้ทำให้เป็นปัญหาอะไรๆจริงๆ แม้ว่าจะทำให้แสดงผลแปลกๆในวิวพอร์ตแต่เวลาเรนเดอร์ก็จะไม่มีปัญหาอะไร

ดังนั้นโดยพื้นฐานแล้วทำอัลฟาแม็ปให้วัสดุทั้งหมดที่ทำได้ไปเลยก็ไม่ใช่ปัญหา จึงเพิ่มตัวเลือกให้ทำทั้งหมดได้

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



ทั้งหมดที่ว่านี่เป็นส่วนหลักๆที่มีการเปลี่ยนแปลงไป ที่จริงมีรายละเอียดปลีกย่อยเล็กๆน้อยๆซึ่งไม่ได้ถึงกับต้องเขียนถึง

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



-----------------------------------------

囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧

ดูสถิติของหน้านี้

หมวดหมู่

-- คอมพิวเตอร์ >> 3D >> maya
-- คอมพิวเตอร์ >> เขียนโปรแกรม >> python >> mayapython
-- คอมพิวเตอร์ >> 3D >> MMD

ไม่อนุญาตให้นำเนื้อหาของบทความไปลงที่อื่นโดยไม่ได้ขออนุญาตโดยเด็ดขาด หากต้องการนำบางส่วนไปลงสามารถทำได้โดยต้องไม่ใช่การก๊อปแปะแต่ให้เปลี่ยนคำพูดเป็นของตัวเอง หรือไม่ก็เขียนในลักษณะการยกข้อความอ้างอิง และไม่ว่ากรณีไหนก็ตาม ต้องให้เครดิตพร้อมใส่ลิงก์ของทุกบทความที่มีการใช้เนื้อหาเสมอ

สารบัญ

รวมคำแปลวลีเด็ดจากญี่ปุ่น
มอดูลต่างๆ
-- numpy
-- matplotlib

-- pandas
-- manim
-- opencv
-- pyqt
-- pytorch
การเรียนรู้ของเครื่อง
-- โครงข่าย
     ประสาทเทียม
ภาษา javascript
ภาษา mongol
ภาษาศาสตร์
maya
ความน่าจะเป็น
บันทึกในญี่ปุ่น
บันทึกในจีน
-- บันทึกในปักกิ่ง
-- บันทึกในฮ่องกง
-- บันทึกในมาเก๊า
บันทึกในไต้หวัน
บันทึกในยุโรปเหนือ
บันทึกในประเทศอื่นๆ
qiita
บทความอื่นๆ

บทความแบ่งตามหมวด



ติดตามอัปเดตของบล็อกได้ที่แฟนเพจ

  ค้นหาบทความ

  บทความแนะนำ

ตัวอักษรกรีกและเปรียบเทียบการใช้งานในภาษากรีกโบราณและกรีกสมัยใหม่
ที่มาของอักษรไทยและความเกี่ยวพันกับอักษรอื่นๆในตระกูลอักษรพราหมี
การสร้างแบบจำลองสามมิติเป็นไฟล์ .obj วิธีการอย่างง่ายที่ไม่ว่าใครก็ลองทำได้ทันที
รวมรายชื่อนักร้องเพลงกวางตุ้ง
ภาษาจีนแบ่งเป็นสำเนียงอะไรบ้าง มีความแตกต่างกันมากแค่ไหน
ทำความเข้าใจระบอบประชาธิปไตยจากประวัติศาสตร์ความเป็นมา
เรียนรู้วิธีการใช้ regular expression (regex)
การใช้ unix shell เบื้องต้น ใน linux และ mac
g ในภาษาญี่ปุ่นออกเสียง "ก" หรือ "ง" กันแน่
ทำความรู้จักกับปัญญาประดิษฐ์และการเรียนรู้ของเครื่อง
ค้นพบระบบดาวเคราะห์ ๘ ดวง เบื้องหลังความสำเร็จคือปัญญาประดิษฐ์ (AI)
หอดูดาวโบราณปักกิ่ง ตอนที่ ๑: แท่นสังเกตการณ์และสวนดอกไม้
พิพิธภัณฑ์สถาปัตยกรรมโบราณปักกิ่ง
เที่ยวเมืองตานตง ล่องเรือในน่านน้ำเกาหลีเหนือ
ตระเวนเที่ยวตามรอยฉากของอนิเมะในญี่ปุ่น
เที่ยวชมหอดูดาวที่ฐานสังเกตการณ์ซิงหลง
ทำไมจึงไม่ควรเขียนวรรณยุกต์เวลาทับศัพท์ภาษาต่างประเทศ

บทความแต่ละเดือน

2024年

1月 2月 3月 4月
5月 6月 7月 8月
9月 10月 11月 12月

2023年

1月 2月 3月 4月
5月 6月 7月 8月
9月 10月 11月 12月

2022年

1月 2月 3月 4月
5月 6月 7月 8月
9月 10月 11月 12月

2021年

1月 2月 3月 4月
5月 6月 7月 8月
9月 10月 11月 12月

2020年

1月 2月 3月 4月
5月 6月 7月 8月
9月 10月 11月 12月

ค้นบทความเก่ากว่านั้น

ไทย

日本語

中文