แนวทางการพัฒนาคอนโซล

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

ด้วยผู้เล่น Xbox และ PlayStation กว่า 200 ล้านคน, คอนโซลเป็นโอกาสที่ดีสำหรับคุณที่จะดึงดูดผู้ใช้มากขึ้น เมื่อเปรียบเทียบกับอุปกรณ์ปกติ, การออกแบบสำหรับคอนโซลและประสบการณ์ UI 10 ฟุตข

การออกแบบสำหรับผู้ควบคุม

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

เรียบเรียง UI

ใช้สิ่งต่อไปนี้เพื่อเรียบเรียงการออกแบบ UI สำหรับคอนโซล:

  • การควบคุมการนำทางที่เข้าถึงได้ : การนำทางพื้นฐานรวมถึงทิศทางสี่ เลือก ย้อนกลับควบคุมวิธีที่ผู้ใช้เข้าถึงและใช้งานกับเนื้อหาของคุณบนคอนโซล ให้แน่ใจว่าผู้ใช้สามาร

  • การนำทางเครื่องควบคุมเริ่มต้น : แม้ว่าผู้ใช้สามารถเข้าถึงเมนู UI โดยการเปิดเมาส์เสมือนขึ้นได้ แต่เนื่องจากผู้ใช้ไม่คุ้นเคยกับกระบวนการนี้ จึงจำเป็นต้องสนับสนุนการนำทางเครื

  • ความซับซ้อนของการป้อนควบคุมอย่างน้อย : ในขณะที่วิธีการป้อนควบคุมอื่น ๆ เช่นการแตะหรือการคลิก ผู้ใช้คอนโซลจะนำทางโดยการกดปุ่มหนึ่งในแต่ละครั้งดังนั้นการเคลื่อ

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

การเพิ่มการควบคุมเสริม

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

รองรับไอคอนปุ่มดินามิก

เมื่อประสบการณ์ของคุณขยายไปยังแพลตฟอร์มมากขึ้น, ตรวจสอบให้แน่ใจว่าจะแสดงไอคอนปุ่มที่ตรงกับอุปกรณ์ที่แตกต่างกัน UserInputService มีวิธีการสองที่สามารถทำได้นี้:

  • UserInputService:GetStringForKeyCode() สามารถแปลงรหัสคำถามของสหรัฐอเมริกาเป็นระเบียบอร์ดเกมได้ มันเป็นประโยชน์ในการแสดงรหัสทรัพยากรของคุณเป็นไอคอนเมาส์เพื่อตรงกับรูปลัก

    การแปลงสินทรัพย์ที่กําหนดเอง

    local UserInputService = game:GetService("UserInputService")
    local imageLabel = script.Parent
    local key = Enum.KeyCode.ButtonA
    local mappings = {
    ButtonA = "rbxasset://BUTTON_A_ASSET", -- แทนที่ด้วยสินทรัพย์ ButtonA
    ButtonCross = "rbxasset://BUTTON_CROSS_ASSET" -- แทนที่ด้วยสินทรัพย์ ButtonCross ที่ต้องการ
    }
    local mappedKey = UserInputService:GetStringForKeyCode(key)
    local image = mappings[mappedKey]
    imageLabel.Image = image
  • UserInputService:GetImageForKeyCode() ส่งไอคอน Roblox ปกติสำหรับรหัสโค้ดต้องการเป็นตัวแทนง่ายๆเหมือนตัวอย่างต่อไปนี้สำหรับการแมพปุ่ม Enum.KeyCode.ButtonA โชว์:

    การแมพไอคอนเริ่มต้น

    local UserInputService = game:GetService("UserInputService")
    local imageLabel = script.Parent
    local key = Enum.KeyCode.ButtonA
    local mappedIcon = UserInputService:GetImageForKeyCode(key)
    imageLabel.Image = mappedIcon

การให้ข้อเสนอแนะทางกายภาพ

ข้อดีหนึ่งของคอนโทรลเลอร์คือความสามารถในการให้ข้อเสียงแบบแฮปติคโดยการสั่นคอนโทรลเลอร์เพื่อให้ผู้ใช้รู้สึกถึงการสัมผัส คุณสามารถใช้ HapticService เพื่อเพิ่มค

  • เหตุการณ์ทางกายภาพที่น่าตื่นเต้น เช่น ระเบิดหรือการชน
  • เหตุการณ์ที่ต้องการความสนใจของผู้ใช้ เช่น การเปิดประตูหรือการเข้าร่วมของลูกค้าใหม่
  • การแจ้งเตือนการกระทํา UI เช่นการเลื่อนเมาส์ไปยังด้านล่างของรายการหรือการคลิกปุ่มที่ไม่สนับสนุน

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

การสร้างสำหรับประสบการณ์ 10ft

เมื่ออยู่บนคอนโซลผู้ใช้มักจะนั่งอยู่ 10 เท้าออกจากหน้าจอ ตัวชี้วัดขนาด 1.5x จะให้ความสบายสบาย การนำทางได้ง่าย และมีตัวอักษรที่อ่านได้

พิจารณาพื้นที่ปลอดภัยของทีวี

An example illustration showing the dimensions of the TV-safe and unsafe zone.
พื้นที่สีน้ำเงินเป็นพื้นที่ที่ไม่ปลอดภัยสำหรับทีวี.

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

การใช้ UI ขนาดไดนามิก

ใช้ขนาดและตําแหน่งที่สัมพันธ์เพื่อวัดทุกสิ่งในเปอร์เซ็นต์ของกรอบ ใส่สกุลลูกศรในขนาด UI ทั้งหมดโดย:

  • พัฒนาสำหรับความละเอียดที่ต่ำก่อน
  • โดยใช้ตำแหน่งสัมพันธ์และ UISizeConstraint เพื่อปรับขนาด UI
  • การปรับขนาดขึ้นอยู่กับลักษณะการออก力ด้วย GuiService:IsTenFootInterface()
  • การนำ ScrollingFrame มาใช้เพื่อลดความวุ่นวายบนหน้าจอเมื่อ UI เพิ่มขึ้น

การปรับแต่งการเปิดเผยแบบค่อยเป็นค่อยไป

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

การให้ข้อเสียงข้อเสียง

ข้อเสนอแนะซึ่งการโต้ตอบมักจะเงียบหรือใช้การรีแมทชันเบา ๆ น้อย ๆ เพื่อยืนยันการเลือก หรือสัญญาณเสียง คุณสามารถเพิ่