วันจันทร์ที่ 23 พฤศจิกายน พ.ศ. 2558

stop motion

ประวัติความเป็นมา
                Stop-motion เริ่มมีมาตั้งแต่ช่วงปลายปี ค.ศ. 1800 มันถูกสร้างโดยใส่การเคลื่อนไหวเข้าไปในวัตถุที่เคลื่อนไหวไม่ได้ ลองมาเรียนรู้เพิ่มเติมเกี่ยวกับประวัติความเป็นมาของ Stop-motion

              ในสมัยก่อน การทำ stop-motion ส่วนมากจะทำกับวัตถุที่เคลื่อนไหวเองไม่ได้ ต้องทำการถ่ายรูปแล้วก็ขยับวัตถุทีละน้อยแล้วก็ถ่ายรูปซ้ำไปซ้ำมา พอได้ภาพจำนวนหนึ่ง ก็จะนำมาเรียงต่อกันเพื่อทำเป็นหนัง stop-motion เรื่องสั้นเรื่องแรก คือ The Humpty Dumpty Circus สร้างโดย Albert Smith กับ Stuart Blackton ในปี 1899

               Emile Cohl
               Emile Cohl นักสร้างการตูนและผู้สร้างอนิเมชั่นชาวฝรั่งเศส เป็นคนนำ stop-motion เข้ามาสู่อเมริกา เขาใช้ ภาพวาด หุ่นจำลอง และอื่นๆที่เคลื่อนไหวไม่ได้ เท่าที่เขาจะหาได้ สำหรับทำ stop-motion แล้วหนัง stop-motion เรื่องแรกของเขา ชื่อว่า Fantasmagorie เขาสร้างมันเสร็จในปี 1908 ใช้ภาพวาดทั้งหมด 700 ภาพ แล้วถ่ายรูปขึ้นมาเพื่อนำมาทำเป็นอนิเมชั่น

               Willis O’Brien
               Willis O’Brien เป็นผู้สร้างเทคนิคพิเศษให้กับวงการภาพยนตร์ ภาพยนตร์เรื่องแรกที่เขาร่วมสร้างคือ The Lost World ในปี 1925 ในภาพยนตร์มีบางช่วงที่เป็น stop-motion ซึ่งเขาเป็นคนทำมัน จากผลงานนี้ทำให้เขาได้ร่วมงานกับทีมสร้าง King Kong

ที่มา : http://www.lomography.co.th/magazine/128477-a-short-history-of-stop-motion-animation-thai

ความหมาย
          การถ่ายสต็อปโมชัน (อังกฤษ: stop motion) เป็นแอนิเมชันที่ผู้ทำแอนิเมชันต้องสร้างส่วนประกอบต่าง ๆ ของภาพขึ้นด้วยวิธีอื่น นอกเหนือจากการวาดบนแผ่นกระดาษ หรือแผ่นเซล และยังต้องยอมเมื่อยมือ ขยับรูปร่างท่าทางของส่วนประกอบเหล่านั้นทีละนิด ๆ แล้วใช้กล้องถ่ายไว้ทีละเฟรม ๆ

เทคนิค
          การถ่ายสต็อปโมชันมีเทคนิคทำได้หลากหลาย เช่น
          · เคลย์แอนิเมชัน (Clay animation เรียกย่อ ๆ ว่า เคลย์เมชัน / claymation) คือแอนิเมชันที่ใช้หุ่นซึ่งทำจากดินเหนียว ขี้ผึ้ง หรือวัสดุใกล้เคียง โดยใส่โครงลวดไว้ข้างในเพื่อให้ดัดท่าทางได้
          ·   คัตเอาต์แอนิเมชัน (Cutout animation) สมัยก่อนแอนิเมชันแบบนี้ทำโดยใช้วัสดุ 2 มิติ (เช่น กระดาษผ้า) ตัดเป็นรูปต่างๆ และนำมาขยับเพื่อถ่ายเก็บไว้ทีละเฟรม แต่ปัจจุบันใช้วิธีวาดหรือสแกนภาพเข้าไปขยับในคอมพิวเตอร์ได้เลย
          ·   กราฟิกแอนิเมชัน (Graphic animation) เป็นอีกเทคนิคที่น่าสนใจไม่เบา เกิดจากการนำกล้องมาถ่ายภาพนิ่งต่าง ๆ ที่เราเลือกไว้ (จะเป็นภาพจากนิตยสาร หนังสือพิมพ์ ฯลฯ ก็ได้) ทีละภาพ ทีละเฟรม แล้วนำมาตัดต่อเข้าด้วยกันเหมือนเทคนิคคอลลาจ (collage – ปะติด) โดยอาจใช้เทคนิคแแอนิเมชันแบบอื่นมาประกอบด้วยก็ได้
          ·   โมเดลแอนิเมชัน (Model animation) คือการทำตัวละครโมเดลขึ้นมาขยับ แล้วซ้อนภาพเข้ากับฉากที่มีคนแสดงจริงและฉากหลังเหมือนจริง
          · แอนิเมชันที่เล่นกับวัตถุอื่นๆ (Object animation) ไม่ว่าจะเป็นของเล่น หุ่น ตุ๊กตา ตัวต่อเลโก้ ฯลฯ อะไรก็ตามที่ไม่ใช่วัสดุซึ่งดัดแปลงรูปร่างหน้าตาได้แบบดินเหนียว
          ·   พิกซิลเลชัน (Pixilation) เป็นสต็อปโมชันที่ใช้คนจริง ๆ มาขยับท่าทางทีละนิดแล้วถ่ายไว้ทีละเฟรม เทคนิคนี้เหมาะมากถ้าเราทำแอนิเมชันที่มีหุ่นแสดงร่วมกับคน และอยากให้ทั้ง หุ่นทั้งคนดูเคลื่อนไหวคล้ายคลึงกัน หรือที่อยากได้อารมณ์กระตุกๆ

ที่มา : http://th.wikipedia.org/wiki/สตอปโมชัน

ขั้นตอน
          1. ถ่ายภาพทีละภาพ ทีละเฟรม โดยการขยับ หรือเคลื่นที่ทีละนิด และภาพเหล่านั้นต้องเรียงเลขและลำดับต่อเนื่องกัน
          2. นำภาพที่ได้ทั้งหมดมาตัดต่อลงในโปรแกรมตัดต่อภาพ และ
VDO

วิธีทำ
          เปิดโปรแกรม Coorel Video Studio Pro X5

1. Open Corel Video Studio Pro X5 Program and push Edit

2. Push the file button from your computer and upload the photos for make stop motion

3. Uploading the photos

4. Uploading to completed

5. Drag the photos this here VDO section

6. Click at the time for set the speed time player (I set speed time player at 0:08 second minute)

 7. Set the few minute time if you want fast speed player

Set the few minute time if you want fast speed player

8. Edit Text at T button and drag to the text section

9. Click on th text and Edit on the display VDO

10. Push on the file button and select the music from your computer supplementary with your stop motion (careful copyright music)

11. Drag the music to the music section (careful copyright music)

12. Drag the music left - right for balance with the photos

13. Click at 00:00 time or other times for play and check the VDO again befor to share VDO on the other web

14. Upload and share your VDO to the web

15. In this I select Youtube - Mpeg-4 HD

16. Put the VDO name for save on your computer (Original VDO)

17. Uploading original VDO for your computer

18. And now! log in Youtube and next

19. Click right at I Agree.... and Next

20. Put the VDO name for Youtube and other...and click Upload

21. Uploading VDO for Youtube

22. Uploading  completed and click Done button

23. Log in Youtube

24. Watch the VDO just upload

25. Click Share (กดที่ แบ่งปัน) and click embed (กดที่ ฝัง) for copy the embed code

26. Copy and paste the embed code above for your blog. The code changes based on your selection


ที่มา http://tidtee1974.blogspot.com/2012/08/how-to-make-stop-motion-stop-motion-vdo.html

วันพุธที่ 17 ธันวาคม พ.ศ. 2557

คำสั่ง SQL
คำสั่ง SQL เบื้องต้น by natsu
          ก่อนอื่นต้องบอกเลยครับว่ามันไม่ได้ดีมากนักสำหรับหน้าเวปนี้เพราะผมอ่านหนังสือและสรุปอย่างคร่าวๆ แล้วรูปแบบมันอาจจะเพี้ยนๆ เพราะผมเขียนใน PAGE แล้วเอา COPY and PASTE ลงเล้ย แบบไม่แก้ไขอันใด tab มั่วไปหมด ถ้าผิดพลาดประการใดต้องขออภัยด้วยครับ
          ภาษา SQL นั้นไม่เป็น case sensitive (ตัวเล็ก ตัวใหญ่มีค่าเท่ากัน) และในแต่ละคำสั่งจะถูกปิดด้วย ; (semi-colon)(วิธีการลง SQL ใน Window7 : http://natsusencho.blogspot.com/2012/07/mysql-window7.html)


มาเริ่มกันเลย
      การเข้าใช้ให้เราเปิด cmd ขึ้นมาและ $ mysql -u root -p จากนั้นใส่ password ลงไป จะเข้าสู่การใช้ mysql > (เราจะพิมพ์คำสั่งต่างๆลงไป)ถ้าต้องการออกใช้ mysql > quitmysql > show databases; แสดง  databases ทั้งหมดที่เราสร้างขึ้น mysql > use <ชื่อ database> เป็นการเข้าใช้ database นั้นๆ mysql > SELECT database(); ดู database ที่เรากำลังใช้อยู่ mysql > show tables; แสดงตารางทั้งหมดที่เราสร้างขึ้นใน database ที่ use


สร้าง DATABASE
           mysql > create database  <ชื่อdatabase>; เช่น create database world;

สร้าง table
           mysql > create table <ชื่อtable> (<ชื่อข้อมูล> <ชนิดข้อมูล>, ... ); เช่น create table human (name VARCHAR(20), birth DATE, sex CHAR(1));
           ชนิดข้อมูล เช่น
           VARCHAR(n) - ข้อมูลชนิด string เก็บแบบ linked list เหมาะสมกับข้อมูลที่มีความยาวที่ไม่แน่นอน
           CHAR(n) - ข้อมูลชนิด string เก็บแบบ array เหมาะสมกับข้อมูลที่มีความยาวที่แน่นอน
           INT - จำนวนเต็ม
           DATE - ข้อมูลชนิดพิเศษของ SQL ใช้เก็บวันที่ มีรูปแบบเป็น YYYY-MM-DD

ดูชื่อและชนิดข้อมูลของแต่ละตาราง
           mysql > describe <ชื่อtable>;

การใส่ข้อมูลลงไปใน table
           1. ใช้คำสั่ง load data จากไฟล์ที่เราเตรียมไว้ โดย default จะแบ่งเนื้อหาโดยใช้ tab แบบนี้จะมีปัญหาเรื่องการใช้ข้อมูลชนิด NULL ซึ่งใช้ \N แทน mysql > load data local infile ‘natsu.txt’ into table pet;
           2.INSERT ใส่ทีละข้อมูล เหมาะกับข้อมูลที่น้อยๆ ที่เราเพิ่มเติมเข้าไป เช่น mysql > INSERT INTO pet VALUES (‘natsusencho’, ‘1992-03-25’, ‘M’);
           3. *ทำ SQL script คือเตรียมไฟล์คำสั่ง sql ไว้แล้วนำมาทำการ source ทีเดียวเช่นส่วนตัวแนะนำวิธีนี้เพราะเราเขียนทั้งหมดทีเดียวไม่ต้องมาใส่ทีละคำสั่ง นึกออกให้เสร็จที่เดียวแล้ว run ทีเดียวทั้งหมด ---- file natsu.sql ----           CREATE TABLE IF NOT EXISTS human (                 name   VARCHAR(20),                  birth DATE,                  sex CHAR(1) );           INSERT INTO human VALUES                  ( 'NatsuSencho',   '1992-03-25', 'M'),                  ( 'Slime',   '1999-03-03', NULL ),                  ( ‘HeyFemale’ , ‘1993-12-25’ , ‘F’);----- file natsu.sql -----


หลังจากสร้างเสร็จแล้วก้ลองใช้คำสั่ง            mysql > source natsu.sql; 
ก็จะได้ตาราง world หน้าที่มีข้อมูล 3 ตัว
            create table IF NOT EXISTS human
           คำว่า IF NOT EXISTS หมายถึงการสร้าง table นี้ถ้ายังไม่มี table นี้ ถ้ามีแล้วก็ไม่ต้องสร้าง


มีสร้างก็ต้องมีลบ การลบ table ใช้คำสั่ง
           mysql > DELETE FROM <ชื่อtable>;

หลังจากที่สร้างเป็นแล้วต้องสามารถแก้ไขข้อมูลได้
           mysql > UPDATE <ชื่อtable>            SET <ชื่อข้อมูล> = <ข้อมูลใหม่>           WHERE <เงื่อนไขอื่นๆ>;เช่น UPDATE human SET name = ‘HeyGirl’ WHERE name = ‘HeyFemale’;


การสืบค้นข้อมูล หรือการดูข้อมูล
          SELECT <สิ่งที่ต้องการ>
          FROM   <ชื่อtable>
           WHERE <เงื่อนไขอื่นๆ>
เช่นต้องการชื่อของข้อมูลในตาราง human ที่มีมีเพศชาย
           SELECT name
          FROM   human
          WHERE sex = ‘M’; 
ต้องการดูข้อมูลทั้งหมดในตาราง human [* คือทั้งหมด]
          SELECT *
          FROM   human;
ซึ่งการกำหนดเงื่อนไขนั้นเราสามารถใช้ตัวแปรทางคณิตศาสตร์ตรรกะ มาช่วยได้เช่น
          AND และ 

           OR หรือ
          < น้อยกว่า 

           > มากกว่า
          <= น้อยกว่าหรือเท่ากับ
           >= มากกว่าหรือเท่ากับ
           <> ไม่เท่ากับ
          UNION การนำ 2 ตารางมาเชื่อมต่อกันตัดตัวซ้ำ
           UNION ALL การนำ 2 ตารางมาเชื่อมกันโดยไม่ตัดตัวซ้ำ
          INTERSECT ข้อมูลที่ซ้ำกัน
           DISTINCT คือการตัดตัวที่ซ้ำกันออก
เช่น SELECT DISTINCT sex
           FROM   human;

ORDER BY เรียงลำดับข้อมูล การจัดกลุ่มข้อมูล
          เรียงลำดับจากมากไปน้อย (descending order)
เช่น SELECT *
         FROM   human
        ORDER BY name;
         เรียงลำดับจากน้อยไปมาก (descending order)
เช่น SELECT *
        FROM   human
        ORDER BY name DESC;
         ถ้าต้องการมากกว่าอันนึงก็ย่อมได้
เช่น SELECT *
        FROM   human
        ORDER BY name , sex DESC ;
แบบนี้จะจัดตามชื่อแบบ ascending ก่อนแล้วจะมาจัดเพศแบบ descending ทีหลัง

การคำนวณเกี่ยวกับวันที่
        ตัวแปร DATE เป็น string ที่มีการเก็บเป็นรูปแบบ YYYY-MM-DD ตัวแปรชนิด DATE สามารถนำมาเทียบค่ากันได้ในระดับ ASCII
        CURDATE() จะเป็น function ที่ส่งค่าออกมาเป็นข้อมูลรูปแบบ DATE (YYYY-MM-DD)
        YEAR(<ข้อมูลชนิดdate>) ส่งค่าออกมาเป็นข้อมูลรูปแบบของปี (YYYY)
        MONTH(<ข้อมูลชนิดdate>) ส่งค่าออกมาเป็นข้อมูลรูปแบบของเดือน (MM)
        DAY(<ข้อมูลชนิดdate>)  ส่งค่าออกมาเป็นข้อมูลรูปแบบของวัน (DD)
        RIGHT(<ข้อมูลชนิดstring>, <จำนวนตัวเลข>) ส่งค่าออกมาจำนวนเท่ากับที่เราต้องการตัดออกมาจาก string นั้นๆ โดยเริ่มนับจากทางขวา
        LEFT(<ข้อมูลชนิดstring>, <จำนวนตัวเลข>) ส่งค่าออกมาจำนวนเท่ากับที่เราต้องการตัดออกมาจาก string นั้นๆ โดยเริ่มนับจากทางซ้าย
        ตัวอย่าง
ex1. ต้องการปีของวันปัจจุบัน YEAR( CURDATE() )
ex2. ต้องการเดือนและวันของปัจจุบัน RIGHT( CURDATE(),5 )
        [5 ในที่นี้คือนับจากทางขวามือมา YYYY-MM-DD ก็จะได้ ​MM-DD มา]
การใช้ตัวแปร NULL ในเงื่อนไข
       ใช้คำสั่ง xxx IS NOT NULL เช่นต้องการดูสิ่งมีชีิวิตที่ไม่มีเพศ
       SELECT *
       FROM   human
      WHERE sex IS NOT NULL;
การตั้งชื่อเป็นชื่อที่เราต้องการ
       หมายถึงเวลา select บางทีคนทั่วไปอาจจะไม่เข้าใจว่าคืออะไร เราจึงมีคำสั่ง AS ช่วย เช่น
       SELECT name AS ‘NAME-SURNAME’
       FROM   human;
COUNT การนับจำนวน + GROUP BY การจัดกลุ่ม
       COUNT ใช้ในการนับจำนวนของตารางต่างๆ จะใช้คู่กับ GROUP BY ได้ดีเพราะจะช่วยในการจัดกลุ่มชุดข้อมูลได้ดีขึ้น
       SELECT <อื่นๆ> COUNT(*)
       FROM <ชื่อtable>
       WHERE <เงื่อนไข>
        GROUP BY <จัดกลุ่มโดยใช้อะไร>
เช่นต้องการนับจำนวนคนในแต่ละเพศ
       SELECT sex , COUNT(*)
       FROM   human
        GROUP BY sex;
        SET การกำหนดตัวแปร
       SET @<ชื่อตัวแปร> = <ค่า>
เช่น  SET @A1 = ‘Natsu Sencho’;
      SET @A2 = ‘1999-09-09’;
การใช้คำสั่ง JOIN
       การ JOIN คือการนำตารางที่มีความสัมพันธ์ของข้อมูลในแต่ละฟิลมาเชื่อมโยงกัน
       การ JOIN มี 2 แบบคือ
1. INNER JOIN
2. OUTER JOIN  |--- LEFT JOIN  |--- RIGHT JOIN
INNER JOIN
        คือการ JOIN โดยไม่สนใจค่า NULL จะดูเพียงตัวที่เหมือนกันเท่านั้น
สมมติมีตาราง 2 อันชื่อ Ltable และ ​Rtable นำมา JOIN กันโดยมีข้อมูลที่ซ้ำกันคือ id

-- JOIN โดยใช้ ON
        SELECT *
         FROM Ltable INNER JOIN Rtable ON Ltable.id = Rtable.id;
-- หรือ JOIN โดยใช้ USING
         SELECT *
        FROM Ltable INNER JOIN Rtable USING (id);
         กรณีพิเศษที่ตัวแปรหรือชื่อ Column ซ้ำกันก็สามาใช้ NATURAL JOIN ได้ อย่างในที่นี้เรารุ้ว่า id นั้นซ้ำกันเราก็ไม่ต้องใส่เงื่อนไขใดๆ แต่ใช้ Natural Join เข้ามาช่วยโดย
        SELECT *
         FROM Ltable NATURAL JOIN Rtable;
OUTER JOIN
  • LEFT JOIN
       คือการ JOIN โดยใช้ตัวทางซ้ายเป็นหลักคือ จะแสดงตัวทางซ้ายทุกตัวและนำข้อมูลขวามาเชื่อม
SELECT *
FROM Ltable LEFT JOIN Rtable ON Ltable.id = Rtable.id;
  • RIGHT JOIN
       คือการ JOIN โดยใช้ตัวทางขวาเป็นหลักคือ จะแสดงตัวทางขวาทุกตัวและนำข้อมูลขวามาเชื่อม
SELECT *
FROM Ltable RIGHT JOIN Rtable ON Ltable.id = Rtable.id;
         นอกจากวิธีการ JOIN ยังมีวิธีที่เรียกว่า Cartesian Product ซึ่งไม่ได้อทิบายไว้ในทีนี้
         ถ้ามีโอกาศจะนั่งทำตัวอย่างให้ดูให้เห็นได้ชัดกว่านี้นะครับ แต่ผมสรุปแบบคร่าวๆ ให้พอดู
รวมคำศัพท์คำสั่งที่เจอเพจนี้
CREATE สร้างdatabase, table
INSERT ใส่ข้อมูล
UPDATE อัพเดตข้อมูล
SELECT ต้องการจะดูอะไรบ้าง
FROM จากที่ไหน
WHERE เงื่อนไขอย่างไร
COUNT(*) นับจำนวนของฟิลข้อมูล
GROUP BY จัดกลุ่มข้อมูล
ORDER BY เรียงลำดับข้อมูลโดย
JOIN เชื่อมตาราง
DISTINCT ตัดตัวซ้ำ
AS ใช้คำใหม่ให้กระทัดรัดขึ้น
SET กำหนดตัวแปร
CURDATE() วันที่ปัจจุบัน
YEAR() ปี
MONTH() เดือน
DAY() วัน
RIGHT() ตัดคำจากทางขวา
LEFT() ตัดคำจากทางซ้าย
* ทั้งหมด

ที่มา : http://natsusencho.blogspot.com/2012/08/sql-language.html