# 3D 應用程式啟動程式設計指引3D app launcher design guidance

(虛構應用程式) 的 Floaty 鳥3D 應用程式啟動器範例Floaty Bird 3D app launcher example (fictional app)

## 3D 應用程式啟動器建立流程3D app launcher creation process

1. 設計和 concepting (本文) Designing and concepting (this article)
2. 模型化和匯出Modeling and exporting
3. 將它整合到您的應用程式中：Integrating it into your application:

## 設計概念Design concepts

### 首頁規模Home scale

3D 應用程式啟動器會存留在懸崖之屋中，而且其預設大小應該與空間中的其他「實體」物件有意義。3D app launchers live in the Cliff House and their default size should make sense with the other “physical” objects in the space. 如果您將啟動器放置在房屋工廠或某些傢俱旁邊，則應該在家裡、大小調整。If you place your launcher beside, say, a house plant or some furniture, it should feel at home, size-wise. 一個不錯的起點是查看它看起來如何查看30個三分，但是請記住，使用者可以視需要擴大或縮小。A good starting point is to see how it looks at 30 cubic centimeters, but remember that users can scale it up or down if they like.

### 擁有能力Own-able

Astro (虛構應用程式) 的變形3D 應用程式啟動器範例Astro Warp 3D app launcher example (fictional app)

## 良好3D 模型的秘訣Tips for good 3D models

• 規劃應用程式啟動器的維度時，大約會有 30 cm 的 cube。When planning dimensions for your app launcher, shoot for roughly a 30-cm cube. 因此，1:1:1 大小的比率。So, a 1:1:1 size ratio.
• 模型必須在10000多邊形下。Models must be under 10,000 polygons. 深入瞭解 (LODs 的三角形計數和詳細資料層級) Learn more about triangle counts and levels of details (LODs)
• 在沉浸式耳機上測試。Test on an immersive headset.
• 盡可能在您的模型幾何中建立詳細資料–不依賴材質取得詳細資料。Build details into your model’s geometry where possible – don’t rely on textures for detail.
• 建立「水緊密」封閉幾何。Build “water tight” closed geometry. 沒有任何未模型化的漏洞。No holes that aren't modeled in.
• 在您的物件中使用自然材質。Use natural materials in your object. 想像一下在現實世界中製作它。Imagine crafting it in the real world.
• 確定您的模型在不同的距離和大小都能妥善閱讀。Make sure your model reads well at different distances and sizes.
• 當您的模型已準備好開始時，請閱讀 匯出資產的指導方針When your model is ready to go, read the exporting assets guidelines.

### 避免事項What to avoid

• 請勿使用高對比的詳細資料或小型、忙碌模式和紋理。Don't use high-contrast details or small, busy patterns and textures.
• 請勿使用精簡型幾何–它不會在某個距離正常運作，而且別名會不正確。Don't use thin geometry – it doesn’t work well at a distance and will alias badly.
• 不要讓模型的某些部分延伸超過1:1:1 大小比例。Don't let parts of your model extend too much beyond the 1:1:1 size ratio. 它會建立調整問題。It will create scaling problems.

## 如何處理類型How to handle type

• 我們建議您的類型會佔用大約1/3 的應用程式啟動器 (或更多) 。We recommend your type takes up about 1/3 of your app launcher (or more). 型別是讓人們知道您的啟動器實際上是啟動程式的主要事物，所以如果它很大，就很好用。Type is the main thing that gives people an idea that your launcher is, in fact, a launcher so it’s nice if it’s substantial.
• 避免將類型設為寬度-請嘗試將其保留在應用程式啟動器核心維度的範圍內 (更多或更少) 。Avoid making type super wide – try to keep it within the confines of the app launchers core dimensions (more or less).
• 一般類型可以運作，但在某些環境中，可能很難查看。Flat type can work, but it can be hard to view from certain angles and in certain environments. 您可以考慮將它放在其背後的穩固物件或背後，以協助進行此工作。You might consider putting it a solid object or backdrop behind it to help with this.
• 將維度加入至您的型別在3D 中感覺很不錯。Adding dimension to your type feels nice in 3D. 將類型的側邊著色為不同、較深色的色彩有助於可讀性。Shading the sides of the type a different, darker color can help with readability.

，而且內建的背景可以正常運作 Type with a built-in backdrop can work well

• 白色White
• 黑色Black
• 亮色半形色彩Bright semi-saturated color

### 要避免的色彩Colors to avoid

• 中音調Mid-tones
• 灰色Gray
• 過度飽和色彩或 desaturated 色彩Over-saturated colors or desaturated colors

## 紋理Texturing

### 最佳作法Best practices

• 如果您的應用程式啟動程式物件是針對 .PBR 而撰寫的，則將它轉換為懸崖之屋環境應該很簡單。If your app launcher object was authored for PBR, it should be straightforward to convert it for the Cliff House environment.
• 我們的著色器預期會有金屬/粗糙度的工作流程– Unreal 的 .PBR 著色器是關閉的傳真。Our shader is expecting a Metal/Roughness work flow – The Unreal PBR shader is a close facsimile.
• 匯出紋理時，請記住 建議的材質大小When exporting your textures, keep the recommended texture sizes in mind.
• 請務必為您的物件建立即時光源，這表示：Make sure to build your objects for real-time lighting—this means:
• 避免內建陰影-或繪製陰影Avoid baked shadows – or painted shadows
• 避免紋理中的內建光源Avoid baked lighting in the textures
• 使用其中一個 .PBR 材質撰寫套件來取得為著色器產生的正確對應Use one of the PBR material authoring packages to get the right maps generated for our shader