프로그래밍 / C++ / 언리얼

Programming 45

[언리얼 엔진] FPS게임 움직임 구현

언리얼 엔진은 캐릭터의 움직임을 1인칭으로 구현할수있고, Camera-SpringArm과같은 툴을 이용해 3인칭 형식으로 구현할수있다. 바인딩은 GTA나 3인칭 슈팅게임등 FPS게임에서 필수로 쓰이므로 꼭 알아두어야 하는 개념이다. WASD 움직임 구현하기 우선 에디터내에서 키값을 세팅해주어야하는데, Edit - ProjectSettings - Input - Bindings 에 들어가면 키셋팅을 할 수있다. MoveForward는 W, S, MoveRight는 A, D 방향키를 담당. Scale은 1.0 단위로 설정하는데, 이값은 각 함수의 매개변수인 AxisValue값에 대응된다 [헤더파일 선언] 헤더파일에는 MoveForward, MoveRight 함수를 선언한다. SetupPlayerInputCom..

[언리얼 엔진] Actor 회전시키기 (사용자 입력, AI 회전구현)

언리얼 엔진에는 플레이어가 키보드나 마우스를 입력함에따라 액터를 회전시키게할수있는 여러 API들을 가지고있다. 이뿐만아니라 플레이어가 조종하는것 외에 액터가 특정대상을 바라볼수있게하는 AI기능을 갖추게 할 수도있다. 상속관계는 이렇다. 부모클래스인 BasePawn 아래에 자식클래스인 Tank, Tower를 만든다. (컴포넌트 안에 메쉬삽입하는 과정은 생략한다.) RotateTurret 멤버함수는 탱크(아군)와 타워(적군) 모두 필요한 기능이므로 부모클래스에 정의를 한다. 매개변수타입은 FVector타입이며 (0.f, 0,f 0,f)의 좌표형식으로 받는다. 탱크는 플레이어가 마우스로 움직임에 따라 화면이 회전하도록 설정하고, 타워는 일정범위안에 탱크가 감지되면 탱크를 향하도록 회전하도록 하는 로직을 구성한..

[C++] 자료구조 - 선형리스트(Linear List) / vector 클래스 기능 정리

vector 클래스 개요 std::vector 클래스는 c++의 표준라이브러리 배열 기능 중 하나로, 데이터관리, 알고리즘 분석등 정말 유용하게 쓰이는 기능이다. 벡터의 저장은 자동으로 처리되며 필요에 따라 유동적으로 확장 및 축소할수있다. 벡터는 일반적으로 정적 배열보다 더 많은 메모리 공간을 차지한다. 앞으로 추가될 요소들을 위해 더 많은 메모리가 할당되는데, 이과정에서 vector클래스는 원소가 추가되거나 삽입될때 메모리 재할당이 발생한다. vector 클래스의 특징 vector 클래스는 배열에 삽입하거나 추가해서 공간을 다 차지하게 되면 원소를 담을 바구니들을 다시 생성하는 작업에 들어간다. vector클래스의 특정 멤버함수를 통해서 추가 공간들이 여유롭게 주어지는데, 이 추가된 여유공간들은 ca..

[C++] string 클래스, 간편한 문자열 기능 알아보기

String 클래스 개요 기존 C언어에서 문자열을 표현할때, 스트링 표현방식을 배열방식으로 구현하였는데, 스트링 마지막에 null값을 붙여서 스트링의 마지막을 나타냈다. 매번 문자열을 처리하는게 번거로웠는데, C++ 표준 라이브러리는 스트링을 좀 더 잘 표현하도록 std::string 클래스를 제공한다. std::string 클래스는 basic_string이라는 클래스 template의 인스턴스로서, 의 함수 적용 방식은 비슷하지만 메모리를 알아서 할당처리해주는 기능이 들어있어 기존 문자열 처리방식의 복잡도를 어느정도 해소시켜주고있다. String 클래스의 장점 • 간단하다. 내부적으로 기본 문자 타입과 배열 구조체로 처리한다. • 가볍다. 제대로 사용하면 메모리를 꼭 필요한 만큼만 사용한다. • C프로..

[Arduino] 아두이노 DS1302 RTC 모듈 활용하기

DS1302 RTC모듈의 개요 DS1302 RTC 모듈은 내부 클럭 과 오래 지속되는 배터리를 사용하여 실시간으로 시간을 출력하는 장치이다. RealTimeClock을 줄여서 흔히 RTC라고 부르는데, 이 장치는 각종 전자기기의 시간이나 타이머기능이 있는 모든제품에 사용된다. (왠만하면 디지털시계에는 꼭 탑재되는게 RTC모듈이다) 이 모듈에는 5V 핀이있는 초소형보드에 3V 리튬 이온 배터리, 32kHz 크리스탈 모듈 및 DS1302 칩이 함께 들어있다. DS1302칩은 효율적으로 전력을 운용할수있고, 3V배터리는 최대 5년동안 쓸 수 있다. 보드구성도 단순하고 실시간 시간모듈중에서 가장 저렴해서 실시간 시간을 기록해야되는 제품에 널리 쓰이고있다. 예제실습 - RTC모듈 작동확인 이번에는 예제를 통해서 ..

Programming/Arduino 2020.07.26

[Arduino] 아두이노 온도센서(LM35) 쉽게 사용하기

온도센서의 개요 온도 센서(Temperature Sensor)란 쉽게 설명하면 온도의 변화에 응답하는 센서다. 온도센서는 열전도를 통해서 받은 에너지값을 전기신호로 바꾸어서 결과값을 나타내는 센서다. 온도에 따라 전위차가 변하므로써 대략 218K~423k까지 측정이 가능하다. 온도가 서서히 변하는 물체나 장치에 사용하는것은 문제가 되지않으나, 온도변화가 급격한 물체에 사용하는 것은 적합하지 않다. 또한 값이 선형적으로 변해 프로그램이 용이하다. 그래서 우리 실생활에 온도센서가 유용하게 쓰인다, 우리가 집안에 보일러를 틀때 목표온도를 설정하게되는데, 목표온도가 실내온도까지 도달하게되면 보일러의 가열이 멈추도록 설계가 되어있다. 보일러는 온도센서를 활용한 대표적인 사례이다, 이 뿐만 아니라 에어컨에도 온도센..

Programming/Arduino 2020.07.23

[Arduino] 아두이노 온습도센서(DHT11) 여러가지 예제를 통해 알아보자

온습도센서의 개요 우리가 기온을 측정할때 크게 온도만 측정할수있는 LM35센서와 온,습도 모두 측정할 수 있는 DHT11센서 2가지로 분류되는데 주로 많이 사용되는 센서는 DHT11 온습도 센서다. 온습도센서를 잘 살펴보면 겉에 구멍이 뚤린것을 확인할 수 있는데, 공기중의 수분을 잘 흡수하도록 설계가 되었다고 한다. 센서내부에는 미세한 전극이 있어서 공기중의 수분을 감지할때 미세하게 전류가 흘러서 변화된 저항값을 우리가 시리얼 모니터를 통해서 읽어들일 수 있게된다. 습도값의 오차가 ±5%, 온도값의 오차가±2%정도로 오차범위가 크게 차이가 없을 정도로 센서의 정확도 또한 뛰어나다. 이제 온습도 센서를 통해서 출력값이 어떻게 나타나는지 알아보도록 하자. 알아보기 앞서서 우선 온습도센서와 관련된 라이브러리를..

Programming/Arduino 2020.07.21
반응형