ลง numpy, scipy และชุดคำสั่งเสริมต่างๆใน maya สำหรับ mac และ windows
เขียนเมื่อ 2016/01/16 01:16
แก้ไขล่าสุด 2021/09/28 16:42
numpy รวมถึง scipy, pandas และ matplotlib เป็นชุดคำสั่งของภาษาไพธอนที่มีประโยชน์และใช้งานมากโดยเฉพาะทางด้านวิทยาศาสตร์และอะไรที่ต้องจัดการข้อมูลทีต้องมีการคำนวณมากๆ
แต่น่าเสียดายว่าชุดคำสั่งเหล่านี้ไม่ได้ถูกบรรจุอยู่ในชุดคำสั่งมาตรฐานที่ถูกติดตั้งทันทีเมื่อลงภาษาไพธอนในเครื่อง เช่น math, os, sys, random ดังนั้นจำเป็นต้องโหลดมาติดตั้งแยกต่างหากอีกที
การติดตั้งชุดคำสั่งเหล่านี้ค่อนข้างยุ่งยาก สำหรับคนที่ไม่ชำนาญคอมพิวเตอร์จึงอาจใช้ไพธอนผ่านโปรแกรมแพ็กเกจที่มีการติดตั้งชุดคำสั่งเพิ่มเติมให้โดยอัตโนมัติ เช่น Enthought Canopy หรือ Anaconda
มายา ก็เป็นโปรแกรมหนึ่งที่ใช้ภาษาไพธอนในการทำงานเป็นหลัก โดยเมื่อติดตั้งโปรแกรมก็จะสามารถใช้งานภาษาไพธอนได้ทันที แต่ก็มีเพียงชุดคำสั่งมาตรฐาน ถ้าจะใช้ numpy ก็ต้องติดตั้งเพิ่มเติมอีกเช่นกัน
สำหรับคนที่เคยลงโปรแกรมสำหรับใช้ภาษาไพธอนมาแล้วรวมถึงโปรแกรมแพ็กเกจอย่าง Enthought Canopy หรือ Anaconda ก็สามารถเอา numpy จากในนั้นมาใช้ได้เลย โดยแค่จำเป็นต้องเพิ่มพาธลงไป (ซึ่งจะกล่าวถึงตอนช่วงท้าย)
อย่างไรก็ตาม สำหรับคนที่ไม่เคยลงโปรแกรมอะไรเกี่ยวกับภาษาไพธอนไว้ในเครื่องมาก่อนเลย และไม่ได้คิดว่าจะลงด้วย จะทำอย่างไรดี?
จากที่ได้ลองหาข้อมูลดูว่าทำอย่างไรถึงจะสามารถใช้ numpy ในโปรแกรมมายาได้ก็พบว่าหลายคนก็เจอปัญหาในการหาทางลงอยู่เหมือนกัน แต่ก็มีข้อมูลเกี่ยวกับเรื่องนี้น้อยมาก
แต่แล้วก็หาเจอลิงก์นี้ ซึ่งช่วยแก้ปัญหาได้อย่างง่ายดายสำหรับคนที่ใช้ windows
http://forums.autodesk.com/t5/maya-programming/guide-how-to-install-numpy-scipy-in-maya-windows-64-bit/td-p/5796722
แค่ทำตามที่เขียนในนั้น คือเข้าลิงก์นี้ https://drive.google.com/folderview?id=0BwsYd1k8t0lEfjJqV21yTnd2elVhNXEyTXhHclhxbDhvWVF5WWZUeVFISWViaFh1TzhrNTQ&usp=sharing
ไปโหลดไฟล์ numpy และ scipy มาจากนั้นก็นำไปไว้ใน PYTHONPATH ซึ่งก็คือโฟลเดอร์ที่โปรแกรมเตรียมไว้สำหรับไพธอน ซึ่งก็คือ
สำหรับ windows ภาษาอังกฤษ
<ไดรฟ์>:\Documents and Settings\<ชื่อผู้ใช้>\My Documents\maya\<เวอร์ชัน>\scripts
สำหรับ windows ภาษาญี่ปุ่น
<ไดรฟ์>:\Documents and Settings\<ชื่อผู้ใช้>\My Documents\maya\<เวอร์ชัน>\ja_JP\scripts
เพียงเท่านี้ก็สามารถใช้ numpy และ scipy ได้ทันที อย่างง่ายดาย
แต่ว่าวิธีนี้มีไว้สำหรับ windows เท่านั้นสำหรับ mac แล้วไม่มีใครเตรียมวิธีที่สะดวกแบบนั้นไว้ให้ ดังนั้นจึงต้องลองหาวิธีอื่นดู
หลังจากที่ลองไปค้นๆดูต่อก็มาพบลิงก์นี้ http://blog.animateshmanimate.com/post/115538511578/python-numpy-and-maya-osx-and-windows
ซึ่งได้เขียนวิธีการใช้ numpy ในมายาสำหรับทั้ง windows และ mac ไว้อย่างละเอียด
พอได้ลองทำตามแล้วก็พบว่าได้ผล ดังนั้นจึงเป็นที่มาที่ทำให้อยากเขียนหน้านี้ขึ้นมา เผื่อมีใครกำลังค้นหาวิธีอยู่เหมือนกัน
แม้ในลิงก์นั้นจะเขียนขั้นตอนวิธีการไว้อย่างละเอียด แต่ก็มีบางส่วนอ่านเข้าใจยาก และที่สำคัญคือข้อมูลค่อนข้างเก่าแล้ว สำหรับตอนนี้มีอะไรต่างไปจากเดิมอยู่บ้าง
ดังนั้นในที่นี้จึงขอเขียนเรียบเรียงใหม่ให้อ่านกัน ใครอ่านแล้วยังงงก็อ่านในลิงก์นั้นควบคู่กันไปด้วยได้
ก่อนอื่นเปิดลิงก์นี้เพื่อโหลดไฟล์ชื่อ install_superpack.sh
http://stronginference.com/ScipySuperpack/
นี่เป็นไฟล์ shell สำหรับลงชุดคำสั่งต่างๆหลายอย่างที่จำเป็นของไพธอน ซึ่งมี numpy, scipy, pandas และ matplotlib รวมอยู่ด้วย
จากนั้นก็ให้เปิด เทอร์มินัล (ターミナル, terminal) ขึ้นมา
บางคนที่เพิ่งหัดใช้ mac ใหม่ๆอาจไม่รู้จักคุ้นเคยกับเทอร์มินัล วิธีการเปิดคือเข้าให้เข้าตามนี้
Applications (アプリケーション) > Utilities (ユーティリティ) >Terminal (ターミナル)
ซึ่งแสดงไว้ในรูป (ในนี้ใช้เป็นภาษาญี่ปุ่น แต่หากใครใช้ภาษาอื่นก็ต่างกันแค่ตัวหนังสือ รูปเหมือนกัน สามารถเทียบเอาได้)
พอเปิดเทอร์มินัลขึ้นมาแล้วก็จะพบว่าอยู่ในโฟลเดอร์ที่เป็นชื่อผู้ใช้ ซึ่งบรรจุทั้งโฟลเดอร์เดสก์ท็อป และโฟลเดอร์ดาวน์โหลด ฯลฯ
จากนั้นก็ให้เข้าไปที่โฟลเดอร์ที่เก็บไฟล์ install_superpack.sh ซึ่งโหลดมา ถ้าใครโหลดไฟล์มาลงที่โฟลเดอร์มาตรฐานก็คือ Downloads ก็แค่พิมพ์
cd Downloads
เท่านั้นก็จะเข้าไปในโฟลเดอร์ดาวน์โหลด
เสร็จแล้วพิมพ์ sh แล้วก็เว้นวรรค แล้วตามด้วยชื่อไฟล์ที่โหลดมา
sh install_superpack.sh
จากนั้นการติดตั้งก็จะเริ่มต้นขึ้น
ระหว่างนั้นจะมีข้อความขึ้นมามากมาย และอาจมีขึ้นมาให้ติดตั้งโปรแกรมเพิ่มเติมที่จำเป็นหากเรายังไม่เคยติดตั้งเอาไว้ เช่น xcode ก็ให้ติดตั้งไป
อย่างไรก็ตาม ไฟล์มีขนาดใหญ่พอสมควร ดังนั้นควรจะเหลือพื้นที่ในฮาร์ดดิสก์มากพอ
ระหว่างขั้นตอนจะมีให้เลือกว่าจะติดตั้งเวอร์ชัน 2.7 หรือ 3.5 ให้พิมพ์เลข 2 ลงไปจะเป็นการเลือกเวอร์ชัน 2.7 (อย่าเลือก 3.5 เพราะไม่สามารถใช้กับมายาได้)
กระบวนการติดตั้งนี้ใช้เวลานานมาก ให้รอไปเรื่อยๆ ระหว่างนั้นพื้นที่ในฮาร์ดดิสก์อาจจะลดลงไปอย่างมาก แต่ก็แค่ชั่วคราวเพราะพอทุกอย่างจบลงพื้นที่จะคืนกลับมาบางส่วน อย่างไรก็ตามน่าจะมีพื้นที่เผื่อไว้สัก 5GB ขึ้นไป
หลังจากรอเป็นเวลานานขั้นตอนการติดตั้งทั้งหมดก็เสร็จสมบูรณ์ และจะมีขึ้นโฟลเดอร์ที่ไฟล์ถูกนำไปเก็บไว้ให้เห็นอยู่ตอนท้ายๆ
ในที่นี้คือ /usr/local/lib/python2.7/site-packages
ลองเข้าไปดูในโฟลเดอร์นั้นจะเจอโพลเดอร์ที่เก็บชุดคำสั่งต่างๆมากมาย
ดูแล้วจะเห็นว่าทุกอย่างถูกลงไว้เรียบร้อย เท่านี้ก็สามารถใช้ numpy, scipy, pandas และ matplotlib ได้แล้ว
เพียงแต่ว่าขั้นตอนยังไม่จบแค่นี้ แค่พิมพ์ import ในมายาตอนนี้ยังไม่สามารถใช้ได้ เพราะไฟล์เหล่านี้ไม่ได้อยู่ในพาธที่ถูกกำหนดไว้ของโปรแกรมมายา
ดังนั้นเราต้องทำการเพิ่มพาธโดยใช้คำสั่ง sys.path.append() ซึ่งอยู่ในชุดคำสั่ง sys
พิมพ์ลงไปดังนี้ในสคริปต์อีดิเตอร์ของมายา
import sys
sys.path.append('/usr/local/lib/python2.7/site-packages/numpy-1.11.0.dev0+aa6335c-py2.7-macosx-10.11-x86_64.egg')
sys.path.append('/usr/local/lib/python2.7/site-packages')
อนึ่ง ชื่ออาจเปลี่ยนไปตามเวอร์ชันหากมีการอัปเดต หรืออาจต่างกันไปตามเครื่องแต่ละคน ให้ดูชื่อโฟลเดอร์เอาตามที่เห็นตอนเพิ่งลงเสร็จ
เท่านี้ก็สามารถใช้ได้แล้ว ลองสั่ง import ดูได้เลย
import numpy as np
import scipy as sp
import pandas as pd
import matplotlib.pyplot as plt
เท่านี้ก็น่าจะใช้งานได้แล้ว
อย่างไรก็ตามหากปิดโปรแกรมแล้วเปิดใหม่ก็จะต้องมาพิมพ์ sys.path.append() ใหม่ทุกครั้งซึ่งอาจยุ่งยาก แต่ก็มีวิธีทำให้มันรันใหม่โดยอัตโนมัติทุกครั้งที่เปิดโปรแกรม
ให้เข้าไปเปิดไฟล์ชื่อ userSetup.py ซึ่งอยู่ใน PYTHONPATH (หรือหากยังไม่มีอยู่ก็ให้สร้างขึ้นมาใหม่) ใช้โปรแกรมอะไรก็ได้ที่สามารถเปิดและแก้ข้อความได้
สำหรับตำแหน่งของ PYTHONPATH เป็นไปตามนี้
สำหรับ mac ภาษาอังกฤษ
~/Library/Preferences/Autodesk/maya/<เวอร์ชัน>/scripts
สำหรับ mac ภาษาญี่ปุ่น
~/Library/Preferences/Autodesk/maya/<เวอร์ชัน>/ja_JP/scripts
เพิ่ม ๓ บรรทัดนั้นลงไปในไฟล์นี้แล้วก็เซฟ
จากนั้นปิดโปรแกรมมายาแล้วเปิดขึ้นมาใหม่อีกรอบ คราวนี้ก็จะพบว่าสามารถ import numpy ได้แล้ว
ลองทดสอบโดยการใช้งานดูเลย
ลองสร้างเส้นการเคลื่อนที่สุ่มขึ้นมาโดยใช้ numpy.random.rand() สร้างอาเรย์แบบสุ่มขึ้นมา แล้วก็เปลี่ยนเป็นอาเรย์ของผลรวมโดยใช้ numpy.cumsum()
จากนั้นก็นำอาเรย์ที่ได้มาใส่เป็นจุด ep ใน mc.curve() ได้เลย ฟังก์ชันของมายาเองก็สามารถใช้อาเรย์แทนลิสต์ได้
import maya.cmds as mc
import numpy as np
p = np.random.rand(2500,3)*2-1
pp = p.cumsum(axis=0)
mc.curve(ep=pp)
print pp
สำหรับคนที่ลงโปรแกรมอื่นๆที่ใช้ภาษาไพธอนไว้ในเครื่องอยู่แล้ว ไม่จำเป็นต้องทำอะไรยุ่งยากดังที่กล่าวมา แค่เพียงเพิ่มพาธของโฟลเดอร์ที่เก็บชุดคำสั่งต่างๆเข้าไปเท่านั้น
ยกตัวอย่างเช่นหากใช้ Enthought Canopy ใน mac ก็พิมพ์เป็น
import sys
sys.path.append('/Users/<ชื่อผู้ใช้>/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages')
ส่วน anaconda ก็
import sys
sys.path.append('/Users/<ชื่อผู้ใช้>/anaconda/lib/python2.7/site-packages')
เพียงเท่านี้ก็สามารถใช้ได้แล้ว และโดยส่วนตัวแล้วค่อนข้างจะแนะนำวิธีนี้มากกว่าด้วย เพราะโปรแกรมนี้มีชุดคำสั่งที่ติดมาตอนลงเยอะมาก และสามารถโหลดชุดคำสั่งอะไรต่างๆที่ต้องการมาเพิ่มเติมได้อย่างง่ายดาย เผื่อใครต้องการใช้อะไรมากกว่านี้
สามารถโหลด Enthought Canopy มาติดตั้งได้โดยเข้าเว็บนี้ https://www.enthought.com
ส่วน anaconda ที่เว็บนี้ https://www.continuum.io
พอใช้ numpy ได้แล้วก็สามารถใช้งานทำอะไรได้สะดวกขึ้นมาก สามารถลองเล่นอะไรสนุกๆดูได้อีกเยอะ
-----------------------------------------
囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧
ไม่อนุญาตให้นำเนื้อหาของบทความไปลงที่อื่นโดยไม่ได้ขออนุญาตโดยเด็ดขาด หากต้องการนำบางส่วนไปลงสามารถทำได้โดยต้องไม่ใช่การก๊อปแปะแต่ให้เปลี่ยนคำพูดเป็นของตัวเอง หรือไม่ก็เขียนในลักษณะการยกข้อความอ้างอิง และไม่ว่ากรณีไหนก็ตาม ต้องให้เครดิตพร้อมใส่ลิงก์ของทุกบทความที่มีการใช้เนื้อหาเสมอ