ข้ามไปยังเนื้อหา

ฟีเจอร์ที่รองรับ

เลย์เอาต์

ฟีเจอร์ใน Figmaผลลัพธ์ใน Roblox
Absolute positionUDim2 (ใช้ค่าออฟเซ็ตเป็นพิกเซลตาม Figma และแปลงเป็น Scale เมื่อใช้โหมด Scaled)
Auto Layout (Vertical)UIListLayout (Vertical)
Auto Layout (Horizontal)UIListLayout (Horizontal)
Auto Layout ที่มี child โดยตรงซึ่งวางแบบ Absolute หรือมีเส้นขอบ INSIDE ที่รองรับและมี child ที่มีสีพื้นแตะถึงเส้นขอบใช้ตำแหน่ง UDim2 ตามค่าที่วัดจาก Figma รักษาลำดับเลเยอร์เดิม และไม่เพิ่ม layout หรือ padding แบบ native ให้ parent
PaddingUIPadding
Gap (ระยะห่างระหว่างไอเท็ม)UIListLayout.Padding
Hug contentsAutomaticSize
Clip contentClipsDescendants ปิดให้เมื่อไม่มีอะไรถูกตัดอยู่ และมีเนื้อหาชิดขอบขวาหรือขอบล่างของเฟรม หรือเมื่อตัดอยู่แค่แสงเรืองรอง (เงาหรือเบลอที่ล้นออกนอกเฟรม) และมีเส้นขอบชิดขอบนั้น เพราะบนจอที่ปรับขนาด 125% หรือ 150% Roblox อาจตัดเส้นขอบตรงนั้นทิ้ง แสงเรืองรองจึงโผล่ออกมาไกลกว่าใน Figma เล็กน้อย ส่วน clip ที่ตัดเนื้อหาจริงที่ล้นขอบจะยังเปิดไว้
การเลื่อนแบบ Overflow ใน PrototypeScrollingFrame ที่เลื่อนตามแกนที่เลือกไว้
เลย์เอาต์ Grid / Wrap ของ FigmaUIGridLayout
การ์ดที่วางห่างเท่า ๆ กันใน scrolling frame (ไม่ได้ใช้เลย์เอาต์ของ Figma)UIGridLayout ที่เพิ่มให้อัตโนมัติ เพื่อให้ canvas ขยายตามเวลาเพิ่มการ์ด การ์ดแต่ละใบจะอยู่ใน Frame ช่องที่มีชื่อเดียวกับการ์ด
Repeat group แบบ Linearขยายออกเป็นอินสแตนซ์ Roblox ที่ซ้ำกันหลายชิ้น

ถ้าเฟรม Auto Layout มี child ที่มองเห็นได้และวางแบบ Absolute ปะปนกับ child ปกติ FigBloxUI จะรักษาตำแหน่งที่วัดได้จาก Figma ให้กับ child โดยตรงทุกตัว ส่วน layout ที่ซ้อนอยู่ด้านในยังคงเป็น native ถ้าเป็น ScrollingFrame จะรักษา canvas และแกนการเลื่อนตามค่าที่วัดไว้ แต่ child ที่เพิ่มใหม่ใน Studio จะไม่ขยายตามอัตโนมัติจากการจัดวางแบบคงที่นี้

เป็นแบบเดียวกันเมื่อเฟรม Auto Layout มีเส้นขอบ INSIDE ที่รองรับ และมี child ที่มีสีพื้น (ไม่ใช่ข้อความ) แตะถึงเส้นขอบนั้น เพราะ Roblox วาด UIStroke ไว้ใต้ child FigBloxUI จึงรักษาตำแหน่งที่วัดได้และวาง Border Overlay ไว้ด้านบน child โดยตรงของเฟรมนั้นจะไม่จัดเรียงใหม่อัตโนมัติเมื่อคุณแก้ใน Studio

รูปลักษณ์

ฟีเจอร์ใน Figmaผลลัพธ์ใน Roblox
Fill สีทึบ (Solid)BackgroundColor3 + BackgroundTransparency
Linear gradientUIGradient
OpacityBackgroundTransparency / ImageTransparency / TextTransparency
Corner radiusUICorner (ใช้ค่า radius เป็นพิกเซลตาม Figma และแปลงเป็น Scale ในโหมด Scaled ส่วนวงกลมเต็มวงจะยังกลมเป๊ะ)
Corner radius แยกแต่ละมุมproperty ของ UICorner แยกแต่ละมุม
StrokeUIStroke
Stroke แบบ gradientUIStroke + UIGradient
การจัดตำแหน่ง StrokeUIStroke BorderStrokePosition
รอยต่อมุมของ StrokeUIStroke LineJoinMode (ใช้ Round กับวงกลมและมุมโค้ง เส้นขอบจึงยังโค้งมนอยู่)
Stroke หลายเส้นUIStroke หนึ่งตัวต่อ stroke สีทึบหรือ linear gradient หนึ่งเส้น เรียงตามลำดับใน Figma (ข้อความเก็บ stroke ได้เส้นเดียว) ในโหมด Automatic และ Separate เลเยอร์ _stroke ก็เพิ่ม UIStroke ให้ด้วย
การหมุน (Rotation)Rotation (จัดจุดกึ่งกลางใหม่ให้)
Skew (เลเยอร์ที่เอียง)ImageLabel ที่ยังคงความเอียงไว้ ส่วนข้อความที่เอียงจะยังเป็น TextLabel ที่แก้ไขได้ เป็นตัวเอียง (italic) เมื่อเอียงไปทางขวาเล็กน้อยและ Roblox มีตัวเอียงของฟอนต์นั้น ไม่อย่างนั้นจะเป็นตัวตรง
Boolean shape (Union, Subtract, Intersect, Exclude)ImageLabel ที่เก็บรูปทรงที่รวมกันแล้วไว้ รวมถึงข้อความที่เจาะออกจากรูปทรงด้วย
Blend mode (Overlay, Multiply และอื่น ๆ)อาร์ตเวิร์กและกลุ่มที่ใช้ blend จะมาเป็น ImageLabel ที่เรนเดอร์ทับพื้นหลังใน Figma ที่อยู่ด้านหลัง สีจึงตรงกับ Figma ในทุกโหมดของ Artwork layers ยกเว้นบางกรณี รูปทรง เฟรมเปล่า และเส้นคั่นบางๆ ที่ใช้ blend ก็มาแบบนี้เช่นกัน ส่วนข้อความที่ใช้ blend จะยังเป็น TextLabel ที่แก้ไขได้ สีที่รองรับจะตรงเมื่ออยู่บนพื้นสีทึบสีเดียว แต่ gradient กับ blend ที่ใช้ร่วมกันแล้วไม่รองรับจะคงสีเดิมและมีคำเตือนใน Structure
Drop shadow ที่ทอดจากกล่องของเลเยอร์เองที่มี fillUIShadow
Drop shadow ที่ทอดจากเนื้อหาข้างในเลเยอร์ (แสงเรืองรอบไอคอน วงแหวน หรือข้อความ หรือเฟรมที่ไม่มี fill)ImageLabel ชื่อ Drop Shadow วางไว้หลังเลเยอร์ที่แก้ไขได้ ตรงกับ Figma ถ้าเป็นเฟรมที่ clip, เลื่อนได้ หรือมีเลย์เอาต์ เงาจะอยู่ในเฟรม <name> Holder จึงไม่ถูกตัดและไม่ถูกจัดเรียงในเลย์เอาต์ รูปเงาจะไม่เปลี่ยนตามเมื่อแก้เลเยอร์ทีหลัง ให้ส่งจาก Figma ใหม่เพื่ออัปเดต ส่วนเฟรมที่คุณส่งจะใช้ UIShadow

ข้อความ

ฟีเจอร์ใน Figmaผลลัพธ์ใน Roblox
Font familyFontFace (แมปฟอนต์ไว้มากกว่า 50 แบบ)
Font weightFontFace.Weight
ตัวเอียง (Italic)FontFace.Style
ขนาดฟอนต์TextSize
การจัดวางข้อความ (alignment)TextXAlignment + TextYAlignment
ข้อความปรับขนาดอัตโนมัติ (auto-resize)AutomaticSize
การตัดขึ้นบรรทัดใหม่TextWrapped โดยในโหมด Offset และ SurfaceGui ข้อความบรรทัดเดียวจะอยู่บรรทัดเดียวเสมอ ตัวอักษรทุกตัวจึงแสดงครบ
การสเกลข้อความใช้ TextSize คงที่ใน Offset/SurfaceGui ใช้ TextScaled แบบไม่จำกัดขนาดใน ScreenGui ที่เป็น Scaled และไม่สร้าง UITextSizeConstraint ให้
Line heightLineHeight
ข้อความหลายสไตล์ในตัวเดียวRichText ที่ใช้แท็ก <font> หนึ่งแท็กต่อหนึ่งช่วงข้อความ ป้ายที่ผสมหลายฟอนต์จึงเก็บฟอนต์ ขนาดตัวอักษร และตัวพิมพ์เล็กใหญ่ของแต่ละช่วงไว้ในตำแหน่งเดิม
UPPERCASE/lowercaseแปลงตัวพิมพ์ด้วย TextCase
Underline/Strikethroughแท็ก RichText <u> / <s>
การตัดข้อความที่ล้น (truncation)TextTruncate
Drop shadow ของข้อความที่ไม่มี blurTextLabel ตัวสำเนาวางไว้หลังข้อความ ชื่อ <name>_Shadow (ไม่ใช้กับ TextBox ข้อความที่หมุน หรือข้อความใน Auto Layout) เวลาข้อความเปลี่ยนต้องอัปเดตทั้งสองป้าย
เงาข้อความที่มี blur, spread หรือเป็น inner shadowไม่นำเข้า และจะมีแจ้งเตือนในแท็บ Structure (เติม _ImageLabel ถ้าอยากเก็บหน้าตาไว้เป็นรูป)
แสง glow รอบข้อความ (เงาบนกลุ่มหรือเฟรมที่มีข้อความอยู่)รูปเงารูปเดียววางไว้หลังข้อความ และข้อความยังแก้ไขได้
หน้าตาข้อความแบบอื่นที่ Roblox วาดไม่ได้ (blur, noise, เส้นขอบแบบแปรง, image fill, radial gradient, mask ที่ Roblox ทำตามไม่ได้)ข้อความจะยังเป็น TextLabel ที่แก้ไขได้ โดยใช้หน้าตาที่ใกล้ที่สุดที่ Roblox มี และแท็บ Structure จะบอกว่าอะไรถูกตัดทิ้งหรือถูกวาดต่างไป เติม _ImageLabel ท้ายชื่อเลเยอร์ข้อความถ้าอยากเก็บหน้าตาเป๊ะๆ ไว้เป็นรูป

รูปภาพ

ฟีเจอร์ใน Figmaผลลัพธ์ใน Roblox
Image fillImageLabel (ในโหมด Code และ Live จะอัปโหลดให้อัตโนมัติไปที่ Image owner แบบ Personal หรือ Group ที่เลือกไว้)
Vector shapeImageLabel (export เป็น PNG) ส่วนวงกลมธรรมดาจะกลายเป็น Frame ที่มี UICorner แบบกลมแทน
เอฟเฟกต์ซับซ้อน (เงาแบบที่ไม่รองรับ, blur)ImageLabel (แปลงเป็น PNG)
รูปทรง ดาว และ polygon ที่ใช้ maskImageLabel ที่เต็มกรอบของเลเยอร์ ในตำแหน่งเดียวกับใน Figma
Corner radius ที่ไม่เท่ากันในแต่ละมุมUICorner แยกแต่ละมุม (จะแปลงเป็นรูปถ้าปิด Native shadows and corners)
Fill หลายชั้นใช้เลเยอร์ native เท่าที่ทำได้: fill สีทึบและ linear gradient จะซ้อนกันเป็น Frame ลูกชื่อ Fill 2, Fill 3 ไปเรื่อย ๆ และ fill ที่เป็นรูปหนึ่งชั้นจะกลายเป็น ImageLabel ของตัวเอง (ต้องเปิด Native shadows and corners) ส่วน fill ที่ใช้ blend, radial gradient และ fill ที่เกิน 4 ชั้นจะถูกรวมเป็น ImageLabel เดียว
ไอคอนที่เปลี่ยนสีได้mask รูป _gray + ImageColor3 (เลเยอร์ข้อความที่มี _gray จะยังเป็นข้อความที่แก้ไขได้ในสีของตัวเอง)
ล้างขอบโปร่งใสโหมด PixFix ลบขอบดำ (halo) รอบขอบ PNG

การตรวจจับอัตโนมัติ

  • ข้อความที่มีอีโมจิ: เลเยอร์ข้อความที่มีอีโมจิจะยังเป็นข้อความที่แก้ไขได้ โดยวาดด้วยอีโมจิของ Roblox เอง หน้าตาจึงอาจต่างจาก Figma เล็กน้อย และอีโมจิรุ่นใหม่ล่าสุดอาจขึ้นเป็นกล่องสี่เหลี่ยม ถ้าอยากได้หน้าตาเป๊ะๆ ให้เติม _ImageLabel ท้ายชื่อเลเยอร์ข้อความ
  • ข้อความเป็นรูป: เติม suffix _image, _ImageLabel หรือ _ImageButton ให้โหนด TEXT เพื่อ export เป็นรูป PNG เหมาะกับข้อความตกแต่งที่ควรแสดงเป็นรูปใน Roblox
  • ตรวจจับปุ่ม: เฟรมที่มีข้อความเป็นลูกและมีชื่อที่สื่อว่ากดได้ จะถูกตรวจจับเป็น TextButton หรือ ImageButton ให้อัตโนมัติ
  • Native shadows and corners: drop shadow, corner radius แยกแต่ละมุม และ fill ที่ซ้อนกันหลายชั้น จะยังแก้ไขได้ในรูปแบบอินสแตนซ์ native ของ Roblox แสงเรืองที่ทอดจากเนื้อหาข้างในเลเยอร์จะมาเป็นรูปเงารูปเดียววางไว้หลังเลเยอร์ที่แก้ไขได้ จึงเป็นรูปทรงตามเนื้อหาเหมือนใน Figma ถ้าอยากให้แปลงเป็นรูปแทน ให้ปิดสวิตช์นี้ใน Settings
  • เฟรมที่เลื่อนได้: ตั้ง Scroll behavior > Overflow (Horizontal หรือ Vertical) ในแผง Prototype ของ Figma หรือเติม suffix _ScrollingFrame เพื่อให้เฟรมกลายเป็น ScrollingFrame ที่เลื่อนตามแกนนั้น ตั้งขนาดเฟรมให้เท่ากับหน้าต่างที่อยากให้มองเห็น เนื้อหาที่ยื่นเกินออกไปจะกลายเป็น canvas ที่เลื่อนได้ ถ้าพื้นที่เลื่อนใหญ่กว่าพาเนลที่วาดไว้ด้านหลัง แท็บ Structure จะมี Fix ให้ปรับให้พอดีกับพาเนลนั้น (กด Reset เพื่อย้อนกลับ) ถ้าอยากให้พื้นที่เลื่อนมีมุมโค้ง ให้ใช้สี่เหลี่ยมมุมโค้งหรือวงกลมขนาดเท่าเฟรมเป็นเลเยอร์แรกแล้วตั้งเป็น mask เนื้อหาจะยังแก้ไขได้และเลื่อนอยู่ในขอบโค้งนั้นในทุกโหมดของ Artwork layers วิธีนี้ต้องใช้ชื่อ _ScrollingFrame หรือ _scroll ตั้งแค่ Overflow ใน Prototype อย่างเดียวไม่พอ และพื้นที่เลื่อนต้องไม่มี auto layout ของตัวเอง เฟรมที่เลื่อนได้ (หรือเฟรมที่ตัดขอบและมี drop shadow) ที่มีมุมโค้งแต่ไม่มี mask จะถูกตัดขอบด้วย Frame ธรรมดา ซึ่งทำให้ข้อความคมชัดในทุกระดับกราฟิก แต่ตัดขอบด้วยมุมเหลี่ยม แท็บ Structure จะแจ้งเมื่อเนื้อหายื่นเข้าไปในมุมโค้ง
  • Repeat group: Repeat group แบบ Linear ของ Figma จะถูกขยายออกเป็นอินสแตนซ์ Roblox ที่ซ้ำกันตามปกติ ถ้า Repeat group เปิดให้เลื่อนได้ (ด้วย suffix หรือ Overflow ใน Prototype) ทุกสำเนาที่กำหนดไว้จะถูกเก็บไว้ครบ และแถวที่ซ่อนอยู่หลัง mask จะเลื่อนเข้ามาให้เห็นได้ ส่วน Repeat แบบ Radial ยังไม่แปลงให้
  • ของตกแต่งที่ซ้ำกัน: แถวของตกแต่งที่เหมือนกันตั้งแต่หกชิ้นขึ้นไป (ช่องไอคอน ดาว จุด) จะนำเข้าแต่ละชิ้นแค่ครั้งเดียวในตำแหน่งของมัน แทนที่ทั้งแถวจะมาเป็นรูปเดียว
  • เลเยอร์ที่ซ่อนอยู่ในอาร์ตเวิร์ก: กลุ่มอาร์ตเวิร์กที่มีเลเยอร์ซ่อนอยู่ข้างใน เช่น text label ที่ซ่อนไว้ ก็ยังนำเข้ามาพร้อมรูปได้ตามปกติ
  • ไอคอนที่เปลี่ยนสีได้: เติม _gray ให้เลเยอร์รูปหรือไอคอน เพื่อ export เป็น mask สีขาวที่เปลี่ยนสีได้ด้วย ImageColor3 ของ Roblox ถ้าเป็นเลเยอร์ข้อความ _gray จะเก็บข้อความไว้ให้แก้ไขได้ในสีของตัวเอง ให้เปลี่ยนสีด้วย TextColor3 แทน
  • โหมด PixFix: ล้างขอบดำ (halo) รอบขอบรูปที่โปร่งใส โดยเฉพาะมุมโค้งและขอบที่ฟุ้ง
  • โหนดที่มีไว้แสดงผลอย่างเดียว: โหนดที่มีเอฟเฟกต์ซึ่ง Roblox เรนเดอร์เองไม่ได้ จะถูกแปลงเป็น PNG ให้อัตโนมัติ ส่วนข้อความข้างในจะยังแก้ไขได้อยู่บนรูปนั้น

แปลงเป็นรูป / รองรับบางส่วน

ฟีเจอร์ Figma เหล่านี้ไม่มีตัวเทียบใน Roblox ที่แก้ไขได้ FigBloxUI จึง export เป็นรูป PNG เมื่อจำเป็น (ยกเว้นข้อความ ซึ่งจะยังแก้ไขได้โดยใช้หน้าตาที่ใกล้ที่สุดที่ Roblox วาดได้ และแท็บ Structure จะบอกว่าอะไรเปลี่ยนไป):

  • Gradient แบบ Radial/Angular/Diamond ส่วน UIGradient แบบ radial และ conical ตัวใหม่ของ Roblox ยังเป็น Studio beta และยัง publish ขึ้น experience จริงไม่ได้ จึงยังแปลงเป็นรูปไว้ก่อนจนกว่า Roblox จะปล่อยให้ใช้ฝั่งไคลเอนต์
  • Inner shadow
  • เอฟเฟกต์ Blur (ใน Preserve layers กลุ่มตกแต่งที่มี blur จะมาเป็นรูปเดียว แสงเรืองนุ่มๆ จึงยังอยู่ครบ)
  • Blend mode (Overlay, Multiply และอื่น ๆ): อาร์ตเวิร์กที่ใช้ blend รวมถึงรูปทรง เฟรมเปล่า และเส้นคั่นบางๆ จะ export เป็นรูปพื้นโปร่งใส ในทุกโหมดของ Artwork layers อาร์ตเวิร์กที่ใช้ blend จะถูกวาดทับพื้นหลังใน Figma ที่อยู่ด้านหลัง สีจึงตรงกับ Figma บนพื้นหลังนั้น ข้อความที่ใช้ blend จะยังแก้ไขได้ สีที่รองรับจะตรงเมื่ออยู่บนพื้นสีทึบสีเดียว แต่ gradient กับ blend ที่ใช้ร่วมกันแล้วไม่รองรับจะคงสีเดิมและมีคำเตือนใน Structure ถ้าคุณเปลี่ยนสีหรือซ่อนพื้นหลังนั้นใน Studio ชิ้นที่ blend ไว้จะไม่ blend กับพื้นหลังใหม่ และยังมีบางกรณีที่มาโดยไม่มีพื้นหลังของมัน เฟรมหรือกลุ่มที่มี blend mode ของตัวเองและมีข้อความหรือเลเยอร์อื่นที่แก้ไขได้อยู่ข้างใน จะถูกวาดโดยไม่ blend ถ้าใช้ blend แค่กับ fill ของเฟรม เส้นขอบและเลเยอร์ลูกจะยังแก้ไขได้ ใน Separate และ Preserve layers กลุ่มตกแต่งที่ใช้ blend จะมาเป็นรูปเดียวที่ตรงกับ Figma รวมเส้นขอบด้วย และใน Preserve layers กลุ่ม เฟรม หรือคอมโพเนนต์ที่หมุนหรือกลับด้านและมีอาร์ตเวิร์กที่ใช้ blend อยู่ข้างในก็เช่นกัน
  • Stroke แบบแปรงหรือแบบมีเท็กซ์เจอร์
  • เส้นขอบที่แต่ละด้านหนาไม่เท่ากัน หรือใช้ gradient แบบ radial, angular หรือ diamond (เฟรมที่มีลูกจะได้เส้นขอบแบบใกล้เคียง และมีแจ้งเตือนในแท็บ Structure)
  • Corner smoothing (มุมแบบ squircle) บนเลเยอร์ที่ไม่มีลูก
  • วงรี ส่วนโค้ง และวงแหวน (วงกลมเต็มวงยังเป็น native)
  • Mask: ในโหมด Automatic กลุ่มตกแต่งที่มี mask จะ export เป็นรูปเดียว ส่วนกลุ่มที่มี mask และมีข้อความหรือไอเท็มที่ซ้ำกันอยู่ข้างในจะยังแก้ไขได้ ใน Separate และ Preserve layers mask วงกลมหรือสี่เหลี่ยมสีทึบที่ corner radius เท่ากันทุกมุมจะ clip เลเยอร์แบบ native ด้วย CanvasGroup และใน clip นั้นจะมี UI ที่แก้ไขได้ปนกับรูปก็ได้ ส่วนตัวเลเยอร์ mask เองยังอยู่ในทรีแต่ถูกซ่อนไว้ ถ้าเป็น mask แบบอื่น เลเยอร์ที่ถูก clip จะมาเป็นรูปที่ฝัง mask ไว้ในตัว ส่วนข้อความจะยังแก้ไขได้อยู่ด้านบน (ไม่ถูก clip ในจุดที่ Roblox ทำตาม mask ไม่ได้ และข้อความที่ถูกใช้เป็นตัว mask เองจะยังอยู่ในรูป) และแท็บ Structure จะแจ้งเตือนจุดที่การ clip อาจดูต่างไป ใน Separate กลุ่มตกแต่งที่มี mask มักจะมาเป็นรูปเดียวที่ฝัง mask ไว้ในตัว ในทุกโหมดของ Artwork layers เฟรมที่เลื่อนได้ซึ่งตั้งชื่อด้วย _ScrollingFrame หรือ _scroll ไม่มี auto layout ของตัวเอง และมีเลเยอร์แรกเป็น mask มุมโค้งหรือวงกลมแบบนี้ครอบทั้งเฟรม จะยังให้เนื้อหาแก้ไขได้และเลื่อนได้อยู่ใน clip ขอบโค้งนั้น ถ้าส่งแค่บางส่วนของดีไซน์แล้วจะทำให้เลเยอร์ย้ายข้าม mask การส่งจะถูกหยุดและมีข้อความบอกให้ทำ Replace ทั้งหมด เพื่อให้เลย์เอาต์ที่ใช้ mask ยังอยู่ครบ

ยังไม่รองรับ

ฟีเจอร์ Figma เหล่านี้ยังไม่แปลงให้:

  • Repeat group แบบ Radial