분류 전체보기

C/자료

C 메모리 구조

메모리 프로그램 실행 순서 위 그림과 같이, 프로그램이 실행되기 위해서는 운영체제(OS)가 프로그램의 정보를 메모리에 로드 해야 한다. 또한 프로그램이 실행되는 동안 CPU가 코드를 처리하기 위해서는, 메모리가 명령어와 데이터들을 저장해야 한다. 메모리 공간 이렇게 프로그램이 운영체제(OS)로 부터 할당받는 대표적인 메모리 공간은 코드(code) 영역, 데이터(data) 영역, 힙(heap) 영역, 스택(stack) 영역으로 구성되어 있다. 코드(code) 영역 코드 영역은 실행할 프로그램의 코드가 저장되는 영역이다. 텍스트 영역이라고 부르기도 한다. CPU는 코드 영역에 저장된 명령을 하나씩 가져가서 처리하게 된다. 프로그램이 시작하고 종료될 때 까지 메모리에 계속 남아있는다. 데이터(data) 영역 ..

카테고리 없음

언리얼엔진 C++ 래그돌(Ragdoll)

Unreal Engine Ragdoll Physics 1. 래그돌(Ragdoll) 이란? 래그돌 물리(Ragdoll Physics)는 캐릭터가 힘없이 날라가는 모습이 "봉제인형(Ragdoll)"처럼 연출되서 유래된 이름이며, 게임에서 캐릭터의 사망 연출을 할때 사용이 많이 된다. 2. 래그돌 적용 캐릭터에 Skeletal Mesh 에 Physics Asset이 있는지 확인 Mesh의 CollisionProfile 설정 SetSimulatePhysics(true); 함수 호출 void ARagdollTestCharacter::DoRagdoll() { //기본으로 제공해주는 Ragdoll용 CollisionProfile로 설정 GetMesh()->SetCollisionProfileName(TEXT("Ragd..

언리얼 엔진/C++

언리얼엔진 C++ 가비지컬렉션

프로그래밍을 하다 보면 동적으로 할당해준 메모리에 대한 관리를 계속해서 해줘야 한다. 우리의 컴퓨터는 일정한 메모리를 갖고 있고, 정해진 메모리를 초과하게 되면 동작하는 프로그램이 정상적으로 작동하지 않을 수가 있기 때문이다. 메모리 관리에 도움 되는 기법 중 하나로 가비지 컬렉터(grabage Collection)가 있고, 해당 기법은 프로그램이 동적으로 할당했던 메모리 영역 중에 필요 없게 된 영역을 해제하는 기능이다. 가비지 컬렉션의 장점과 단점 다음과 같은 버그를 줄이거나 막을 수 있다. 장점 1. 유효하지 않은 포인터 접근을 방지한다. 2. 이중 해제로 이미 해제된 메모리를 또다시 해제하려고 하면 문제가 생길 수도 있다. 3. 메모리 누수로 더 이상 필요하지 않은 메모가 해제되지 않고 남아 있게..

언리얼 엔진/C++

언리얼엔진 C++ 반환 값이 2개 이상일 경우에 사용하는 TTuple

블루프린트에서 입력 파라미터와 출력 파라미터는 2개 이상 만들 수 있습니다. 블루프린트에서 만든 함수를 C++로 작성할 때 입력 파라미터는 2개 이상 만드는 것은 쉽지만 출력 파라미터. 즉, 반환값을 2개 이상으로 만들 때는 구조체를 이용해야 하나 싶었습니다. 그러나 반환하는 것 때문에 일일이 구조체를 만들기에는 효율성이 떨어지는것 같아 찾아보니 튜플이라는 자료형을 알게 되었습니다. 참고로 TTuple은 UObject 클래스가 아니기 때문에 UFUNCTION과 UPROPERTY를 사용할 수 없습니다. TTuple FixDiagonalGamepadValues(float ForwardAxis, float RightAxis) const; UFUNCTION(BlueprintCallable, Category = ..

언리얼 엔진/C++

언리얼엔진 C++ Foot IK

언리얼엔진 C++ Foot IK 입니다. 애님인스턴스에 작성 후 애님블루프린트에서 사진처럼 설정해주시면 됩니다. DeltaTime(Tick)이 작동하는 함수에 넣어주시면 됩니다. (단, 기본 마네킹 스켈레탈메시와 크기, 본이 같을 경우 정상 작동합니다.) Unreal Engine C++ IK. You can fill it out on AnimInstance and set it up like a picture in AnimBlueprint. And You can put it in the function that Delta Time (Tick) works. (However, if the size is the same as the basic mannequin skeleton mesh, it works norm..

C++/자료

C++ region 키워드

Visual Studio, MSVC 에서만 테스트되었고, 일단 비표준이다. 회사에 새로 오신분께서 내가 보기엔 정말 괜찮은 정리 규칙을 정해주셔서, 써두고 추후 내 입맛에 맞게 더 발전시켜 보려한다. 핵심은 region 키워드인데, 함수와 변수를 카테고리처럼 나누고, public, protected, private으로 정리하는 것이다. 예를 들면 아래와 같다. #pragma region Attack public: bool CanAttack(); protected: bool DoLineTrace(); private: int32 AttackCount(); public: bool bIsAttackMatched; protected: int32 CurrentBullet; private: bool bProjecti..

mane
'분류 전체보기' 카테고리의 글 목록 (37 Page)