λͺ©λ‘μ 체 κΈ (1103)
KoreanFoodie's Study
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/MvaRH/btrDdmEmEK7/I5pT5gUX1v4wKGvByE0Lsk/img.png)
λͺ¨λμ μ½λλ₯Ό μ°Έκ³ νμ¬ ν΅μ¬ λ΄μ©μ κ°μΆλ¦¬κ³ μμ΅λλ€. μμΈν λ΄μ©μ λͺ¨λμ μ½λμ μΉμ΄λ¨Ήλ C++ κ°μ’λ₯Ό μ°Έκ³ ν΄ μ£ΌμΈμ! μ 체 λ¬Έμμ΄ λ§€μΉνκΈ° λ‘κ·Έ νμΌμ μΆμΆνλ μ½λλ₯Ό 보μ. #include #include #include int main() { // μ£Όμ΄μ§ νμΌ μ΄λ¦λ€. std::vector file_names = {"db-123-log.txt", "db-124-log.txt", "not-db-log.txt", "db-12-log.txt", "db-12-log.jpg"}; std::regex re("db-\\d*-log\\.txt"); for (const auto &file_name : file_names) { // std::boolalpha λ bool μ 0 κ³Ό 1 λμ μ false, true..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/nln3y/btrC6eVg9k1/Mrgq7MzGIDKa7jDg1fiaL0/img.png)
λͺ¨λμ μ½λλ₯Ό μ°Έκ³ νμ¬ ν΅μ¬ λ΄μ©μ κ°μΆλ¦¬κ³ μμ΅λλ€. μμΈν λ΄μ©μ λͺ¨λμ μ½λμ μΉμ΄λ¨Ήλ C++ κ°μ’λ₯Ό μ°Έκ³ ν΄ μ£ΌμΈμ! ν νλ¦Ώ λ©ν ν¨μ ν νλ¦Ώ λ©ν ν¨μλ μ¬μ€ ν¨μλ μλμ§λ§ λ§μΉ ν¨μμ²λΌ λμνλ ν νλ¦Ώ ν΄λμ€λ€μ μλ―Ένλ€. μ΄λ€μ΄ λ©ν ν¨μμΈ μ΄μ λ 보ν΅μ ν¨μλ€μ κ°μ λν΄ μ°μ°μ μννμ§λ§, λ©ν ν¨μλ νμ μ λν΄ μ°μ°μ μννλ€λ μ μ΄ μ‘°κΈ λ€λ₯΄λ€. μμλ₯Ό 보μ. // μμμΈμ§ μ²΄ν¬ if (is_negative(x)) { // Do something... } // νμ μ΄ void μΈμ§ μ²΄ν¬ if (is_void::value) { } μλ μ½λλ₯Ό λλ €λ³΄μ. #include #include template void tell_type() { if (std::is_void::value) { s..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b0ZPYk/btrC2KFydFS/h4PP9PKKJR04K9EILlNLVK/img.png)
λͺ¨λμ μ½λλ₯Ό μ°Έκ³ νμ¬ ν΅μ¬ λ΄μ©μ κ°μΆλ¦¬κ³ μμ΅λλ€. μμΈν λ΄μ©μ λͺ¨λμ μ½λμ μΉμ΄λ¨Ήλ C++ κ°μ’λ₯Ό μ°Έκ³ ν΄ μ£ΌμΈμ! decltype decltype ν€μλλ C++ 11 μ μΆκ°λ ν€μλλ‘, decltype λΌλ μ΄λ¦μ ν¨μμ²λΌ μ¬μ©λλ€. decltype(/* νμ μ μκ³ μ νλ μ */) μ΄λ, decltype μ ν¨μμλ λ¬λ¦¬, νμ μ μκ³ μ νλ μμ νμ μΌλ‘ μΉνλκ² λλ€. μλ₯Ό λ€μ΄, #include struct A { double d; }; int main() { int a = 3; decltype(a) b = 2; // int int& r_a = a; decltype(r_a) r_b = b; // int& int&& x = 3; decltype(x) y = 2; // int&& A* ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bC2wVp/btrCUl734TP/JAicbKn7OxdejkkPhFoHR1/img.png)
λͺ¨λμ μ½λλ₯Ό μ°Έκ³ νμ¬ ν΅μ¬ λ΄μ©μ κ°μΆλ¦¬κ³ μμ΅λλ€. μμΈν λ΄μ©μ λͺ¨λμ μ½λμ μΉμ΄λ¨Ήλ C++ κ°μ’λ₯Ό μ°Έκ³ ν΄ μ£ΌμΈμ! μμμ (Constance expression) μ»΄νμΌλ¬κ° μ»΄νμΌ νμμ μ΄λ ν μμ κ°μ κ²°μ ν μ μλ€λ©΄ ν΄λΉ μμ μμμ (Constance expression) μ΄λΌκ³ νννλ€. κ·Έλ¦¬κ³ μ΄λ¬ν μμμλ€ μ€, κ°μ΄ μ μμΈ κ²μ μ μ μμμ(Integral constant expression) μ΄λΌκ³ νκ² λλλ°, μ μ μμμλ€μ λ§€μ° μ°μμκ° λ§λ€. int arr[size]; // size κ° μ μ μμμμ΄μ΄μΌ ν¨ ... template struct A { int operator()() { return N; } }; A a; // number κ° μ μ μμμμ΄μ΄μΌ ν¨ ... e..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bXCoqz/btrCXksZIim/Bu0v4Wkr3mZ9yFk8xM4T20/img.png)
λͺ¨λμ μ½λλ₯Ό μ°Έκ³ νμ¬ ν΅μ¬ λ΄μ©μ κ°μΆλ¦¬κ³ μμ΅λλ€. μμΈν λ΄μ©μ λͺ¨λμ μ½λμ μΉμ΄λ¨Ήλ C++ κ°μ’λ₯Ό μ°Έκ³ ν΄ μ£ΌμΈμ! C++ μμ±μ νν μ€μ λ€μκ³Ό κ°μ μ½λλ μ무κ²λ μΆλ ₯νμ§ μλλ€. #include class A { public: A() { std::cout
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/TzpsF/btrCwF6kof3/aUKR1LzmZTn8kE20T6PNH0/img.jpg)
AddMovementInput ν¨μλ‘ κ°λ¨νκ² μ²λ¦¬νκΈ° ////////////////////////////////////// ////////////////////////////////////// BlasterCharacter.h ////////////////////////////////////// ////////////////////////////////////// #pragma once #include "CoreMinimal.h" #include "GameFramework/Character.h" #include "BlasterCharacter.generated.h" UCLASS() class BLASTER_API ABlasterCharacter : public ACharacter { GENERATED_..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/1Rjco/btrCqnSsWBt/44PBacekvXDgOKblLmxXVK/img.jpg)
IK_Rig λ₯Ό μ΄μ©νκΈ° μ λλ©μ΄μ μ μ¬μ©ν λ, μ€μΌλ ν€μ΄ λ€λ₯Έ κ²½μ° λ¦¬νκΉμ ν΄ μ£Όμ΄μΌ νλ€. μΈλ¦¬μΌ 5μμλ IK_Rig μ μ΄μ©ν΄ ν¬μ¦λ€μ ν¨μ¨μ μΌλ‘ μμ νλλ‘ λ§λ€μλ€. μμ μλ³Έ IK_Rigμ μ 보면 IK_Retargeting μ Chain μ΄ μ€μ λμ΄ μλ€. μΌνΈμ Bone Hierarchy λ₯Ό μ 보면μ, μ°λ¦¬κ° 리νκΉνκ³ μνλ IK_Rig μ λ§κ² 체μΈμ μ€μ ν΄μ£Όλ©΄ λλ€. μ°λ¦¬κ° μνλ μ€μΌλ ν λ©μ (μ¬κΈ°μλ SK_Epic Character) μ κΈ°λ°ν IK_Rig μ μμ±νλ€. μ΄λ¦μIK_Blaster λ‘ νλ€. κ·Έ ν, κΈ°μ‘΄μ IK_Mannequin κ³Ό κ°μ μ΄λ¦μ Chain λ€μ λ§λ€μ΄ μ£Όλ©΄ λλ€. λ°©λ²μ μλμ κ°λ€. κ·Έ ν, IK Retargeter λ₯Ό μμ±ν΄μ€λ€. Sourc..
νΌλ Ήμ΄λ μνΌμ λν μ°κ΅¬λ, μ€λλ λΉκ³Όνμ΄λΌλ μΉ΄ν κ³ λ¦¬λ‘ λΆλ₯λκ³ μλ€. νμ§λ§ νλ κ³ΌνμΌλ‘ μ€λͺ ν μ μλ κΈ°νμλ€μ κ³Όνμ μΌλ‘ μ€λͺ ν μ μλ€κ³ ν΄μ κ·Έ μ‘΄μ¬λ₯Ό 무μν΄μλ μλλ€. κ·Έλ€μ μ£Όμ₯νλ€. κΈ°μ΄ν νμ μμ²΄κ° μ‘΄μ¬νλ€λ κ²μ μΈμ νλλΌλ, ν΄λΉ νμμ λ°μ μμΈμ κ·μ μ΄λ μνΌμ²λΌ κΈ°μ‘΄ κ³Όνμ ν λ리 λ΄μμ μ μλμ§ μμ κ°λ λ€μ ν΅ν΄ νμ΄λκ°λ €λ μλλ κ³Όνμ μ΄λΌκ³ ν μ μλ€κ³ . νμ§λ§ λλ μ΄λ κ² λ°λ°νκ³ μ νλ€. μ€νλ € κ·Έλ¬ν κΈ°νμλ€μ νμ¬ κ³Όν κΈ°μ μ λ°μ μμ€μ΄ κ·Έλ¬ν μ¬κ±΄λ€μ λν ν΄λ΅μ μ 곡νμ§ λͺ»ν μ λλ‘ μμνμ§ μλ€λ μ¦κ±°λ‘μ νμ©λμ΄μΌ νλ€κ³ . μ°λ¦¬λ 'κ³Όν'μ λ³Έμ§μ΄ μ§μμ μ΄μ²΄κ° μλ νμμ μ€λͺ νλλ° μ°μ΄λ 'λ°©λ²λ‘ 'μμ μμ΄μλ μλλ κ²μ΄λ€. ... (μ€..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/btw0KB/btrCp6CvoaZ/vKhKpzckbG1SCLHc4Oi9h1/img.jpg)
λΈλ£¨νλ¦°νΈ λ Έλλ₯Ό μ΄μ©νκΈ° ThirdPerson Template μ νμ©ν΄ κ°λ¨νκ² λ©ν°νλ μ΄μ΄ μΈν μ ν΄ λ³΄μ. StarterPack μ μλ BP_ThirdPersonCharacter μμ λ€μκ³Ό κ°μ΄ λΈλ£¨νλ¦°νΈ λ Έλλ₯Ό μ€μ ν΄μ£Όλ©΄ λλ€. μ°Έκ³ λ‘ Lobby λ Default μ€μ μ Map μ λ§λ κ²μ΄κ³ , Open 13.32.244.36 μ Local IPv4 Address μ΄λ€. κ·Έ ν, λ€μκ³Ό κ°μ΄ ν¨ν€μ§ νλ‘μ νΈλ₯Ό λ§λ€μ΄ μ€λ€. (μλ Binary Configuration μ Development λ‘ λ°κΎΈμ΄ μ€λ€) μ΄μ μλ£λ exe νμΌμ μ΄ μ»΄ν¨ν°μμ μ΄κ³ , 1μ λλ¬ λ‘λΉλ₯Ό μμνλ€. λ€λ₯Έ μ»΄ν¨ν°μμ 2μ λλ¬ λ‘λΉμ μ μνλ©΄, λ©ν°νλ μ΄λ₯Ό μ¦κΈΈ μ μλ€. μ νλ‘μ νΈλ₯Ό λ§λ€ λ, Thrid..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/qgaKx/btrCllUyXUN/RtL6RoWm5snZlL1NJYzLJ1/img.jpg)
λ©ν°νλ μ΄μ΄ μλ²μ μ ν peer - to peer κ°κ°μ νλ μ΄μ΄κ° μΈμ μ κ°μ§κ³ , μμ§μμ΄λ κ²μ λ°μ΄ν°μ λ³κ²½μ΄ μμ κ²½μ° μ°κ²°λ λ€λ₯Έ μΈμ μ μ¬μ©μμκ² μ΄λ₯Ό μ ννλ€. A μμ νλ μ΄μ΄κ° μΊλ¦ν°λ₯Ό μμ§μλ€κ³ νμ λ, μμ§μΈ μ’νλ₯Ό λ€λ₯Έ μ»΄ν¨ν°μκ² μ λ¬νκΈ° μ κΉμ§ λ€λ₯Έ μ»΄ν¨ν°μμλ Aμ λ°μ΄ν° λ³κ²½μ΄ μ‘°νλμ§ μλλ€. Client - Server Model Client - Server Model μμλ, κ° ν΄λΌμ΄μΈνΈλ€μ΄ μ΄λ€ λμμ νκ² λλ©΄, λ°μ΄ν°μ λ³κ²½μ Server λ‘ request νλ€. Server μμλ μ ν©μ±μ΄ μλ μνλ₯Ό κ°κ³ μμΌλ©°, μ΄λ₯Ό λ€λ₯Έ ν΄λΌμ΄μΈνΈλ€μκ² μ ννλμμΌλ‘ μμΉλ μν λ±μ μ λ°μ΄νΈ νλ€. Client - Server Model μ ν¬κ² Listen-Serve..