Game Programming
-
GunLight 추가Game Programming/언리얼 2023. 10. 5. 16:11
총에 붙은 광원 효과를 얻을려고 했다... UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Light, meta = (AllowPrivateAccess = "true")); class USpotLightComponent* GunLight; 헤더 파일에 SpotLightComponent를 추가하고, GunLight = CreateDefaultSubobject(TEXT("GunLgiht")); GunLight->SetupAttachment(GetMesh()->GetAttachmentRoot()); GunLight->SetRelativeLocation(FVector(40.f, 50.f, 30.f)); GunLight->SetRelativeRotation(F..
-
Socket offsetGame Programming/언리얼 2023. 10. 5. 13:22
마우스 움직임에 따라 Y축 기준 회전이 발생하도록 변경했다. bUseControllerRotationRoll = true; 케릭터 회전에 따라 움직임이 변경되지 않도록 변경했다. GetCharacterMovement()->bOrientRotationToMovement = false; 카메라를 중앙점에서 Y축 +50, Z축 +50 이동 시켰다. CameraBoom->SocketOffset = FVector(0.f, 50.f, 50.f); 전체코드 CameraBoom->SocketOffset = FVector(0.f, 50.f, 50.f); //Create a follow Camera FollowCamera = CreateDefaultSubobject(TEXT("FollowCamera")); FollowCa..
-
총알 이펙트Game Programming/언리얼 2023. 10. 4. 23:47
총알 이펙트를 주고 싶어서 한번 만들어 보기로 했다. 처음에는 리스트를 사용하여 Component->IsActive() == false이면 노드를 삭제하는 방식으로 했는데 노드 삭제가 잘 되지 않았다.... 분명 현재 노드를 제외하고 이전노드와 다음 노드를 연결했는데 그래서 생각난 것이 오브젝트풀이였다. ShootingParticle.SetNum(1000, false); 위와 같이 TArray를 미리 할당하고, 메모리 자동 조절 기능은 껐다. for (int i = 0; i AddOnScreenDebugMessage(3, 1, FColor::Red, FString..
-
빔 파티클Game Programming/언리얼 2023. 10. 3. 20:53
UPROPERTY(EditAnyWhere, BlueprintReadWrite, Category = Combat, meta = (AllowPrivateAccess = "true")); class UParticleSystem* BeamParticles; MyShooter.h파일에 파티클을 추가했다. if (BeamParticles) { UParticleSystemComponent* Beam = UGameplayStatics::SpawnEmitterAtLocation(GetWorld(), BeamParticles, SocketTransform); if (Beam) { GEngine->AddOnScreenDebugMessage(3, 1, FColor::Blue, FString::Printf(TEXT("Colli..
-
임펙트 파티클Game Programming/언리얼 2023. 10. 3. 16:40
/* Particles spawnd upon bullet impact*/ UPROPERTY(EditAnyWhere, BlueprintReadWrite, Category = Combat, meta = (AllowPrivateAccess = "true")); class UParticleSystem* ImpactParticles; /* Particles spawnd upon bullet impact*/ UPROPERTY(EditAnyWhere, BlueprintReadWrite, Category = Combat, meta = (AllowPrivateAccess = "true")); class UParticleSystem* ImpactWallParticles; ConstructorHelpers::FObjectF..
-
라인 트레이스 추가Game Programming/언리얼 2023. 10. 3. 13:30
FHitResult FireHit; const FVector Start{ SocketTransform.GetLocation() }; const FQuat Rotation{ SocketTransform.GetRotation() }; const FVector RotationsAxis{ Rotation.GetAxisX() }; const FVector End{ Start + RotationsAxis * 50'000.f }; GetWorld()->LineTraceSingleByChannel(FireHit, Start, End, ECollisionChannel::ECC_Visibility); if (FireHit.bBlockingHit) { DrawDebugLine(GetWorld(), Start, End, FC..
-
Animation MontageGame Programming/언리얼 2023. 10. 3. 13:01
Animation Montage를 추가했다. Animation Montage에서 애니메이션을 추가하며 Section의 이름을 추가하고 Slot은 Animation Montage에서 WeaponFire를 추가했다. 애니메이션 그래프에서 걸어 갈 때 에셋이 총을 쏘는 모양과 맞는 것이 없어 Layerd blend per bone을 사용해서 자연스럽게 처리했다. 애니메이션 그래프에서 걸어 갈 때와 총을 쏘는 것과 블랜드를 시켰다. /*Montage for firing the weapon.*/ UPROPERTY(EditAnyWhere, BlueprintReadWrite, Category = Combat, meta = (AllowPrivateAccess = "true")); class UAnimMontage* H..
-
Muzzle FlashGame Programming/언리얼 2023. 9. 30. 16:44
왼쪽 손에 barrel_socket을 추가해줬다. x,y,z 방향이 총 방향과 일치하도록 적절히 회전시켰다. /* Flahs spawnd at BarrelSocket*/ UPROPERTY(EditAnyWhere, BlueprintReadWrite, Category = Combat, meta = (AllowPrivateAccess = "true")); class UParticleSystem* MuzzleFlash; /* Flahs spawnd at BarrelSocket*/ UPROPERTY(EditAnyWhere, BlueprintReadWrite, Category = Combat, meta = (AllowPrivateAccess = "true")); class UParticleSystem* Muzzle..