Collaboration Tools by

30
Jun
0

เมื่อวันที่ 3 มิถุนาผมได้ไปงาน Collaboration Tools ที่ NE8T มาครับ (ดอง blog มานานมาก ฮ่าๆ) ซึ่งมีการพูดคุยกันว่าในบริษัทๆ หนึ่งมักจะมีปัญหามากมายเช่น

  • มีช่องทางติดต่อพูดคุยระหว่างฝ่ายที่สะเปะสะปะ
  • programmer คุยกับ designer ไม่รู้เรื่อง
  • อีเมล์แจ้งงานคุยกัน สุดท้ายก็ตกหล่น
  • อยากได้ Solution Project Management ในรูปแบบต่างๆ

ก่อนจะเข้าเรื่อง Tools ทุกตัวไม่ได้เหมาะกับคนทุกคน เราต้องระบุปัญหาให้ได้ว่าทีมของเรามีปัญหาอะไร (ไม่ใช่เรามีปัญหาอะไร หรือคิดว่าทีมมีปัญหาอะไรนะ แต่ต้องเป็นเราถามทีมมาแล้วว่ามีปัญหานี้เกิดขึ้นจริง คือเราไม่ได้คิดแทนทีมนั่นเอง)

ภายในงานระบุชื่อ Tools ที่แนะนำอยู่หลักๆ ดังนี้ เนื่องจากผมสนใจพวก Project Management Tools เป็นพิเศษ เลยมานั่งฟังพี่ใหม่พูดต่อหลังเวทีใหญ่พูดจบ เลยได้รายละเอียดส่วนนี้ค่อนข้างมาก ดังนี้

Trello

ข้อดี: เป็น Tools สำหรับกำหนด Task งานต่างๆ สามารถใช้แทนกระดาน Post-it ที่แปะๆ กันได้อย่างดีเยี่ยม คุณสมบัติเด่นคือ Visualize หรือสามารถเห็นทุกอย่างได้พร้อมกันหมด เห็น Process การทำงานว่าอยู่ที่ Step ไหนอยู่ คอขวดอยู่ที่ไหน กำหนดงานที่ต้องส่งต่อๆ กัน เป็น Dependency ได้อย่างดีเยี่ยม เหมาะอย่างยิ่งกับทีมขนาดเล็ก และข้อดีที่สำคัญที่สุดคือใช้งานง่ายมากกกก ไม่ถึงชม.ก็สามารถใช้งานระดับทั่วๆ ไปได้แล้ว Learning Curve ต่ำ การบังคับให้คนมาใช้จึงเป็นเรื่องง่ายตามมา

ข้อเสีย: คือเป็นระบบเปิด ใครก็ทำอะไรนั่นนี่ได้ตามใจชอบ ไม่มี Permission ที่ชัดเจน และสร้าง subtask หรือดู overall งานหลายๆ โปรเจคได้ไม่สะดวกนัก

Asana

ข้อดี: เป็น Tools ที่เหมาะสำหรับงานที่ใหญ่จาก Trello ขึ้นมา มีระบบ Permission เป็นตัวเป็นตนมากขึ้น Assign งานให้คนอื่นได้อย่างชัดเจน (เหมาะกับคนที่ชอบสั่งงานให้คนอื่นว่างั้นเถอะ) ดูหลายๆ โปรเจคพร้อมกันได้ สร้าง subtask ได้ และเหมาะที่สุดคือใช้ระหว่างเจ้านายกับเลขา เพราะเลขาจะ assign สิ่งที่เจ้านายต้องทำในวันถัดไปมา และเจ้านายทำอะไรไปแล้วบ้างก็ต้องมากด Done เพื่อ track ว่าเหลืองานอะไรอีกบ้างได้สะดวก ตอนเริ่มใช้ครั้งแรกจะมีให้เลือกว่าเราจะเอาไปทำงานประเภทไหน เหมือนมี Template ตั้งต้นมาให้ เช่นเอาไปบริหาร CRM ก็ได้ ซึ่งจะมี Timeline เอาไว้ให้ทีมงานคุยกันโดยเฉพาะ แบ่งทีม Sale กับทีม Dev ได้สะดวก

ข้อเสีย: ยังไม่สามารถทำ Project Management ระดับใหญ่ๆ เช่นตั้ง MileStone ของบริษัท การใช้งานค่อนข้างยุ่งยากกว่า Trello มาอีกขั้น ต้องใช้เวลาศึกษาระดับหนึ่งจึงเริ่มใช้งานได้คล่อง

ต่อไปด้านล่างจะเป็น Tools อื่นๆ ที่ไม่ใช่ Project Management นะครับ

Podio

ข้อดี: เป็น Tools ที่ทำได้ทุกอย่างบนโลก (เค้าว่างั้น) โดยจะมีคล้ายๆ App Store ของตัวเอง ซึ่งมีคนทำ Plugin ทั้งฟรีและขายมาให้ในทุกๆ ระบบ สามารถนำระบบโน้นมาผสมกับระบบนี้ได้อย่างอิสระ Custom ได้ทุกรายละเอียด และสามารถทำ Projection ระดับ Milestone ของบริษัท, ตั้งงบประมาณของ Project และแจ้งว่าใช้ไปเท่าไหร่แล้วได้ ใช้ได้ทุกทีมทุกสาขาตั้งแต่ Dev, Sale, Marketing สามารถออกแบบได้ตามใจหมด

ข้อเสีย: Learning Curve สูงที่สุดจากทั้ง 3 ตัวคือ Trello, Asana,Podio ใช้เวลาศึกษานานอาจหลายสัปดาห์หรือเป็นเดือน กว่าจะได้ออกมาเป็นสิ่งที่ต้องการ เนื่องจาก Custom ได้ทุกอย่าง ดังนั้นเราจะต้องจัดวาง ตั้งค่าเองทุกอย่าง ซึ่งกินเวลามากกว่าจะได้ใช้งานตามวัตถุประสงค์

Tools สามตัวบนนี้สามารถ integrate กับ Dropbox, Google Drive, One Drive ได้ทั้งหมด ดังนั้นไม่ต้องกังวลเรื่องการเชื่อมต่อกับไฟล์ที่มีอยู่แล้วในองค์กร ซึ่งสุดท้ายแล้วไม่จำเป็นต้องเลือกแค่ตัวใดตัวหนึ่ง อาจใช้ผสมกันก็ได้ตามความเหมาะสมของงาน จบส่วนของ Project Management Tools มาต่อกับ Tools อื่นๆ บ้าง

Slack

ตัวนี้เป็น Tools สำหรับใชัแทน Facebook Group, Email, Chat ต่างๆ สามารถพิมพ์ # เพื่อสร้าง tag ไว้แบ่งห้องสนทนาได้ โดยสมาชิกแต่ละคนจะสามารถเลือก follow tag ที่เกี่ยวข้องกับตนเองได้ เวลามีคนพิมพ์มาแล้วใส่ tag เช่น “#programmer #sale” คนสองกลุ่มนี้ก็จะเห็นทั้งคู่ ส่งเสริมประสิทธิภาพการทำงานได้อย่างดีเยี่ยม และมี API ให้เราเขียน bot ประจำออฟฟิศเวลาเกิด event ต่างๆ เพื่อแจ้งสมาชิกได้ทีมได้อีกด้วย เค้าว่า Slack มาช่วยดึงคนออกจาก Facebook Group ซึ่งหากบริษัทไหนใช้ Facebook Group อยู่ก็อาจโดน interrupt จากสิ่งต่างๆ ภายใน Facebook ได้ง่าย จึงแยก tools ตัวนี้ออกมาสำหรับด้านทำงานโดยเฉพาะ ส่วน Facebook เค้าอยากให้เอาไว้สำหรับเป็นพื้นที่ส่วนตัวอย่างเดียว ไม่มีเรื่องงานมาเกี่ยวข้อง

Sketch

เป็น Tools สำหรับช่วยออกแบบ UI ที่ดีเยี่ยม ใช้ง่ายมาก พี่ที่ทำ StockRadar บอกว่าขนาดตัวเองเป็นโปรแกรมเมอร์ยังใช้ Sketch ทำ UI ออกมาได้เร็วกว่า Designer ที่ใช้ Photoshop หรือโปรแกรมอื่นๆ ข้อเสียคือมันมีแต่บน Mac เท่านั้นจ้าาา

ทริคเล็กน้อยอื่นๆ

  • harvest ใช้ track เวลาที่ทำแต่ละ taskᅠ
  • quib สำหรับทำ story board
  • เค้าแนะนำให้ดู ted talk เรื่อง post it (ผมยังหา link ไม่เจอ)
  • line เหมาะกับคุย investor เพราะแสดงอารมณ์ได้ชัด ทำให้สนิทกันได้เร็วขึ้นᅠ
  • วิธีทำให้คนใช้ tools คือควรใช้ tools ที่เค้าคุ้นเคยก่อน แล้วค่อยๆ ปรับเปลี่ยนไปใช้ tools ที่ advance มากขึ้นเรื่อยๆ คนจะยอมรับง่ายขึ้นᅠและบอก impact ให้เห็นให้ชัด เพื่อสร้างเสริมความเข้าใจ
  • วิธีทำให้คนใช้ tools อีกวิธีคือให้คนที่มีอำนาจสูงสุดมาใช้ก่อนแล้วจะเกิดการโอนถ่ายข้อมูลจากระบบเก่ามาใช้ในระบบใหม่แล้วพอใช้ๆ ไปสักพัก บอกให้คนข้างล่างรายงานผ่านระบบ โดยที่หัวหน้าก็ monitor อยู่เรื่อยๆสักพักถึงจะมีคนใช้ตามครบ แล้วเกิดประโยชน์สูงสุด หลังจากนั้นหัวหน้าจะหายตัวไปก็ได้ ระบบก็จะรันของมันไปเองแล้ว
  • culture ถ้าเราไม่ manage มัน มันจะ manage เราᅠ
  • No blame culture เป็นสิ่งที่ควรทำ

[Unity] วิธีการแก้ไขเมื่อนำ 3D Particle มาใช้ในโหมด 2D แล้วแสดงผลไม่ตรง by

30
Jun
0

หน้าตา Particle ต้นทางที่นำมาใช้

หลังจากที่ได้แอบคลุกคลีกับ Particle System ใน Unity ปัญหาหลักที่เกิดจาก Particle บางเจ้าคือ พอนำมาใช้ในเกม 2D ของเราแล้วการแสดงผลดูไม่เหมือนกับที่รันในโปรเจ็คตัวอย่าง อะไรๆมันดูขาดๆไป ทำให้ได้ข้อแนะนำแรกเลยคือ ตอนนำมาใช้ในโปรเจ็คเรา ให้เปิดโหมด 3D ดูก่อน โดยส่วนตัวแนะนำให้ดูแบบ isometric จะทำให้เห็นภาพที่จะใช้กับแบบ 2D ได้ชัดเจนขึ้น พอเปิด 3D ขึ้นมาเราก็จะอ๋อเองแหละครับ หลายๆอย่างที่มันหายไปเพราะมันขนาบกับแกน X ใน 2D ของเรายังไงล่ะ!! เพราะเรามองได้มุมเดียวตลอด วัตถุบางอย่างที่มา Billboard ขนาบไปกับแกน X เราก็จะมองไม่เห็นเลยเพราะมันคือแผ่นบางๆที่ไร้ความหนา หมุนแกนอะไรก็หมุนไม่ได้ ทีนี้จะแก้อย่างไร ทำตามนี้เลยครับผม

สิ่งที่เห็นเมื่อรันในโหมด 2D ดูจืดจางไปเลยว่าไม๊

ขั้นแรกไปที่ GameObject ด้านใน ให้แก้เฉพาะตัวที่เราจะต้องแก้ ซึ่งก็คือตัวที่ไม่เห็นในจอตอนโหมด 2D นั่นเอง ทีนี้ค่าที่เราต้องแก้ก็คือเจ้า Renderer นี่เอง ปกติไม่ว่าจะใช้ Render Mode เป็น Billboard แบบไหนก็ตาม มันจะเป็นแผ่นขนาบไปกับแกน ซึ่งหมุนอะไรมันไม่ได้เลย ดังนั้นเราเลยต้องเปลี่ยนตัว Render Mode นี่แหละครับ โดยพื้นฐานให้เปลี่ยนเป็น Mesh แล้วเลือกรูปแบบ Plane ซึ่งหลังจากปรับเสร็จเราต้องซูมออกมาจัดขนาดเสียก่อนเล็กน้อย แต่ว่ามันก็ยังมองไม่เห็นใน 2D อยู่ดีนี่นา 

ตัวอย่างค่าใน Inspector ก่อนการปรับแก้ Renderer

เลือก Render Mode เป็น Mesh และเลือกเจ้าตัว Mesh เป็นแบบ Plane

ที่ยังมองไม่เห็นเพราะมันยังขนาบแกน X เหมือนเดิมยังไงล่ะ เราก็จับหมุนแกน X ซะ จากตอนแรกที่หมุนไม่ได้ พอเปลี่ยนมาเป็น Render Mode แบบนี้ก็จะหมุนได้ตามใจเลยล่ะครับ แนะนำให้ไปรันกับตัวเกมจริงแล้วดูองศาเกม แล้วปรับองศาของ Particle ให้ตรงกับ Perspective ในเกมของเรานะครับ

ปรับขนาด หมุน Rotate แกน X เท่านี้ จบ!

เสร็จ!! พร้อมใช้งาน!!

ผลลัพธ์หลังจากแก้ไขแล้วในโหมด 2D

วิธีสร้าง texture เกล็ดมังกรใน Photoshop by

30
Jun
0

เพ้นเกล็ดแบบที่ต้องการ (ภาพซ้าย) >  invert (Ctrl+I) > ได้เกล็ดแบบภาพด้านขวา
01
เลือก Edit > Define Brush Preset > ตั้งค่าบรัชตามนี้

08
วาดมังกร

02

ลงสีแบบเรียบๆ

03

เพิ่มเงาให้ภาพมีมิติ ออกมาเป็นสไตล์โปเกม่อน

04

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

05

เพิ่มแสงสะท้อน

06

เลือกสีที่เป็น highlight และ reflex แล้วแต่งเติมอีกเล็กน้อย
แค่นี้ก็ได้มังกรที่มี Texure ดูสมจริงขึ้นอีกระดับแล้ว!

07

[UNITY][Particle] Particle ที่เล่น Particle เดิมซ้ำๆ แต่ Random จุดเกิด by

30
Jun
0

เคยไหม ที่อยากให้ Particle เกิดแบบ Random จุดเกิด แต่มีปริมาณตามที่เรากำหนดไว้ตลอด ยกตัวอย่างเช่น ทำ Particle สำหรับ ท่าโจมตีของ Unit ตัวหนึ่งซึ่งเป็นมือปืน เวลาใช้ท่าไม้ตาย Unit ตัวนี้จะโจมตี 6 ครั้งแบบยิงกราด อะไรประมาณนั้น วันนี้จะมานำเสนอ Code ที่จะทำให้ชีวิตง่ายขึ้นครับ

ขั้นแรก เอา Code ไปก่อนเลยครับ

using UnityEngine;
using System;
using System.Collections;
public class ParticleRandomize : MonoBehaviour
{
[Serializable]
public class Range
{
public float Min;
public float Max;
}
public GameObject Particle;
public int Count;
public float Time;
public Range X;
public Range Y;
public float RandomDistancePercent = 100f;
void Start()
{
float TimePerOnce = Time / Count;
Vector2 Distance = new Vector2(Mathf.Abs(X.Min - X.Max) * RandomDistancePercent / 100 / 2, Mathf.Abs(Y.Min - Y.Max) * RandomDistancePercent / 100 / 2);
Vector2 lastPosition = Vector3.zero;
for (int i = 0; i 100)
{
break;
}
} while ((lastPosition.x + Distance.x > x && x > lastPosition.x - Distance.x) && (lastPosition.y + Distance.y > y && y > lastPosition.y - Distance.y));
lastPosition = new Vector2(x, y);
_particle.transform.parent = transform;
_particle.transform.localPosition = new Vector2(x, y);
});
}
}
}

ต่อมาเราก็ AddComponent ให้ Particle ที่เราอยากให้มันเล่นซ้ำๆนะครับ ตัวอย่าง
Untitled

จะอธิบาย Config ใน Inspector ทีละตัวนะครับ
Particle: คือ Particle ที่เราอยากให้เล่นซ้ำๆ ครับ ให้ลาก prefab particle มาใส่ในช่องนี้นะครับ
Count: คือจำนวนครั้งที่อยากให้ Particle เล่นครับ
Time: คือระยะเวลาหน่วงระหว่าง Particle ครับ
X.min: คือระยะน้อยที่สุดในแกน x ที่จะ Random จุดเกิด
X.max: คือระยะมากที่สุดในแกน x ที่จะ Random จุดเกิด
Y.min: คือระยะน้อยที่สุดในแกน y ที่จะ Random จุดเกิด
Y.max: คือระยะมากที่สุดในแกน y ที่จะ Random จุดเกิด
Random Distance Percent: คือ ระยะ(เป็นเปอร์เซนของระยะ min, max ที่ตั้งไว้) ที่จะไม่ให้ Particle เกิดใกล้กันครับ

จริงๆแล้ว Script random จุดเกิดของ GameObject ต่างๆนั้นมันไม่ได้ยากอะไรหรอกครับ แต่ข้อดีของ Script นี้ก็คือ สามารถกำหนดได้ว่า ไม่ให้ GameObject ที่ เกิดติดๆกัน อยู่ใกล้กันมากกว่ากี่เปอร์เซนของพื้นที่ ที่เรากำหนดไว้ข้างต้นครับ

ตัด BG ออกด้วย Quick Mask by

29
Jun
0

1.ก่อนอื่นเปิดรูปที่ต้องการจะตัดสิ่งของออกจาก BG ก่อน
01

2.เลือกเครืองมือ Magic Wand (W) แล้วจิ้มลงไปบริเวณพื่นหลังที่จะตัดออกมา (*หากภาพที่จะตัดไม่ได้สีเดียวกันทั้งหมด อาจคลิกหลายครั้งหน่อย จะมีรอยปะตามรูป)
02

3.หลังจากนั้นกด (Q) เพื่อเริ่มโหมด Quick Mask ส่วนที่เราเลือกจะเป็นสีแดงตามรูป
03

4.จากรูปที่เห็นมีส่วนเกินหรืออยุ่ ให้ทำการเลือกขนาดบรัช (B) เพื่อทารูปที่จะตัดให้เต็ม โดยสีดำใช้ทาทับจุดที่ขาดและสีขาวเพื่อลบส่วนที่เกินออกมา
5.เมื่อเสร็จจะได้สีแดงทั้งตัวแบบนี้
05

6.จากนั้นให้กด (Q) เพื่อออกโหมด Quick Mask แล้วกดปุ่ม Delete ก็จะได้รูปที่ไม่มี BG แล้ว
06

*หากต้องการให้รุปที่ตัดไม่มี BG สีขาวติด เวลาเซฟให้เลือกสกุลไฟล์เป็น .png แทน .jpg เพื่อให้เลิอกรูปที่ตัดออกมาเท่านั้น หวังว่าจะมีเป็นประโยชน์ครับ

กู้เงิน | เศรษฐกิจพอเพียง | สินเชื่อบุคคล | สมัครบัตรกดเงินสด | สินเชื่อ | เงินกู้ด่วน | ยืมเงินทรูมูฟ | เงินด่วนนอกระบบ