일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Stored Procedure
- 이진탐색
- 스토어드 프로시저
- Brute Force
- two pointer
- Hash
- Two Points
- binary search
- Trie
- 다익스트라
- 그래프
- MYSQL
- SQL
- union find
- Dijkstra
- String
- DP
- Today
- Total
목록Unreal 4/기타 (11)
codingfarm
언리얼 기본 예제 프로젝트인 flight에 대해 알아보자 a,d 로 좌/우회전 w,s 로 하강/상승 L.shift, L.ctrl로 가속/감속을 하여 비행기를 조종한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 // Copyright 1998-2019 Epic Games, Inc. All Rights R..
우클릭을 통해 발차기 기능을 추가해보자 발차기는 주먹과 다른 애니메이션 몽타주로 재생되며 주먹과는 달리 공격중 이동이 불가능하다. 우선 애니메이션 몽타주를 만들고 섹션을 형성해준다. 메쉬 스켈레톤에는 주먹 뿐만아니라 발끝에도 소켓을 추가한다. 이제 입력 메커니즘을 수정하자 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 void APunchKick06Character::SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) { // Set up game play key bindings check(PlayerInputComponent); P..
캐릭터가 주먹을 휘두르고 타격하는 소리가 나도록 해보자 1 2 3 4 5 6 7 8 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = Audio, meta = (AllowPrivateAccess = "true")) class USoundCue* PunchSoundCue; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = Audio, meta = (AllowPrivateAccess = "true")) class USoundCue* PunchThrowSoundCue; UAudioComponent* PunchThrowAudioComponent; UAudioComponent* PunchAudioCompon..
각 액터가 서로 충돌이 발생했을때에 이벤트가 발생하는 방법에 대해 알아보겠다. 앞서 우리는 클릭과 함께 주먹을 휘두르고 박스가 이에 반응하도록 프로젝트를 구성했으며 여기서부터 이어나가겠다. 먼저 주먹이 충돌했을때 호출될 아래와같은 이벤트 함수의 원형을 헤더파일에 넣는다. 1 2 UFUNCTION() void OnAttackHit(UPrimitiveComponent* HitComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp, FVector NormalImpulse, const FHitResult& Hit); cs 이벤트가 될 함수는 반드시 UFUNCTION() 데코를 설정해주어야한다. 함수 정의는 아래와 같으며 지금은 충돌 감지가 잘 되는지 확인하..
주먹으로 적을 타격하는 게임을 만든다 할때 제일 이상적인 방법은 캐릭터의 주먹에 충격을 감지할 collider를 만들고 애니메이션 재생시에 collider에 들어온 적에게 피격 이벤트를 발생시키는것이다. 이때 모델의 주먹에 collider 를 추가하기 위해서 스켈레톤 소켓을 사용할 수 있다. Hand_L과 Hand_R 하위에 소켓을 추가해주고, 적당한 위치를 정한다. 그리고 소켓의 위치에 Box Collider Component를 추가해준다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 class APunchKick02Character : public ACharacte..
https://docs.unrealengine.com/ko/Engine/Animation/AnimMontage/Overview/index.html 애니메이션 몽타주 개요 애니메이션 몽타주 애셋 작업 방식과 어디에 사용할 수 있는지에 대한 설명입니다. docs.unrealengine.com 여러 애니메이션 시퀀스를 하나의 애니메이션 에셋에 합칠수 있으며 이를 여러 섹션으로 나누어 원하는 구간에 대해서만 그리고 조합하여 재생이 가능하게끔 한다. 가령 하반신은 걷거나 뛰고 있는데 상반신은 총기 조준을 하거나, 재장전, 방패막기 등 상반신과 하반신에 별개의 애니메이션을 주는것이 가능해진다. 상반신과 하반신 애니메이션 따로 재생하기 하반신은 이동에 맞추어 걷지만 상반신은 공격하는 애니메이션을 짜보자 1 2 3 4..
애니메이션 에셋이 주어젔을때 skeleton이 다르면 자신의 모델에 적용이 불가능하다. 하지만 애님 에셋 리타게팅으로 해결 가능하다. 호환 스켈레톤만 표시를 해제해주고 오른쪽에서 원하는 스켈레톤을 선택한다.
actor의 GetVelocity() 함수를 이용하면 이동중인 방향을 알 수 있으나 world 좌표계 기준이다. 그러므로 이 좌표를 local 좌표를 기준으로 얻을 수 있어야 한다. 원리는 간단하다. 우선 GetActorRotation().Vector()로 액터가 바라보는 방향을 구한다. FMath::Atan2(vector.Y, vector.X) 함수를 이용해서 방향벡터를 각도로 변환한다. 그리고 아래식을 참고하여 벡터 회전 변환을 실시한다 $$x'=x\cos\theta-y\sin\theta\\ y'=x\sin\theta+y\cos\theta$$ 언리얼에서는 정면이 X축, 오른쪽이 Y축임을 주의하고 코드를 작성하면 된다. 아래 코드는 캐릭터가 이동중인 방향벡터를 월드좌표계에서 로컬좌표계로 변환하는 코드이..
https://docs.unrealengine.com/en-US/API/Runtime/Engine/Engine/UEngine/AddOnScreenDebugMessage/1/index.html https://developstudy.tistory.com/40?category=783182 1 GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, FString::Printf(TEXT("%f, %f"), 15.0, 5.0)); cs
https://docs.unrealengine.com/ko/Gameplay/HowTo/UsingCameras/SpringArmComponents/index.html 스프링 암 컴포넌트 사용법 Spring Arm 컴포넌트는 카메라 시야가 막히는 상황을 자동으로 처리하는 데 사용됩니다. docs.unrealengine.com 주로 카메라 컴포넌트의 부모로 설정하여 게임상에서 카메라의 위치를 편리하게 설정할 수 있게끔 한다. 주로 3인칭 게임을 만들때에 장애물에 따라 카메라의 위치를 늘였다 줄였다 하는데에 편리하게 쓰인다. Target Arm Length spring의 상위에 붙은 타겟과 하위에 붙은 카메라 사이의 거리를 설정한다 Socket Offset 스프링 암 끝의 카메라의 위치를 조정한다. 이 상대 오..