Skip to content

Project Kaya for mobile game platform

Notifications You must be signed in to change notification settings

Hengle/ProjectKaya

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

77 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

ProjectKaya

image

ํ”„๋กœ์ ํŠธ ์นด์•ผ๋Š” ์œ ๋‹ˆํ‹ฐ ์ฝ”๋ฆฌ์•„์—์„œ ์ง„ํ–‰ํ•˜๋Š” URP๋ฅผ ํ™œ์šฉํ•œ ๋ชจ๋ฐ”์ผ ์˜ˆ์ œ ํ”„๋กœ์ ํŠธ ์ž…๋‹ˆ๋‹ค.
๊ณต๊ฐœ๋œ repository๋Š” ์ง€์†์ ์œผ๋กœ ์—…๋ฐ์ดํŠธ ๋˜๋ฉฐ, ์‚ฌ์šฉ์ž๊ฐ€ ํ”„๋กœ์ ํŠธ์— ๊ธฐ์—ฌํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
Mobile Platform์„ ์œ„ํ•œ ์ถ”๊ฐ€์ ์ธ ์ตœ์ ํ™”๋Š” ๋ชจ๋ฐ”์ผ ๊ฒŒ์ž„ ์„ฑ๋Šฅ ์ตœ์ ํ™” 01 ๋ชจ๋ฐ”์ผ ๊ฒŒ์ž„ ์„ฑ๋Šฅ ์ตœ์ ํ™” 02 ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ๋ณด๋‹ค ๋งŽ์€ ์ •๋ณด๋Š” Unity Webinar์™€ UniteSeoul 2020 Session ์˜์ƒ์„ ์ฐธ๊ณ  ๋ฐ”๋ž๋‹ˆ๋‹ค.

Project Kaya๋Š” Unity Technologies Korea์˜ URP ๋ชจ๋ฐ”์ผ ํ”Œ๋žซํผ์„ ์‚ฌ์šฉํ•˜๋Š” Unity ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ์˜ˆ์‹œ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค. ์œ ๋‹ˆํ‹ฐ ํ”„๋กœ์ ํŠธ ๋‚ด์—์„œ ๋ณธ ํ”„๋กœ์ ํŠธ์˜ ์ž์›์„ ์ƒ์—…์ /๋น„ ์ƒ์—…์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ํ—ˆ์šฉ๋˜์ง€๋งŒ ์žฌ๋ฐฐํฌ๋Š” ํ—ˆ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ์˜ ์ €์ž‘๊ถŒ์€ ์œ ๋‹ˆํ‹ฐ์ฝ”๋ฆฌ์•„์— ์žˆ์Šต๋‹ˆ๋‹ค. ๋ผ์ด์„ผ์Šค์™€ ๊ด€๋ จํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ”„๋กœ์ ํŠธ๋‚ด์˜ Asset End User License Agreement ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”.
Project Kaya is an example project for unity users using URP mobile platform from Unity Technologies Korea. Commercial/non-commercial use of this project's resources is permitted in the unity project, but redistribution is not permitted. All right reserved by copyrights of this project belong to Unity Korea.For further details, please refer to the Asset End User License Agreement document in the project.

released note(kaya ver 1.1)

  • UI anchor setting, UI Transform ์ •๋ฆฌ
  • skill, action UI layout ๋ณ€๊ฒฝ. ๊ธฐํƒ€ ์„ธ๋ถ€์‚ฌํ•ญ ์ •๋ฆฌ
  • Hierarchy ์ •๋ฆฌ
  • Material example scene ๊ฐœ์„ ์ค‘(์ˆ˜์ • ์˜ˆ์ •)
  • shader graph node ์ˆ˜์ •

Requirement

  • at least Unity 2021.3.2f1 LTS (Android module required) or above (2021.1.13f1 ์ด์ „ ๋ฒ„์ „์€ ์ฃผ์„ ์ฒ˜๋ฆฌ๋œ unpacknormal์„ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.)
  • URP 12.1
  • Android Platform module Required
  • Vulkan API supported(Visual Effect Graph๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ES 3.1์ด์ƒ)
  • ์œˆ๋„์šฐ ํ„ฐ๋ฏธ๋„, cmd, git bash ๋“ฑ์—์„œ ๋ช…๋ น์–ด ์‹คํ–‰ git clone https://github.com/UnityKorea/ProjectKaya

editor setting

image
Kaya project๋Š” android ํ”Œ๋žซํผ์„ ๊ธฐ์ค€์œผ๋กœ ์ž‘์—…๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด์„œ editor๋ฅผ ์ด์™€ ๊ฐ™์€ ํ™˜๊ฒฝ์œผ๋กœ ์…‹ํŒ…ํ•ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ปค๋งจ๋“œ๋ผ์ธ ์ธ์ž ์ถ”๊ฐ€์— -force-vulkan์„ ์ž…๋ ฅํ•ด vulkan api๋กœ ๋™์ž‘ํ•˜๋„๋ก ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
image
ํ”Œ๋žซํผ์„ android๋กœ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค(์—๋””ํ„ฐ ์„ค์น˜์‹œ์— android ๋ชจ๋“ˆ์ด ์„ค์น˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค
image

Project Setting

Renderer setting

Anti Aliasing

๋ชจ๋ฐ”์ผ ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉํ•˜๋Š” MSAA ์˜ต์…˜์€ ํ”„๋กœ์ ํŠธ ์ƒํ™ฉ์— ๋”ฐ๋ผ ์ ์ ˆํ•˜๊ฒŒ ์กฐ์ ˆํ•ด์ฃผ๋Š”๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” MSAA ์ƒ˜ํ”Œ๋ง ์ˆ˜์— ๋”ฐ๋ฅธ ๋ฉ”์‹œ ์™ธ๊ณฝ์˜ ํ€„๋ฆฌํ‹ฐ ๋น„๊ต์ž…๋‹ˆ๋‹ค. quality setting์ด Low, medium, high์— ๋”ฐ๋ผ ์•„๋ž˜์™€ ๊ฐ™์ด ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.
image

Resource Compression

๋Œ€๋ถ€๋ถ„์˜ Texture compression์€ ASTC ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ผ๋ถ€ ๋ฆฌ์†Œ์Šค์˜ ๊ฒฝ์šฐ ์••์ถ•ํ•˜์ง€ ์•Š์€ RGB24 ํ˜น์€ RGBA32์ž…๋‹ˆ๋‹ค.
image
- 2048 normal texture๋ฅผ ASTC12x12(0.6MB)์œผ๋กœ ์••์ถ•ํ•œ๊ฒƒ(์ขŒ)๊ณผ ASTC6x6(2.4MB)๋กœ ์••์ถ•ํ•œ ๊ฒฐ๊ณผ(์šฐ) ๋น„๊ต
Albedo texture์˜ ๊ฒฝ์šฐ๋ณด๋‹ค normal texture์—์„œ ์ด๋Ÿฐ ์ฆ์ƒ์ด ๋‘๋“œ๋Ÿฌ์ง€๋ฉฐ ์ด๋Ÿด๊ฒฝ์šฐ๋Š” ๋ฆฌ์†Œ์Šค ์••์ถ• ํฌ๋งท๊ณผ ์˜ต์…˜์„ ์ง์ ‘ ์„ ํƒํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

Scene List

Lobby scene์€ ๋กœ๋น„ ๊ตฌํ˜„์— ํ•„์š”ํ•œ ์—ฐ์ถœ๊ณผ shader ์˜ˆ์ œ๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
Animation type์€ Generic์œผ๋กœ mechanim์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

Lobby Scene


FPS Counter & information display

image

  • Frame Rate Counter : ํ™”๋ฉด ์™ผ์ธก ์ƒ๋‹จ์—๋Š” ํ˜„์žฌ Frame Rate์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ฐ€๋ฆฌ์„ธ์ปจ(millisecond, ms)๊ณผ ํ”„๋ ˆ์ž„์œผ๋กœ ํ‘œ์‹œ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • Display pixel Resoultion : Rendering ๋˜๊ณ  ์žˆ๋Š” ํ˜„์žฌ ํ•ด์ƒ๋„๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
  • Graphics API : ํ˜„์žฌ ๋ Œ๋”๋ง ๋˜๊ณ  ์žˆ๋Š” Graphics API ์ •๋ณด๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

Cinemachine

Lobby Scene์—์„œ ์นด๋ฉ”๋ผ ์ „ํ™˜์€ Cinemachine์„ ํ™œ์šฉํ•ด์„œ ์ด๋ฃจ์–ด์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์นด๋ฉ”๋ผ์˜ Priority๊ฐ’์„ UI์—์„œ ๋ฐ”๊ฟ”์คŒ์œผ๋กœ์จ ์นด๋ฉ”๋ผ๊ฐ„ ์ „ํ™˜์ด ์ด๋ฃจ์–ด์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
image
Scene์— CinemachineVirtualCamera๋ฅผ ๋ฐฐ์น˜ํ•˜๋ฉด ์นด๋ฉ”๋ผ๋Š” ํ•ด๋‹น ๋ฒ„์ถ”์–ผ ์นด๋ฉ”๋ผ์˜ ํฌ์ง€์…˜์œผ๋กœ ์ด๋™ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
kayaCinemachine

  • 1๋ฒˆ ์นด๋ฉ”๋ผ : ์–ผ๊ตด ๊ทผ์ ‘ CM Face Shot. 1๋ฒˆ ์นด๋ฉ”๋ผ์—๋งŒ Depth of Field๊ฐ€ ์ ์šฉ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
    image
  • 2๋ฒˆ ์นด๋ฉ”๋ผ : ์ „์‹  CM FullBody shot
    image
  • 3๋ฒˆ ์นด๋ฉ”๋ผ : ์Šคํ‚ฌ CM Skill Shot
    image

Realtime Reflection

Render texture์™€ shader custom์„ ํ†ตํ•œ ์‹ค์‹œ๊ฐ„ reflection์„ ๊ตฌํ˜„ํ•œ ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค.
image
image

  • Resoultion Mutiplier : ๋ Œ๋”๋ง๋˜๋Š” ๋ฐ˜์‚ฌ์ด๋ฏธ์ง€์˜ ํ•ด์ƒ๋„๋ฅผ ์„ค์ •
  • Clip Plane Offset : ๋ฐ˜์‚ฌ๋˜๋Š” ์ด๋ฏธ์ง€์˜ ์‹œ์ž‘์ ์„ ์„ค์ •
  • Reflect Layer : ๋ฐ˜์‚ฌ๋ฅผ ์ ์šฉํ•  ์˜ค๋ธŒ์ ํŠธ ๋ ˆ์ด์–ด๋ฅผ ์„ ํƒ
  • Draw Dithering : ์บ๋ฆญํ„ฐ ๋””๋”๋ง์„ ๋ฐ˜์‚ฌ์— ๊ทธ๋ฆด์ง€ ์—ฌ๋ถ€

image

PBR Custom Shader(Shader Graph)


image
kaya์— ์“ฐ์ด๋Š” ๊ธฐ๋ณธ shader๋Š” URP Lit shader๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ shader graph์—์„œ ์ œ์ž‘ํ•œ ์…ฐ์ด๋”๊ฐ€ ์“ฐ์ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
ํ•˜๋‚˜์˜ ์บ๋ฆญํ„ฐ ๊ธˆ์†, ์ฒœ, ๊ฐ€์ฃฝ๋“ฑ ๋‹ค์–‘ํ•œ ์žฌ์งˆ์„ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์บ๋ฆญํ„ฐ ์ปจ์…‰์—์„œ๋ถ€ํ„ฐ ์ด๋Ÿฐ ์ ์„ ๊ณ ๋ คํ•˜์—ฌ ์ง„ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
image
Shader Graph๋ฅผ ์‚ฌ์šฉํ•ด์„œ Lit shader์˜ metallic๊ณผ smoothness, AO๋ฅผ ํ•˜๋‚˜์˜ mask texture๋กœ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์—ˆ์œผ๋ฉฐ, smoothness ๊ฐ’์€ remap์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

Character Object Overdraw(Shader Graph)

image
์บ๋ฆญํ„ฐ๊ฐ€ ์˜ค๋ธŒ์ ํŠธ์— ๊ฒน์ณ์งˆ๋•Œ์˜ ํ‘œ์‹œ๋Š” Renderer์˜ Render Features๋ฅผ ์‚ฌ์šฉํ•ด ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Universal Rendering Examples์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
image
Character Layer๋งŒ ๊ทธ๋ฆฌ์ง€ ์•Š๊ณ  Dither๋ฅผ Depth Testํ›„ opaque๋ฅผ ๊ทธ๋ฆฐ๋’ค(AfterRenderingOpaques) ๋‚˜๋จธ์ง€๋ฅผ ๊ทธ๋ฆฌ๊ฒŒ ์„ค์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

Hair shader(Shader Graph)


UTKTemplate/URPHairKajiyaKay

kaya01
ํ—ค์–ด์…ฐ์ด๋”์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” UV๋ฅผ ์„ธ๋กœ๋กœ ํŽด์ง€ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ด ์•„๋‹Œ flowmap์„ ์‚ฌ์šฉํ•ด ๋ผ์ดํŒ…์„ ๊ตฌํ˜„ํ•œ ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค. flowmap์œผ๋กœ ํ—ค์–ด์˜ ๋ฐฉํ–ฅ์„ ๊ธฐ๋กํ•˜๊ณ  shiftmap์œผ๋กœ ํ•˜์ด๋ผ์ดํŠธ์˜ ์œ„์น˜๋ฅผ ์กฐ์ ˆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
flowmap์€ ํ›„๋””๋‹ˆ์—์„œ LabsFlowmap ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋จธ๋ฆฌ์นด๋ฝ์˜ ๋ฐฉํ–ฅ๋Œ€๋กœ vector์„ ์ •ํ•˜๊ณ  ๊ทธ๊ฑธ ๋ Œ๋”๋งํ•ด์„œ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
image
์‚ฌ์šฉ์‹œ์— ํ…์Šค์ณ์˜ sRGB์˜ต์…˜(Gamma correction)์„ ๋„๊ณ  ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
image

์ด ์…ฐ์ด๋”๋Š” addlight, addlightshadow ๊นŒ์ง€ ๋ชจ๋‘ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
image

Shader Graphs/KajiyaKay

image
์œ„๋ฐฉ์‹๊ณผ ๋‹ค๋ฅด๊ฒŒ Shader Graph๋กœ ์ž‘์„ฑ๋˜์–ด์žˆ์œผ๋ฉฐ, ๋‘๊ฐœ์˜ ํ•˜์ด๋ผ์ดํŠธ๋ฅผ ์กฐ์ ˆํ•ด ํ—ค์–ด์˜ ํ•˜์ด๋ผ์ดํŠธ๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

Skin shader(Shader Graph)


image
SSS(SubSurface Scattering)์˜ ๊ตฌํ˜„์€ Shader Graph๋ฅผ ์‚ฌ์šฉํ•ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Skin Texture์˜ Alpha Channel์ด Thickness map์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

Animation Setting

Rig Setting

Animation Setting์€ Generic์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์œ ๋‹ˆํ‹ฐ์˜ Humanoid๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ฆฌํƒ€๊ฒŸํŒ…์„ ๋ชฉ์ ์œผ๋กœ ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ๊ถŒ์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ œ๋„ˆ๋ฆญ๊ณผ ํœด๋จธ๋…ธ์ด๋“œ์˜ ์ตœ์ ํ™” ๊ด€๋ จ ๋ฌธ์„œ๋Š” unity forum์˜ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.์บ๋ฆญํ„ฐ์˜ Rig setting์€ Model์˜ optimize Game Objects๋ฅผ ํด๋ฆญํ•ด ์„ฑ๋Šฅ์„ ๋†’์ด๋ฉฐ, ์‚ฌ์šฉํ•˜๋Š” ๋ฌด๊ธฐ ์Šฌ๋กฏ๋งŒ ํ•˜์ด๋ผํ‚ค์— ๋…ธ์ถœํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค(Extra Transforms to Expose)
image ๋ณธ์˜ ๊ฐฏ์ˆ˜๋Š” 88๊ฐœ ์ž…๋‹ˆ๋‹ค.

VFX Setting

Scene VFX

image
๋ฐฐ๊ฒฝ์— ์“ฐ์ธ VFX Graph๋Š” ๋‚ฎ์—๋Š” ๋ฒ›๊ฝƒ, ๋ฐค์—๋Š” ๋ถˆ์”จ๊ฐ€ ํฉ๋‚ ๋ฆฌ๋ฉฐ ์ถ”๊ฐ€๋กœ ๋ฐค์—” ๋ถˆ๊ธธ์„ VFX Graph๋กœ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.
image

Character VFX

์บ๋ฆญํ„ฐ 1๋ฒˆ๊ณผ 2๋ฒˆ ์Šฌ๋กฏ์˜ ์Šคํ‚ฌ์—๋Š” ์บ๋ฆญํ„ฐ ์ดํŽ™ํŠธ๊ฐ€ ๋ถ™์–ด์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ดํŽ™ํŠธ๋Š” shuriken์ด ์•„๋‹Œ Visual effect graph๋กœ ์ œ์ž‘๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
UTKTemplate01_skillv1_3
์‹ค์ œ ๋ชจ๋ฐ”์ผ ๋นŒ๋“œ์‹œ OpenGL ES 3.2 ํ™˜๊ฒฝ์—์„œ๋„ ์ œ๋Œ€๋กœ ์ถœ๋ ฅ๋˜์ง€ ์•Š๋Š” ๋ถ€๋ถ„๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค.(vulkan ๊ถŒ์žฅ)
image

UserInterface


์ „์ฒด์ ์œผ๋กœ ์•ต์ปค ์ ์šฉํ•˜์—ฌ ์ปดํฌ๋„ŒํŠธ ๋ฐฐ์น˜๋ฅผ ๊ฐœ์„ ํ•˜๊ณ  ํ…Œ๋งˆ๋ฅผ ์ผ์น˜ํ•˜๋Š” ์—…๋ฐ์ดํŠธ๊ฐ€ ์ง„ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Lobby Scene

image
image

Action Scene

image image

UTK_LobyEffectcherry_re
** Unity Technologies Korea Evangelism dev 2021

About

Project Kaya for mobile game platform

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 48.6%
  • ShaderLab 43.5%
  • HLSL 7.9%