Notice
Recent Posts
Recent Comments
Link
관리 메뉴

λͺ©λ‘μ „체 κΈ€ (1110)

KoreanFoodie's Study

언리얼 λŸ°νƒ€μž„ μ• μ…‹ λ‘œλ”© ( + Soft Referencing)

ν•˜λ“œ λ ˆνΌλŸ°μ‹± vs μ†Œν”„νŠΈ λ ˆνΌλŸ°μ‹± CDO μƒμ„±μ‹œ, μƒμ„±μžμ—μ„œ μ• μ…‹μ˜ 유무λ₯Ό ν™•μΈν•˜κΈ° μœ„ν•΄ ConstructorHelpers ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•΄ 애셋을 λ‘œλ“œν•œλ‹€. ν•˜μ§€λ§Œ κ²Œμž„ μ‹œμž‘ 전에 λ°˜λ“œμ‹œ μ‘΄μž¬ν•˜λŠ”μ§€ 체크할 ν•„μš”κ°€ μ—†λŠ” κ²½μš°λ„ μžˆλŠ”λ°, μ „μžμ˜ 경우λ₯Ό ν•˜λ“œ λ ˆνΌλŸ°μ‹±(Hard Referencing), ν›„μžλ₯Ό μ†Œν”„νŠΈ λ ˆνΌλŸ°μ‹±(Soft Referencing) 이라고 ν•œλ‹€. μ†Œν”„νŠΈ λ ˆνΌλŸ°μ‹± 방식을 μ‚¬μš©ν•  μ‹œ μ• μ…‹μ˜ 정보λ₯Ό κ°€μ Έμ˜¬ λ•Œμ—λŠ” FStringAssetReference ꡬ쑰체λ₯Ό, μ• μ…‹μ˜ 클래슀 정보λ₯Ό κ°€μ Έμ˜¬ λ•Œμ—λŠ” FStringClassReference ꡬ쑰체에 경둜 정보λ₯Ό μ§€μ •ν•΄μ£Όλ©΄ λœλ‹€. μ—¬λŸ¬ 애셋을 κ°€μ Έμ˜¬ λ•ŒλŠ” TArray ν˜•μ‹μ„ μ‚¬μš©ν•˜λ©΄ λœλ‹€. ABPawn.h (λ‘œλ”©ν•œ 애셋을 μ‹€μ œ μ‚¬μš©ν•  언리얼 였브젝..

Game Dev/Unreal C++ : Study 2022. 3. 31. 12:06
언리얼 INI 파일 μ„€μ • (Unreal INI File Setting)

언리얼 INI 파일 μ„€μ • λ§Œμ•½ μΊλ¦­ν„°μ˜ HP λ₯Ό νŽΈμ§‘ν•˜κ³  싢은데, HP 값을 λ³€κ²½ν•˜κΈ° μœ„ν•΄ 맀번 캐릭터λ₯Ό μ—λ””ν„°μ—μ„œ μˆ˜μ •ν•΄μ•Ό ν•œλ‹€λ©΄ 맀우 λΉ„νš¨μœ¨μ μΌ 것이닀. 이λ₯Ό μœ„ν•΄, 언리얼은 INI νŒŒμΌμ„ μ΄μš©ν•΄ λΈ”λ£¨ν”„λ¦°νŠΈλ‚˜ λ³„λ„μ˜ 에디터 μž‘μ—…μ΄ 없이도 속성값을 λ°”κΏ€ 수 μžˆλŠ” κΈ°λŠ₯을 μ œκ³΅ν•˜κ³  μžˆλ‹€. (μ›λž˜ INI νŒŒμΌμ€ μœˆλ„μš°μ—μ„œ μ‹œμŠ€ν…œ ꡬ성 μš”μ†Œμ˜ 섀정을 μœ„ν•΄ λ§Œλ“€μ–΄μ§„ 파일 ν˜•μ‹μ΄λ‹€) INI 파일의 ν˜•μ‹μ€ 속성과 κ°’, 그리고 이 두 κ°€μ§€λ₯Ό ν¬κ΄„ν•˜λŠ” μ„Ήμ…˜μœΌλ‘œ κ΅¬μ„±λ˜μ–΄ μžˆλ‹€. μ„Ήμ…˜ : ν˜„μž¬ ν”„λ‘œμ νŠΈμ—μ„œ μ‚¬μš©ν•˜λŠ” C++ 클래슀 μ‹λ³„μž 속성 : C++ ν΄λž˜μŠ€μ—μ„œ INI λ₯Ό μ‚¬μš©ν•˜λ„λ‘ μ§€μ •ν•œ UPROPERTY 멀버 λ³€μˆ˜ κ°’ : 속성에 μ§€μ •ν•  κ°’ C++ 클래슀 μ‹λ³„μžλŠ” κ³ μœ ν•œ μ‹λ³„μžλ‘œ κ΅¬λΆ„λ˜λ©° λ‹€μŒκ³Ό 같은 ν˜•μ‹μ„ κ°€μ§„λ‹€. {..

Game Dev/Unreal C++ : Study 2022. 3. 31. 11:47
νšŒμ‚¬μΌκ³Ό κ²Œμž„κ°œλ°œ κ³΅λΆ€μ˜ 병행

..은 νž˜λ“€λ‹€. μ΄μœ λŠ” μ—¬λŸ¬κ°€μ§€ μžˆκ² μ§€λ§Œ, μ—­μ‹œ μ‹œκ°„μ΄ λΆ€μ‘±ν•˜λ‹€λŠ”κ²Œ κ°€μž₯ 큰 λ¬Έμ œλ‹€. μž¬νƒμ„ ν•œλ‹€λ©΄ 또 λͺ¨λ₯΄κ² μ§€λ§Œ, μ§€κΈˆκ°™μ€ μƒν™©μ—μ„œλŠ”.. ν‰μΌμ—λŠ” μ‹€μ œ κ°œλ°œμ— 1-2 μ‹œκ°„μ΄λ‚˜ νˆ¬μž…ν• μˆ˜ μžˆλ‚˜ μ‹Άλ‹€. 주말을 잘 ν™œμš©ν•œλ‹€κ³  ν•œλ“€ μ ˆλŒ€μ μœΌλ‘œ μ‹œκ°„μ΄ λΆ€μ‘±ν•˜λ‹€. κΈ°νšμ€ 계속 바뀐닀. κ°œλ°œμ— 무슨 진척이 μžˆλŠ”κ²ƒλ„ μ•„λ‹Œλ° λ§μƒλ§Œ λŠ˜μ–΄κ°€λŠ” λŠλ‚Œμ΄λ‹€. μ„ νƒμ˜ μ‹œκ°„μ΄ 점점 λ‹€κ°€μ˜€λŠ” 것 κ°™λ‹€. 두렡기도 ν•˜κ³  떨리기도 ν•˜μ§€λ§Œ, 두렡지 μ•Šλ‹€λ©΄ 그건 도전이 μ•„λ‹ˆλΌλŠ” 것을 μ•Œκ³  μžˆλ‹€. 그리고 도전은 μ–Έμ œλ‚˜ λ‚΄ μ˜ˆμƒμ„ λ›°μ–΄λ„˜λŠ” κ°€μΉ˜κ°€ μžˆμ—ˆλ‹€λŠ” 것도 잘 μ•Œκ³  μžˆλ‹€. λ°”μ•Όνλ‘œ 폭풍전야.

AboutMe 2022. 3. 31. 08:54
언리얼 CDO (Class Default Object) : 클래슀 κΈ°λ³Έ 객체

CDO λŠ” 무엇이고, 또 μ™œ μ‚¬μš©ν• κΉŒ μ–Έλ¦¬μ–Όμ—μ„œλŠ” λŸ°νƒ€μž„μ— λΉ λ₯Έ νƒ€μž… 체킹과 클래슀 검색을 μœ„ν•΄, 컴파일 νƒ€μž„μ—μ„œ ν΄λž˜μŠ€μ™€ νƒ€μž… λ“±μ˜ 메타 정보λ₯Ό μƒμ„±ν•œλ‹€. μ΄λŸ¬ν•œ 메타 μ •λ³΄λŠ” UClass λΌλŠ” 언리얼 ν΄λž˜μŠ€μ— λ³΄κ΄€λœλ‹€. UClass μ—λŠ” 클래슀의 계측 κ΅¬μ‘°λ‚˜ 멀버 λ³€μˆ˜/ν•¨μˆ˜μ— λŒ€ν•œ 정보가 λ“€μ–΄μžˆλ‹€. μ΄λŸ¬ν•œ UClass λ₯Ό μ΄μš©ν•˜λ©΄, λ‹¨μˆœνžˆ νƒ€μž…μ„ κ²€μƒ‰ν•˜λŠ” 것을 λ„˜μ–΄ λŸ°νƒ€μž„μ—μ„œ μΈμŠ€ν„΄μŠ€μ˜ 멀버 λ³€μˆ˜ 값을 λ³€κ²½ν•˜κ±°λ‚˜ 멀버 ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•  μˆ˜λ„ μžˆλ‹€. (Java, C# μ—μ„œλŠ” 이런 κΈ°λŠ₯을 λ¦¬ν”Œλ ‰μ…˜[Reflection] 이라고 λΆ€λ₯Έλ‹€) λŸ°νƒ€μž„ κ³Όμ •μ—μ„œλŠ” 언리얼 였브젝트λ₯Ό μ΄ˆκΈ°ν™”ν•΄μ•Ό ν•˜λŠ”λ°, μ΄λ•Œ μƒμ„±λ˜λŠ” μΈμŠ€ν„΄μŠ€κ°€ CDO(Class Default Object), 클래슀 κΈ°λ³Έ 객체이닀. 언리얼은 CDO λ₯Ό 미리 ..

Game Dev/Unreal C++ : Study 2022. 3. 30. 14:46
언리얼 였브젝트 (UObject) 의 이해

언리얼 였브젝트 언리얼 μ˜€λΈŒμ νŠΈλŠ” 언리얼 μ—”μ§„μ˜ 관리λ₯Ό λ°›λŠ” 객체이닀. 언리얼이 객체λ₯Ό κ΄€λ¦¬ν•˜κ²Œ λ˜λŠ” 이점은 μ—¬λŸ¬κ°€μ§€κ°€ μžˆλŠ”λ°, λ¨Όμ € 클래슀의 νƒ€μž…μ²΄ν‚Ήμ„ λΉ λ₯΄κ³  κ°„νŽΈν•˜κ²Œ ν•  수 μžˆλ‹€λŠ” 것, 그리고 κ°€λΉ„μ§€ μ»¬λ ‰μ…˜μ„ μžλ™μœΌλ‘œ ν•΄ μ£ΌλŠ” 것 등이 μžˆκ² λ‹€. 언리얼 μ˜€λΈŒμ νŠΈλŠ” U 둜 μ‹œμž‘ν•˜κ³ , 일반 C++ μ˜€λΈŒμ νŠΈλŠ” F 둜 μ‹œμž‘ν•˜λŠ” 것을 ꢌμž₯ν•˜κ³  μžˆλ‹€. 언리얼 였브젝트의 전체 νŠΉμ§•μ€ λ‹€μŒκ³Ό κ°™λ‹€ : CDO(Class Default Object) : 객체의 초기 값을 자체적으둜 관리 Reflection : 객체 정보λ₯Ό λŸ°νƒ€μž„μ—μ„œ μ‹€μ‹œκ°„ μ‘°νšŒκ°€ κ°€λŠ₯ GC(Garbage Collection) : μ°Έμ‘°λ˜μ§€ μ•ŠλŠ” 객체λ₯Ό λ©”λͺ¨λ¦¬μ—μ„œ μžλ™ ν•΄μ œν•  수 있음 Serialization : 객체와 속성 정보λ₯Ό ν†΅μœΌλ‘œ μ•ˆμ „ν•˜κ²Œ λ³΄κ΄€ν•˜κ³ ..

Game Dev/Unreal C++ : Study 2022. 3. 30. 14:20
언리얼 λΉŒλ“œ μ‹œμŠ€ν…œ μš”μ•½ (Unreal Build System)

언리얼 λΉŒλ“œ μ‹œμŠ€ν…œ κ·Έλ ‡λ‹€λ©΄ UClass νƒ€μž…μ˜ μ •λ³΄λŠ” 무엇이고 μ‹€μ œ 객체의 μ •λ³΄λŠ” λ¬΄μ—‡μΌκΉŒ? 이λ₯Ό μ΄ν•΄ν•˜κΈ° μœ„ν•΄μ„œλŠ”, 언리얼 λΉŒλ“œ μ‹œμŠ€ν…œμ— λŒ€ν•΄ 곡뢀할 ν•„μš”κ°€ μžˆλ‹€. (λ””ν…ŒμΌν•œ λ‚΄μš©μ€ μ΄λ“μš°λ‹˜ λΈ”λ‘œκ·Έλ₯Ό 참쑰함) λ¨Όμ €, 언리얼은 크둜슀 ν”Œλž«νΌμœΌλ‘œ λ™μž‘ν•΄μ•Ό ν•˜κΈ° λ•Œλ¬Έμ—, ν”„λ‘œμ νŠΈμ˜ 폴더 ꡬ쑰와 μ†ŒμŠ€νŒŒμΌμ„ 기반으둜 언리얼 λΉŒλ“œ 툴이 OS 에 λ§žλŠ” μ†”λ£¨μ…˜μ„ μƒμ„±ν•˜κ²Œ λœλ‹€. λΉ„μ£Όμ–Ό μŠ€νŠœλ””μ˜€μ—μ„œ λΉŒλ“œμ‹œ, Editor 둜 λλ‚˜λŠ” 섀정을 ν΄λ¦­ν•˜λ©΄ μ—λ””ν„°μš© dll 을 μƒμ„±ν•˜λŠ” ꡬ성이며, Editor κ°€ λΆ™μ–΄ μžˆμ§€ μ•Šμ„ 경우 μ‹€ν–‰μš© exe νŒŒμΌμ„ μƒμ„±ν•œλ‹€. 즉, Development Editor 섀정을 λˆ„λ₯΄λ©΄ 디버깅할 수 μžˆλŠ” 개발 λ²„μ „μœΌλ‘œ, μ—λ””ν„°μš© dll 을 λ§Œλ“€λ„λ‘ μ»΄νŒŒμΌλœλ‹€. 컴파일된 dll νŒŒμΌλ“€μ€ interm..

Game Dev/Unreal C++ : Study 2022. 3. 30. 13:58