πŸ“ Game/✏ Unreal

    [Unreal][C++] 1인칭 μŠˆνŒ… νŠœν† λ¦¬μ–Ό

    [Unreal][C++] 1인칭 μŠˆνŒ… νŠœν† λ¦¬μ–Ό

    1인칭 μŠˆνŒ… νŠœν† λ¦¬μ–Όhttps://docs.unrealengine.com/5.3/ko/first-person-shooter-tutorial-in-unreal-engine/ μΌμΈμΉ­ μŠˆνŒ… C++ νŠœν† λ¦¬μ–ΌμΌμΈμΉ­ μŠˆνŒ… κ²Œμž„ λ©”μ»€λ‹ˆμ¦˜ κ΅¬ν˜„ 방법을 λ°°μ›Œλ΄…λ‹ˆλ‹€.docs.unrealengine.com 1. ν”„λ‘œμ νŠΈ κ΅¬μ„±ν•˜κΈ°1) ν”„λ‘œμ νŠΈ μƒμ„±μƒˆ ν”„λ‘œμ νŠΈ λ‚΄ 맡을 μƒμ„±ν•˜κ³ , κ·Έ 맡을 에디터 μ‹œμž‘ 맡으둜 μ§€μ •ν•œλ‹€. κ²Œμž„ ν”„λ‘œμ νŠΈ μΉ΄ν…Œκ³ λ¦¬ λ‚΄ κΈ°λ³Έ(Blank) ν…œν”Œλ¦Ώ 선택C++ ν”„λ‘œμ νŠΈ νƒ€μž… μ„ νƒμ‹œμž‘μš© μ½˜ν…μΈ  λΉ„ν™œμ„±ν™”ν”„λ‘œμ νŠΈ 이름 FPSProject 지정 FPS 맡 μƒμ„±ν”„λ‘œμ νŠΈ μ„ΈνŒ…μ—μ„œ 에디터 μ‹œμž‘ 맡 μ„€μ • 2) κ²Œμž„λͺ¨λ“œ C++ ν΄λž˜μŠ€λ₯Ό λΈ”λ£¨ν”„λ¦°νŠΈ 클래슀둜 ν™•μž₯ν•˜κΈ°κ²Œμž„λͺ¨λ“œ C++ 클래슀λ₯Ό 베이슀둜 λΈ”λ£¨ν”„λ¦°νŠΈ 클래슀λ₯Ό μƒμ„±ν•œ ..

    [Unreal][Lyra] 캐릭터

    [Unreal][Lyra] 캐릭터

    1. Native Parent Class λΌμ΄λΌμ—λŠ” λ‹€μ–‘ν•œ κ²½ν—˜κ³Ό 레벨이 μžˆλŠ” 만큼 각각 λ‹€λ₯Έ Pawn을 μ‚¬μš©ν•˜κ³  μžˆλ‹€. 보톡 Pawn듀은 λ”°λ‘œ κ°œλ°œλ˜λŠ” 것이 μ•„λ‹Œ ν•˜λ‚˜μ˜ ν΄λž˜μŠ€μ—μ„œ νŒŒμƒλ˜μ–΄ κ·Έ λΆ€λͺ¨ 클래슀λ₯Ό 상속받고 νŠΉμ„±μ΄ 따라 μžμ‹ 클래슀 μ•ˆμ—μ„œ λ‹€λ₯΄κ²Œ 개발되게 λœλ‹€. μ΄λŸ¬ν•œ Pawnλ“€μ˜ Native Parent ClassλŠ” λ°”λ‘œ LyraCharacter이닀. μ—¬κΈ°μ„œ Native Parent Classλž€ C++에 μ •μ˜λœ λΆ€λͺ¨ ν΄λž˜μŠ€μ΄λ‹€. λ§Œμ•½ A λΈ”λ£¨ν”„λ¦°νŠΈ 클래슀λ₯Ό λ‹€λ₯Έ B λΈ”λ£¨ν”„λ¦°νŠΈ ν΄λž˜μŠ€μ—μ„œ νŒŒμƒν•  경우, A의 λΆ€λͺ¨ ν΄λž˜μŠ€λŠ” B λΈ”λ£¨ν”„λ¦°νŠΈ 클래슀둜 λ‹¬λΌμ§ˆ 수 μžˆμ§€λ§Œ Native Parent ClassλŠ” μ—¬μ „νžˆ B의 Native Parent Classλ₯Ό λ”°λΌκ°ˆ 것이닀. 2. LyraCharacter..

    [Unreal][Lyra] ν–₯μƒλœ μž…λ ₯

    [Unreal][Lyra] ν–₯μƒλœ μž…λ ₯

    1. ν–₯μƒλœ μž…λ ₯ ν–₯μƒλœ μž…λ ₯은 λ³΅μž‘ν•œ μž…λ ₯ μ²˜λ¦¬μ™€ μ‹€μ‹œκ°„ μž…λ ₯ 리맀핑을 μœ„ν•œ μž…λ ₯ 처리 μ‹œμŠ€ν…œμ΄λ‹€. λΉ λ₯Έ 반볡 μž‘μ—…κ³Ό λͺ¨λ“ˆμ„± μ• μ…‹ 기반 ν™˜κ²½μ—μ„œ μ›μ‹œ μž…λ ₯ λ°μ΄ν„°μ˜ 필터링 및 처리λ₯Ό ν™•μž₯ν•  수 μžˆλŠ” λŠ₯λ ₯ 제곡 ν–₯μƒλœ μž…λ ₯을 μ‚¬μš©ν•˜λ €λ©΄, ν”ŒλŸ¬κ·ΈμΈ ν™œμ„±ν™” 및 μž…λ ₯ μ„ΈνŒ…μ„ λ³€κ²½ν•΄μ•Ό ν•œλ‹€. 1) μž…λ ₯ μ•‘μ…˜(Input Actions) μž…λ ₯ μ•‘μ…˜μ€ ν–₯μƒλœ μž…λ ₯ μ‹œμŠ€ν…œκ³Ό ν”„λ‘œμ νŠΈ μ½”λ“œ μ‚¬μ΄μ˜ 톡신 링크이닀. μƒν˜Έμž‘μš© μΊλ¦­ν„°μ˜ μ–΄λ–€ 행동이든 μž…λ ₯ μ•‘μ…˜μ΄ 될 수 μžˆλ‹€. 쀍기(on/off), κ±·κΈ°(μΆ•) λ“± μ•‘μ…˜ νŠΉμ§•μ— 따라 μž…λ ₯ κ°’ νƒ€μž…μ΄ λ‹¬λΌμ§ˆ 수 μžˆλ‹€. 폰 ν΄λž˜μŠ€κ°€ 트리거 된 μž…λ ₯ μ•‘μ…˜μ— λ°˜μ‘ν•˜κ²Œ ν•˜λ €λ©΄ λΈ”λ£¨ν”„λ¦°νŠΈ κ·Έλž˜ν”„μ— 이벀트λ₯Ό μΆ”κ°€ν•΄μ•Ό ν•œλ‹€. 각 μž…λ ₯ μ•‘μ…˜μ€ ν•΄λ‹Ήν•˜λŠ” μ• μ…‹ 이름을 가진 이벀트λ₯Ό μƒμ„±ν•œλ‹€. 이후 ..

    [Unreal][Lyra] κ²Œμž„ν”Œλ ˆμ΄ μ–΄λΉŒλ¦¬ν‹° μ‹œμŠ€ν…œ(GAS)

    [Unreal][Lyra] κ²Œμž„ν”Œλ ˆμ΄ μ–΄λΉŒλ¦¬ν‹° μ‹œμŠ€ν…œ(GAS)

    1. κ²Œμž„ν”Œλ ˆμ΄ μ–΄λΉŒλ¦¬ν‹° μ‹œμŠ€ν…œ(Gameplay Ability System) GASλŠ” μ–΄λΉŒλ¦¬ν‹° 및 μ–΄νŠΈλ¦¬λ·°νŠΈ μœ ν˜•μ„ κ΅¬μΆ•ν•˜κΈ° μœ„ν•œ ν”„λ ˆμž„μ›Œν¬μ΄λ‹€. λΉ λ₯Έ 반볡 μž‘μ—…κ³Ό λͺ¨λ“ˆμ„±: μ ν”„μ²˜λŸΌ λ‹¨μˆœν•œ 것뢀터 기술 λͺ¨μŒμ²˜λŸΌ λ³΅μž‘ν•œ κ²ƒκΉŒμ§€ λ‹€μ–‘ν•œ μΈκ²Œμž„ μ–΄λΉŒλ¦¬ν‹°λ₯Ό 섀계 및 κ΅¬ν˜„ν•˜κ³  효과적으둜 μ—°κ²°ν•  수 μžˆλ‹€. λ„€νŠΈμ›Œν¬ λ¦¬ν”Œλ¦¬μΌ€μ΄μ…˜ GAS의 μ£Όμš” κ°œλ…μ€ λ‹€μŒκ³Ό κ°™λ‹€. μ–΄λΉŒλ¦¬ν‹° μ‹œμŠ€ν…œ μ»΄ν¬λ„ŒνŠΈ(Ability System Component) κ²Œμž„ν”Œλ ˆμ΄ μ–΄λΉŒλ¦¬ν‹° μ‹œμŠ€ν…œκ³Ό μƒν˜Έμž‘μš©ν•˜λŠ” 앑터에 λΆ™λŠ” μ»΄ν¬λ„ŒνŠΈμ΄λ‹€. μ–΄λΉŒλ¦¬ν‹°λ₯Ό ν™œμ„±ν™”ν•˜κ³ , μ–΄νŠΈλ¦¬λ·°νŠΈλ₯Ό μ €μž₯ν•˜κ³ , μ΄νŽ™νŠΈλ₯Ό μ—…λ°μ΄νŠΈν•˜κ³ , μ•‘ν„° κ°„ μƒν˜Έμž‘μš©μ„ μ²˜λ¦¬ν•œλ‹€. κ²Œμž„ν”Œλ ˆμ΄ μ–΄λΉŒλ¦¬ν‹°(Gameplay Abilities) UGameplayAbility 클래슀의 C++ λ˜λŠ” λΈ”λ£¨ν”„λ¦°νŠΈ ..

    [Unreal][Lyra] λͺ¨λ“ˆν˜• κ²Œμž„ν”Œλ ˆμ΄, κ²Œμž„ ν”Όμ²˜ ν”ŒλŸ¬κ·ΈμΈ, κ²½ν—˜

    [Unreal][Lyra] λͺ¨λ“ˆν˜• κ²Œμž„ν”Œλ ˆμ΄, κ²Œμž„ ν”Όμ²˜ ν”ŒλŸ¬κ·ΈμΈ, κ²½ν—˜

    1. λͺ¨λ“ˆν˜• κ²Œμž„ν”Œλ ˆμ΄ κ²Œμž„ν”Œλ ˆμ΄ ν”„λ ˆμž„μ›Œν¬μ—μ„œ μ œκ³΅ν•˜λŠ” λͺ¨λ“ˆν˜• κ²Œμž„ν”Œλ ˆμ΄λŠ” ν•˜λ‚˜μ˜ κΈ°λŠ₯을 독립적인 λΆ€ν’ˆμœΌλ‘œ λΆ„λ¦¬ν•˜μ—¬ κ΄€λ¦¬ν•˜λŠ” κ²ƒμœΌλ‘œ μ™„μ „νžˆ μœ μ—°ν•œ κ²Œμž„ν”Œλ ˆμ΄ μ œμž‘μ΄ κ°€λŠ₯ν•˜λ„λ‘ λ§Œλ“€μ–΄μ€€λ‹€. 2. κ²Œμž„ ν”Όμ²˜ ν”ŒλŸ¬κ·ΈμΈ 1) ν”ŒλŸ¬κ·ΈμΈ ν”ŒλŸ¬κ·ΈμΈμ€ 언리얼 엔진에 νŠΉμ • κΈ°λŠ₯을 μΆ”κ°€ν•΄ μ£ΌλŠ” 선택적 μ†Œν”„νŠΈμ›¨μ–΄ μ»΄ν¬λ„ŒνŠΈμ΄λ‹€. ν”ŒλŸ¬κ·ΈμΈμ„ μ΄μš©ν•΄ 언리얼 엔진 μ½”λ“œλ₯Ό 직접 μˆ˜μ •ν•˜μ§€ μ•Šκ³  μ™„μ „νžˆ μƒˆλ‘œμš΄ κΈ°λŠ₯을 μΆ”κ°€ν•˜κ±°λ‚˜ λ‚΄μž₯된 κΈ°λŠ₯을 μˆ˜μ •ν•  수 μžˆλ‹€. 예λ₯Ό λ“€μ–΄ μƒˆ 메뉴 ν•­λͺ©κ³Ό νˆ΄λ°” λͺ…령을 에디터에 μΆ”κ°€ν•˜κ±°λ‚˜, 심지어 μ™„μ „νžˆ μƒˆλ‘œμš΄ κΈ°λŠ₯ λ°‘ 에디터 μ„œλΈŒ λͺ¨λ“œλ₯Ό μΆ”κ°€ν•  μˆ˜λ„ μžˆλ‹€. 2) κ²Œμž„ ν”Όμ²˜ ν”ŒλŸ¬κ·ΈμΈ λͺ¨λ“ˆν˜• κ²Œμž„ν”Œλ ˆμ΄μ˜ κ·Όκ°„μ΄μž κ°€μž₯ μ€‘μš”ν•œ μ‹œμž‘ ν¬μΈνŠΈμ΄λ‹€. κΈ°μ‘΄ κ²Œμž„μ—μ„œλŠ” κΈ°λ³Έ ꡬ성 λ™μž‘ 방식듀을 κ²Œμž„μ— λ‹€ ν¬ν•¨ν•˜κ³  μ½˜ν…..

    [Unreal] κ²Œμž„ν”Œλ ˆμ΄ ν”„λ ˆμž„μ›Œν¬

    [Unreal] κ²Œμž„ν”Œλ ˆμ΄ ν”„λ ˆμž„μ›Œν¬

    1. μΈν„°λž™ν‹°λΈŒ κ²½ν—˜ μ œμž‘ν”Œλ ˆμ΄μ–΄μ™€ μ›”λ“œ 간에 μ›ν™œν•œ μΈν„°λž™μ…˜μ„ κ΅¬ν˜„ν•  수 μžˆλ„λ‘ 언리얼 μ—”μ§„μ—μ„œλŠ” κΈ°λ³Έ κ²Œμž„ν”Œλ ˆμ΄ ν”„λ ˆμž„μ›Œν¬ 외에도 AI, ν”Όμ§μŠ€ λ“± 일반적인 κ²Œμž„ν”Œλ ˆμ΄ μ—˜λ¦¬λ¨ΌνŠΈλ₯Ό λ‹€λ£¨λŠ” λ‹€μ–‘ν•œ μ‹œμŠ€ν…œκ³Ό ν”„λ ˆμž„μ›Œν¬λ₯Ό μ œκ³΅ν•œλ‹€. 2. κ²Œμž„ν”Œλ ˆμ΄ ν”„λ ˆμž„μ›Œν¬κ²Œμž„ν”Œλ ˆμ΄ ν”„λ ˆμž„μ›Œν¬λŠ” 곡톡 κ²Œμž„ν”Œλ ˆμ΄ μš”μ†Œλ₯Ό μ²˜λ¦¬ν•˜λŠ” 핡심 μ‹œμŠ€ν…œ 및 ν”„λ ˆμž„μ›Œν¬κ°€ ν¬ν•¨λ˜μ–΄ μžˆλ‹€.μ•‘ν„°, μ»΄ν¬λ„ŒνŠΈμΉ΄λ©”λΌμ»¨νŠΈλ‘€λŸ¬κ²Œμž„ κ·œμΉ™κ²Œμž„ λͺ¨λ“œν”Œλ ˆμ΄μ–΄ μž…λ ₯κ²Œμž„ν”Œλ ˆμ΄ νƒ€μ΄λ¨Έμœ μ € μΈν„°νŽ˜μ΄μŠ€ λ˜ν•œ μ–Έλ¦¬μ–Όμ—μ„œλŠ” μœ„μ˜ μš”μ†Œλ“€μ„ μ—°κ²°ν•˜μ—¬ λ‹€μŒκ³Ό 같은 κΈ°λŠ₯을 μ œκ³΅ν•˜κΈ°λ„ ν•œλ‹€.μž…λ ₯ 처리물리 μ‹œλ¬Όλ ˆμ΄μ…˜μΈκ³΅ 지λŠ₯데이터 λ ˆμ§€μŠ€νŠΈλ¦¬κ²Œμž„ν”Œλ ˆμ΄ νƒœκ·Έ μ‹œμŠ€ν…œκ²Œμž„ν”Œλ ˆμ΄ μ–΄λΉŒλ¦¬ν‹° μ‹œμŠ€ν…œUI μ œμž‘ μ‹œμŠ€ν…œλ©€ν‹°ν”Œλ ˆμ΄ 지원 3. κ²Œμž„ λͺ¨λ“œκ²Œμž„ λͺ¨λ“œλŠ” κ²Œμž„μ˜ κ·œμΉ™μ„ κ²°μ •ν•˜κ³  정보λ₯Ό μ²˜λ¦¬ν•˜λŠ” ..