พื้นผิวคือรูปภาพที่สามารถใช้กับพื้นผิวของโมเดล 3 มิติ พื้นผิว โหมดแสดงภาพ 2 มิติยังใช้ในการวาดองค์ประกอบอย่างเช่นสไปรท์หรือพื้นหลังด้วย หน้านี้อธิบายรูปแบบการบีบอัดพื้นผิวยอดนิยมที่ใช้ในเกมและวิธี ให้กำหนดกลุ่มเป้าหมายใน Android App Bundle อ่านแล้ว เกี่ยวกับ Android App Bundle และ การนำส่งเนื้อหา Play ก่อนเริ่มต้น
ฉากหลัง
โดยทั่วไป GPU จะรองรับชุดรูปแบบการบีบอัดพื้นผิว ต รูปแบบการบีบอัดพื้นผิว (หรือ TCF) เป็นรูปแบบไฟล์ที่ได้รับการเพิ่มประสิทธิภาพสำหรับ GPU GPU โหลดและแสดงผลพื้นผิวได้เร็วกว่าและมีหน่วยความจำน้อยกว่า ใช้อาร์เรย์ของค่า RGBA ในหน่วยความจำ การสนับสนุนนี้ดำเนินการใน ระดับฮาร์ดแวร์: ผู้ผลิต GPU ฝังคอมโพเนนต์ลงในการ์ดกราฟิก ชิปที่อ่าน ขยาย และแสดงผลรูปแบบที่รองรับ
รูปแบบการบีบอัดพื้นผิวที่พบได้บ่อยในฮาร์ดแวร์สมัยใหม่บนอุปกรณ์เคลื่อนที่มีดังนี้
- ASTC: รูปแบบล่าสุดที่ออกแบบมาเพื่อแทนที่รูปแบบก่อนหน้านี้ ยืดหยุ่นกว่า รูปแบบก่อนหน้านี้ เนื่องจากรองรับบล็อกขนาดต่างๆ การใช้รูปแบบนี้ ก็เป็นวิธีที่ดีในการปรับขนาดเกมให้เหมาะสม
- ETC2: รองรับในอุปกรณ์ทั้งหมดที่รองรับ OpenGL ES 3.0 ขึ้นไป ซึ่งรวมถึงอุปกรณ์เคลื่อนที่ Android ที่ใช้งานอยู่เกือบทั้งหมด
รูปแบบเหล่านี้รองรับโดยเปอร์เซ็นต์โดยประมาณของ Android ดังต่อไปนี้ อุปกรณ์:
รูปแบบการบีบอัดพื้นผิว | เปอร์เซ็นต์ของอุปกรณ์ Google Play ที่มีการสนับสนุน |
---|---|
ASTC | มากกว่า 80% |
ETC2 | มากกว่า 95% |
GPU ของคอมพิวเตอร์เดสก์ท็อปที่ใช้ Google Play Games สำหรับ PC รองรับรูปแบบนี้ด้วย
- DDS หรือ S3TC: บางครั้งเรียกว่า BCn, DXTC หรือ DXTn
รูปแบบการบีบอัดพื้นผิวแบบเก่าซึ่งเราไม่แนะนำอีกต่อไป ได้แก่
- ETC1: รองรับในอุปกรณ์ส่วนใหญ่ รูปแบบนี้ไม่รองรับความโปร่งใส แต่เกมสามารถใช้ไฟล์พื้นผิวอีกไฟล์หนึ่งเป็นคอมโพเนนต์อัลฟ่าได้
- PVRTC: เป็นที่นิยมในบรรดาเกม iOS และรองรับในอุปกรณ์ Android บางรุ่นด้วย
การรองรับ ETC1 เป็นเพียงข้อกำหนดสำหรับเกมที่รองรับเวอร์ชันเดิมๆ ที่เก่ามากเท่านั้น หรืออุปกรณ์ Android TV บางรุ่นที่ไม่รองรับ OpenGL ES 3.0 และ สูงขึ้น
รูปแบบเริ่มต้น
รูปแบบที่มีมากมาย (ที่มีระดับการสนับสนุนอุปกรณ์ในระดับต่างๆ) ช่วยให้คุณ อาจไม่ทราบว่าจะใช้รูปแบบใดในการสร้างพื้นผิวเกม เพื่อ ซึ่งเป็นรูปแบบ App Bundle ช่วยให้คุณเลือกการบีบอัดพื้นผิวเริ่มต้นได้ สำหรับแต่ละ Asset Pack ก็ได้ หากอุปกรณ์ไม่รองรับรายการอื่นๆ ที่ระบุ ระบบจะติดตั้งเนื้อหาที่ใช้รูปแบบเริ่มต้นนี้
ETC2 ถือเป็นตัวเลือกที่ดี เว้นแต่คุณจะกำหนดเป้าหมายเป็นฮาร์ดแวร์อุปกรณ์ที่เก่ามาก สำหรับรูปแบบเริ่มต้นได้ คุณควรใช้รูปแบบ ETC2 ที่มีการรับประกันว่า ที่รองรับใน OpenGL ES 3.0 รูปแบบเหล่านี้มีให้บริการใน Vulkan Graphic API ด้วย
รูปแบบที่แนะนำ
รูปแบบ ASTC จะกำหนดขนาดบล็อกการบีบอัดที่หลากหลาย ซึ่งช่วยให้ คุณจะเลือกลดคุณภาพของรูปที่ลดลงเพื่อการบีบอัดที่ดีขึ้นได้ ขึ้นอยู่กับลักษณะของวัสดุศิลป์ต้นฉบับ สำหรับพื้นผิวหนึ่งๆ คุณสามารถ โปรดเลือกบล็อกขนาดเล็กหรือใหญ่กว่าเพื่อรักษาคุณภาพของภาพที่ยอมรับได้
หากเกมของคุณรองรับ Google Play Games สำหรับ PC และใช้ Vulkan คุณจะ ควรมีพื้นผิว S3TC รูปแบบ S3TC รองรับโดย GPU บนเดสก์ท็อปทั้งหมด
สร้าง App Bundle
Google Play ใช้ Android App Bundle เพื่อสร้างและแสดง APK ที่เพิ่มประสิทธิภาพสำหรับ การกำหนดค่าอุปกรณ์ของผู้ใช้แต่ละคน เพื่อให้ผู้ใช้ดาวน์โหลดเฉพาะโค้ดและทรัพยากร ที่จำเป็นต่อการดำเนินเกม APK ที่เพิ่มประสิทธิภาพเหล่านี้มีพื้นผิวชุดเดียว เนื้อหา ซึ่งอยู่ในรูปแบบการบีบอัดที่เหมาะสมที่สุดสำหรับอุปกรณ์
หากเกมไม่ได้อยู่ใน Unity ให้ใช้ Gradle สร้าง App Bundle
ผู้ใช้ขั้นสูงอาจต้องการใช้ bundletool
หากเกมของคุณอยู่ใน Unity ให้รองรับ App Bundle ที่มีการนำส่งเนื้อหา Play พร้อมให้บริการใน Unity 2021.3 ขึ้นไป สำหรับข้อมูลเพิ่มเติม โปรดดู เอกสารประกอบเกี่ยวกับ Unity คุณใช้ปลั๊กอิน Unity เพื่อสร้าง App Bundle ที่มี เวอร์ชัน Unity
ใช้ Gradle
อัปเดตเวอร์ชันของปลั๊กอิน Android Gradle ในโปรเจ็กต์
build.gradle
ไฟล์เป็น 4.1 ขึ้นไป (เช่นcom.android.tools.build:gradle:4.1.0
)กำหนดชุดประเภทอุปกรณ์ที่คุณต้องการกำหนดเป้าหมายสำหรับเกม และ รูปแบบการบีบอัดพื้นผิวที่สนับสนุน (สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ โปรดดูพื้นหลัง)
สร้างชิ้นงานในเวอร์ชันต่างๆ สำหรับรูปแบบการบีบอัดพื้นผิวแต่ละรูปแบบจาก ขั้นตอนก่อนหน้า ซึ่งอาจรวมถึงการสร้างภาพต่อเรียงโดยใช้ซอฟต์แวร์ ชอบ TexturePacker หรือ การเรียกใช้สคริปต์ที่แปลงเนื้อหาดิบเป็นชิ้นงานที่มีรูปแบบเฉพาะ (เช่น astc-encoder)
สร้าง Asset Pack (โปรดดู สร้างสำหรับ C++ หรือ Java) ซึ่งมีเนื้อหาเกมของคุณและใช้โดย Play Asset Delivery สำหรับ เช่น คุณสามารถสร้าง Asset Pack 1 รายการต่อระดับ หรือ Asset Pack ก็ได้สำหรับ ส่วนต่างๆ ของเกม
ใน Asset Pack ให้เพิ่มไดเรกทอรีสำหรับรูปแบบการบีบอัดพื้นผิวแต่ละรูปแบบ ที่ต้องการสนับสนุน เพิ่มคำต่อท้ายที่รองรับลงใน ชื่อไดเรกทอรีพื้นผิวที่ตรงกับการบีบอัดพื้นผิว รูปแบบที่ใช้สำหรับไฟล์ที่มีอยู่
สร้างไดเรกทอรีที่ไม่มีชื่อส่วนต่อท้าย (เช่น
common/src/main/assets/textures/
) ในไดเรกทอรีนี้ ให้ใส่ค่าเริ่มต้น ของรูปแบบเนื้อหาพื้นผิว รูปแบบเริ่มต้นนี้ควรรองรับโดย อุปกรณ์ส่วนใหญ่ (เช่น ETC1 หรือ ETC2) หากอุปกรณ์ไม่รองรับ รูปแบบอื่นๆ ที่ระบุ (เช่น PVRTC และ ASTC ในตารางด้านล่าง) Google Play Store จะติดตั้งไดเรกทอรีนี้แทนไดเรกทอรีก่อนหน้า ไดเรกทอรีต่อจาก common
Asset Pack:
common/build.gradle
common/src/main/assets/textures/...common
Asset Pack:
common/build.gradle
common/src/main/assets/textures/...
/src/main/assets/textures#tcf_astc/...
/src/main/assets/textures#tcf_pvrtc/...level1
Asset Pack:
level1/build.gradle
level1/src/main/assets/textures/...level1
Asset Pack:
level1/build.gradle
level1/src/main/assets/textures/...
level1/src/main/assets/textures#tcf_astc/...
ระดับ1/src/main/assets/textures#tcf_pvrtc/...level2
asset Pack:
level2/build.gradle
level2/src/main/assets/textures/...level2
asset Pack:
level2/build.gradle
level2/src/main/assets/textures/...
level2/src/main/assets/textures#tcf_astc/...
ระดับ 2/src/main/assets/textures#tcf_pvrtc/...อัปเดตไฟล์
build.gradle
ของแอปเพื่อเปิดใช้การแยก Asset Pack ต่อพื้นผิว// In the app build.gradle file: android { ... bundle { texture { enableSplit true } } }
ใน Android Studio ให้เลือกสร้าง > สร้าง Bundle / APK ที่ลงชื่อ หรือ เปิด งาน Gradle จากบรรทัดคำสั่งไปยัง สร้างแพ็กเกจของคุณ
ใช้ปลั๊กอิน Google Play Unity
ดาวน์โหลดปลั๊กอิน (หรือแพ็กเกจ) Unity สำหรับ Play Asset Delivery เพื่อสร้าง App Bundle ที่มี Asset Pack ที่กำหนดเป้าหมายพื้นผิว
เตรียมเนื้อหา
ในการเตรียมเนื้อหาพื้นผิวสำหรับการสร้าง App Bundle ให้ทำตามขั้นตอนต่อไปนี้
รวมฉากและเนื้อหาลงใน Unity หลายๆ ไฟล์ AssetBundles
กำหนดชุดประเภทอุปกรณ์ที่คุณต้องการกำหนดเป้าหมายสำหรับเกม และ รูปแบบการบีบอัดพื้นผิวที่สนับสนุน (สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ โปรดดูพื้นหลัง)
แก้ไขสคริปต์บิลด์ของเกมเพื่อสร้าง AssetBundles หลายรายการ 1 ครั้งสำหรับพื้นผิวแต่ละรูปแบบที่คุณต้องการรองรับ โปรดดู สคริปต์ตัวอย่างต่อไปนี้
using Google.Android.AppBundle.Editor; using UnityEditor; public class MyBundleBuilder { [MenuItem("Assets/Build AssetBundles TCF variants")] public static void BuildAssetBundles() { // Describe the AssetBundles to be built: var assetBundlesToBuild = new [] { new AssetBundleBuild { assetBundleName = "level1-textures", assetNames = new[] {"level1/character-textures", "level1/background-textures"} }, new AssetBundleBuild { assetBundleName = "level2-textures", assetNames = new[] {"level2/character-textures", "level2/background-textures"} } }; // Describe where to output the asset bundles and in which formats: var outputPath = "Assets/AssetBundles"; var defaultTextureFormat = MobileTextureSubtarget.ETC2; var additionalTextureFormats = new[] { MobileTextureSubtarget.ASTC, MobileTextureSubtarget.PVRTC } var allowClearDirectory = true; // Generate asset bundles: AssetBundleBuilder.BuildAssetBundles( outputPath, assetBundlesToBuild, BuildAssetBundleOptions.UncompressedAssetBundle, defaultTextureFormat, additionalTextureFormats, allowClearDirectory); // While in this example we're using the UI to configure the // AssetBundles, you can use the value returned by BuildAssetBundles // to configure the asset packs, if you want to build the bundle // entirely using the scripting API. } }
ตรวจสอบว่าเนื้อหาพื้นผิวแต่ละรายการแสดงในไดเรกทอรีที่มี คำต่อท้าย (เช่น
#tcf_astc
)ยืนยันว่าได้เอาต์พุตไดเรกทอรีที่ไม่มีชื่อคำต่อท้ายชื่อ (เช่น
Assets/AssetBundles/
) ไดเรกทอรีนี้มีรูปแบบเริ่มต้นของ ของเนื้อหาพื้นผิว อุปกรณ์ส่วนใหญ่ควรรองรับรูปแบบเริ่มต้นนี้ (สำหรับ เช่น ETC2) หากอุปกรณ์ไม่รองรับรูปแบบอื่นๆ ที่ระบุ (ตัวอย่างเช่น ASTC ในโค้ดจากขั้นตอนก่อนหน้า) จากนั้น Google Play จัดเก็บการติดตั้งไดเรกทอรีนี้แทนAssets/AssetBundles.meta Assets/AssetBundles/AssetBundles Assets/AssetBundles/AssetBundles.manifest Assets/AssetBundles/AssetBundles.manifest.meta Assets/AssetBundles/AssetBundles.meta Assets/AssetBundles/samplescene Assets/AssetBundles/samplescene.manifest Assets/AssetBundles/samplescene.manifest.meta Assets/AssetBundles/samplescene.meta Assets/AssetBundles/texturesbundle Assets/AssetBundles/texturesbundle.manifest Assets/AssetBundles/texturesbundle.manifest.meta Assets/AssetBundles/texturesbundle.meta Assets/AssetBundles#tcf_astc.meta Assets/AssetBundles#tcf_astc/AssetBundles Assets/AssetBundles#tcf_astc/AssetBundles.manifest Assets/AssetBundles#tcf_astc/AssetBundles.manifest.meta Assets/AssetBundles#tcf_astc/AssetBundles.meta Assets/AssetBundles#tcf_astc/samplescene Assets/AssetBundles#tcf_astc/samplescene.manifest Assets/AssetBundles#tcf_astc/samplescene.manifest.meta Assets/AssetBundles#tcf_astc/samplescene.meta Assets/AssetBundles#tcf_astc/texturesbundle Assets/AssetBundles#tcf_astc/texturesbundle.manifest Assets/AssetBundles#tcf_astc/texturesbundle.manifest.meta Assets/AssetBundles#tcf_astc/texturesbundle.meta
เลือก Google > Android > การนำส่งเนื้อหา
คลิกเพิ่มโฟลเดอร์เพื่อเพิ่มโฟลเดอร์ที่มีเนื้อหาเริ่มต้น แพ็กเกจเหล่านี้จะติดตั้งในอุปกรณ์ที่ไม่รองรับแพ็กเกจอื่น ที่คุณกำหนดได้
อย่าลืมตั้งค่าโหมดการแสดงโฆษณาสำหรับ AssetBundle
คลิกเพิ่มโฟลเดอร์เพื่อเพิ่มโฟลเดอร์ที่มี AssetBundles ที่สร้างมา รูปแบบอื่น (เช่น ASTC) ทำซ้ำตามที่จำเป็น
อย่าลืมตั้งค่าโหมดการแสดงโฆษณาสําหรับ AssetBundle แต่ละรายการ
สร้าง
เลือก Google > สร้าง Android App Bundle เพื่อเปิดตัวบิลด์ Unity ของ เกม นอกจากนี้ยังทำแพ็กเกจ AssetBundles เป็น Asset Pack หลายรายการโดยที่ ระบบจะแปลงชื่อ AssetBundle เป็น Asset Pack เดียว
(ขั้นสูง) ใช้ Bundletool
ดูข้อมูลเพิ่มเติมเกี่ยวกับ bundletool
ได้ที่
สร้าง App Bundle โดยใช้ Bundletool
วิธีสร้าง App Bundle มีดังนี้
ดาวน์โหลด
bundletool
จากที่เก็บ GitHub ได้กำหนดชุดประเภทอุปกรณ์ที่คุณต้องการกำหนดเป้าหมายสำหรับเกม และ รูปแบบการบีบอัดพื้นผิวที่สนับสนุน (สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ โปรดดูพื้นหลัง)
สร้างชิ้นงานในเวอร์ชันต่างๆ สำหรับรูปแบบการบีบอัดพื้นผิวแต่ละรูปแบบจาก ขั้นตอนก่อนหน้า ซึ่งอาจรวมถึงการสร้างภาพต่อเรียงโดยใช้ซอฟต์แวร์ ชอบ TexturePacker หรือ การเรียกใช้สคริปต์ที่แปลงเนื้อหาดิบเป็นชิ้นงานที่มีรูปแบบเฉพาะ (เช่น astc-encoder)
สร้าง Asset Pack (โปรดดู สร้างสำหรับ C++ หรือ Java) ซึ่งมีเนื้อหาเกมของคุณและใช้โดย Play Asset Delivery สำหรับ เช่น คุณสามารถสร้าง Asset Pack 1 รายการต่อระดับ หรือ Asset Pack ก็ได้สำหรับ ส่วนต่างๆ ของเกม
เพิ่มคำต่อท้ายที่รองรับใน Asset Pack ต่างๆ เป็นชื่อไดเรกทอรีพื้นผิวที่สอดคล้องกับการบีบอัดพื้นผิว รูปแบบที่ใช้สำหรับไฟล์ที่มีอยู่
สร้างไดเรกทอรีที่ไม่มีชื่อส่วนต่อท้าย (เช่น
common/src/main/assets/textures/
) ในไดเรกทอรีนี้ ให้ใส่ค่าเริ่มต้น ของรูปแบบเนื้อหาพื้นผิว รูปแบบเริ่มต้นนี้ควรรองรับโดย อุปกรณ์ส่วนใหญ่ (เช่น ETC1 หรือ ETC2) หากอุปกรณ์ไม่รองรับ รูปแบบอื่นๆ ที่ระบุ (เช่น PVRTC และ ASTC ในตารางด้านล่าง) Google Play Store จะติดตั้งไดเรกทอรีนี้แทนไดเรกทอรีก่อนหน้า ไดเรกทอรีต่อจาก common
Asset Pack:
common/build.gradle
common/src/main/assets/textures/...common
Asset Pack:
common/build.gradle
common/src/main/assets/textures/...
/src/main/assets/textures#tcf_astc/...
/src/main/assets/textures#tcf_pvrtc/...level1
Asset Pack:
level1/build.gradle
level1/src/main/assets/textures/...level1
Asset Pack:
level1/build.gradle
level1/src/main/assets/textures/...
level1/src/main/assets/textures#tcf_astc/...
ระดับ1/src/main/assets/textures#tcf_pvrtc/...level2
asset Pack:
level2/build.gradle
level2/src/main/assets/textures/...level2
asset Pack:
level2/build.gradle
level2/src/main/assets/textures/...
level2/src/main/assets/textures#tcf_astc/...
ระดับ 2/src/main/assets/textures#tcf_pvrtc/...เพิ่มมิติข้อมูล TCF ลงใน ไฟล์ข้อมูลเมตาของ App Bundle (
BundleConfig.json
) ใช้TEXTURE_COMPRESSION_FORMAT
สำหรับvalue
ฟิลด์:{ ... "optimizations": { "splitsConfig": { "splitDimension": [ ... { "value": "TEXTURE_COMPRESSION_FORMAT", "negate": false, "suffixStripping": { "enabled": true, "defaultSuffix": "" } }], } } }
กําหนด
suffixStripping.enabled
เป็นtrue
เพื่อนําคําต่อท้ายออก (เช่น#tcf_astc
) จากชื่อไดเรกทอรีเมื่อสร้าง Asset Pack ช่วงเวลานี้ ช่วยให้เกมของคุณอ่านไฟล์จากชื่อไดเรกทอรีที่รู้จักกันดี (เช่นlevel1/assets/textures
) เครื่องมือเกมบางตัวสามารถตรวจจับรูปแบบของ ดังนั้นเกมของคุณอาจไม่คำนึงถึงรูปแบบของเนื้อหาพื้นผิวที่ ติดตั้งด้วยsuffixStripping.defaultSuffix
ระบุคำต่อท้ายไดเรกทอรีเริ่มต้นเมื่อbundletool
สร้าง APK แบบสแตนด์อโลนสำหรับอุปกรณ์ที่ใช้ Android 5.0 (API ระดับ 21) และต่ำกว่า ในตารางตัวอย่างก่อนหน้านี้ เวอร์ชันเริ่มต้นของ ชิ้นงานพื้นผิวที่ติดตั้งในอุปกรณ์เหล่านี้ จุดประสงค์คือ ในกรณีทั่วไปสร้าง App Bundle
bundletool build-bundle --config=BUILD_CONFIG.json \ --modules=level1.zip,level2.zip,common.zip,base.zip --output=MY_BUNDLE.aab
ยืนยันเนื้อหาของ App Bundle
หากคุณยังไม่ได้ดำเนินการ
ดาวน์โหลด bundletool
จากที่เก็บ GitHub
ยืนยันเนื้อหาของ App Bundle ที่เป็นเอาต์พุตโดยการสร้าง APK ดังกล่าวและ กำลังตรวจสอบรายการเหล่านั้น
bundletool build-apks --output=APKS.apks --bundle=MY_BUNDLE.aab
zipinfo APKS.apks
ผลลัพธ์ควรมีลักษณะดังต่อไปนี้
toc.pb
splits/base-master.apk
splits/base-armeabi_v7a.apk
splits/…
asset-slices/level1-astc.apk
asset-slices/level1-other_tcf.apk
asset-slices/level1-pvrtc.apk
ชื่อเหล่านี้บ่งบอกว่ามีการใช้การกำหนดเป้าหมาย TCF อย่างเหมาะสม หากดึงข้อมูล
เนื้อหาของ APK ระดับ (เช่น asset-slices/level1-astc.apk
) คุณ
สามารถยืนยันได้ว่ามีไดเรกทอรีเพียงรายการเดียวชื่อ textures
อยู่
ทดสอบ App Bundle
เชื่อมต่ออุปกรณ์และติดตั้ง Asset Pack ที่เกี่ยวข้องดังนี้
bundletool install-apks --apks=APKS.apks
คำสั่งนี้จะติดตั้งเฉพาะ Asset Pack ที่เป็นไปตามข้อกำหนดของอุปกรณ์เท่านั้น ข้อกำหนดเหล่านี้รวมถึง ABI, ความหนาแน่นของหน้าจอ, ภาษา และ รูปแบบการบีบอัดพื้นผิวที่เกี่ยวข้อง การดำเนินการนี้จะจำลองสิ่งที่ทำโดย Google Play Store สำหรับเกมที่เผยแพร่แล้ว
ดำเนินการต่อไปนี้เพื่อตรวจสอบว่ามีการติดตั้ง Asset Pack ที่ถูกต้องแล้ว
ใช้คำสั่ง
bundletool extract-apks
เพื่อเอาต์พุต APK ที่ติดตั้งไว้สำหรับ อุปกรณ์ของคุณลงในไดเรกทอรีแล้วตรวจสอบไดเรกทอรีนี้ดึงข้อมูลข้อมูลจำเพาะของอุปกรณ์ดังนี้
bundletool get-device-spec --output=MY_DEVICE_SPEC.json
เรียกใช้
bundletool extract-apks
ด้วยข้อมูลจำเพาะของอุปกรณ์นี้bundletool extract-apks --apks=APKS.apks --device-spec=MY_DEVICE_SPEC.json \ --output-dir out
แสดงรายการไฟล์ในไดเรกทอรี
out
และตรวจสอบว่า Asset Pack ที่เหมาะสม แล้ว ชื่อ Asset Pack จะต่อท้ายด้วยชื่อรูปแบบพื้นผิว (สำหรับ เช่นlevel1-astc.apk
)
เพิ่มข้อความบันทึกในเกมของคุณที่แสดงรูปแบบพื้นผิวขณะโหลด พื้นผิว
สร้างชุดทดสอบพื้นผิว (เช่น แทนที่พื้นผิวด้วย สีเดียวที่สว่างสำหรับรูปแบบที่กำหนด) เรียกใช้เกมและยืนยันว่าเป็นเกม ปัจจุบัน
หากแอปมี Asset Pack on-demand
หรือ fast-follow
ให้ใช้
โซลูชันการทดสอบในพื้นที่สำหรับการนําส่งเนื้อหา
คำต่อท้ายที่รองรับสำหรับชื่อไดเรกทอรีพื้นผิว
Google Play เข้าใจคำต่อท้ายต่อไปนี้ที่ใช้ในชื่อไดเรกทอรีพื้นผิว
#tcf_astc
สำหรับการบีบอัดพื้นผิวที่ปรับขยายได้ (Adaptive Scalable Texture Compression หรือ ASTC)#tcf_atc
สำหรับการบีบอัดพื้นผิว ATI (ATC)#tcf_dxt1
สำหรับการบีบอัดพื้นผิว S3 DXT1 (DXT1)#tcf_latc
สำหรับการบีบอัดพื้นผิว Luminance-Alpha (LATC)#tcf_paletted
สำหรับการบีบอัดพื้นผิวตามสีทั่วไป#tcf_pvrtc
สำหรับการบีบอัดพื้นผิวของ PowerVR (PVRTC)#tcf_etc1
สำหรับการบีบอัดพื้นผิวของ Ericsson (ETC1)#tcf_etc2
สำหรับการบีบอัดพื้นผิวของ Ericsson 2 (ETC2)#tcf_s3tc
สำหรับการบีบอัดพื้นผิว S3 (S3TC)#tcf_3dc
สำหรับการบีบอัดพื้นผิว ATI 3Dc (3Dc)
กฎการแสดงของ Google Play
Google Play ตรวจสอบสตริงส่วนขยาย OpenGL ที่อุปกรณ์ใช้และ เวอร์ชัน OpenGL ที่อุปกรณ์รองรับ Google Play ใช้ข้อมูลนี้เพื่อ กำหนดรูปแบบพื้นผิวที่ถูกต้อง เพื่อนำส่งไปยังอุปกรณ์จาก Android App Bundle
Google Play นำส่งรูปแบบแรกโดยเรียงตามลำดับต่อไปนี้ ตารางที่อุปกรณ์รองรับ
หากอุปกรณ์ไม่รองรับรูปแบบพื้นผิวใน App Bundle เลย Google Play นำส่งรูปแบบพื้นผิวแพ็กเกจในรูปแบบเริ่มต้น (หากคุณไม่ได้กำหนดเป้าหมายเฉพาะฮาร์ดแวร์อุปกรณ์เฉพาะ ETC1 หรือ ETC2 ก็จะดี สำหรับรูปแบบเริ่มต้น) สำหรับข้อมูลเกี่ยวกับวิธีจัดแพ็กเกจเนื้อหาใน รูปแบบเริ่มต้น โปรดดู Usebundletool หรือ ใช้ปลั๊กอิน Google Play Unity
หากเนื้อหาไม่ได้จัดแพ็กเกจในรูปแบบเริ่มต้น Google Play จะทำเครื่องหมายแอป ไม่พร้อมใช้งานสำหรับอุปกรณ์ ในกรณีนี้ ผู้ใช้จะไม่สามารถดาวน์โหลดแอปได้
รูปแบบ (ระบุใน tcf_xxxx )
|
รองรับในอุปกรณ์ที่ใช้ OpenGL สตริงส่วนขยาย |
---|---|
แอสเตอร์ | GL_KHR_texture_compression_astc_ldr |
PVRTC | GL_IMG_texture_compression_pvrtc |
S3TC | GL_EXT_texture_compression_s3tc |
DXT1 | GL_EXT_texture_compression_dxt1 |
แลตช์ | GL_EXT_texture_compression_latc |
Atc | GL_AMD_compressed_ATC_texture |
3DC | GL_AMD_compressed_3DC_texture |
ฯลฯ2 | ไม่สามารถใช้งาน อุปกรณ์ต้อง รองรับ OpenGL ES เวอร์ชัน 3.0 หรือ ในภายหลัง |
ฯลฯ1 | GL_OES_compressed_ETC1_RGB8_texture |
จานสี | GL_OES_compressed_paletted_texture |