Projectile

  • 기본적으로 root component가 static mesh면 제어
  • physics simul이 켜져있으면 초기속도만 제어
  • 안켜져있으면, 포물선 프로젝타일 운동을 모사함

 

Spline

  • Spline
    • 3차 베지어곡선에 기반하여, 위치/회전/법선등의 값을 유연하게 [그리기] 위한 기능
    • Get [Location/Rotation/Tangent] at distance along spline : spline의 특정 지점(start point로부터의 거리)의 값을 가져옴
    • Get [Location/Rotation/Tangent] at spline point : spline의 특정 지점(양자화된 노드 번호)의 값을 가져옴
  • SplineMeshComponent
    • Add spline mesh component : 새로운 메쉬컴포넌트 추가
    • start 와 end의 pos/tangent값을 설정하면, 그에맞춰 메쉬를 왜곡시켜주는 mesh ( mesh의 각 face에 대해 양측과의 거리비 기반의 weight로 pos/tangent 적용 하는것으로 보임 )

 

'Unreal > UE Feature' 카테고리의 다른 글

Niagara  (0) 2024.05.17
AI  (0) 2024.05.17
Texture  (0) 2024.05.17
Modeling  (0) 2024.05.17
Physics  (0) 2024.05.16

  • P : nav mesh visuallize

 

Character - (pawn_socket_aicontroller)AIController - (blueprint node_run behaviorTree) BehaviorTree - (taskNode)BTTask_blueprint(event_recieve_AI)

 

  • BehaviorTree
    • composite
      • Sequence
        • false return받을 시 즉시 false 반환하고 종료
        • 전부 true return시 true 반환하고 종료
        • 왼쪽부터 실행, False 반환받을 경우, 하위노드 처음부터 다시 실행
      • Selector
        • true return받을 시 즉시 true 반환하고 종료 
        • 전부 false return시 false 반환하고 종료
    • task
      • BTTask 상속된 BP 참조
      • BTTask로부터 return값을 받음
  • BTTask
    • return을 명시적으로 선언해줘야함 ( finish execute node )
      • success(bool) = 반환값

 

  • AI controller가 개입하기 위해서는, pawn이 movemtment component를 포함해야 함

'Unreal > UE Feature' 카테고리의 다른 글

Niagara  (0) 2024.05.17
Projectile & Spline  (0) 2024.05.17
Texture  (0) 2024.05.17
Modeling  (0) 2024.05.17
Physics  (0) 2024.05.16

UV

uv coord 기준

'Unreal > UE Feature' 카테고리의 다른 글

Projectile & Spline  (0) 2024.05.17
AI  (0) 2024.05.17
Modeling  (0) 2024.05.17
Physics  (0) 2024.05.16
(Character) Movement  (0) 2024.05.16

LandScape

  • 기본 단축키
    • 클릭/드래그 : 융기
    • shift + 클릭/드래그 : 침강

 

Modeling Tool

view port 활성화 → shift 5 혹은 모드 선택창에서 Modeling 선택

 

Shape : 도형을 그림

  • Modeling Pannel
  • Out Type : 메쉬 형태 ( Static / Volume / Dynamic )
  • Shape : 모델링의 형태 조절
    • "기본 크기" 설정(width, depth, height) : complete 시 현재 크기가 world scale에서는 1.f, 1.f, 1.f로 됨
    • subdivisions 설정 : 각 면을 몇개의 폴리곤으로 나눌 것인가
      • 폴리곤의 갯수는 품질, 퀄리티와 관련
      • 단순하게는 PolyModel에서 조절가능한 자유도에 해당 ( 버텍스와 폴리곤의 갯수 조절 )
      • material의 offset도 vertex 단위로 움직임 ( 아마 LOD 같은것들도 )
      • 곡선포함의 경우, 그냥 subdivision이라고 적힌건 "곡선부분을 몇개의 폴리곤(삼각형)으로 나눌지
    • Polygroup Mode : 아마 PolyModel에서 변형할 때, 어디까지 디테일하게 관리할지 인듯 ( quad : 폴리곤단위 / face : 면 단위 ( rotation.xy값을 공유하는 폴리곤 집단 ) / shape : 통짜로만 조작 )
  • Asset
    • Instance if possible : 기본적으로 modeling 하나 만들때마다, Contents내 Generate 파일에 블루프린트가 하나 생성되는데, 설정 똑같은걸로 여러개 설치할 경우, 하나의 블루프린트로 나눠쓸것인지 선택 여부
      • 기본 로케이션 ( autogen folder _ world relative ) 기준 path%BP_Level%/_Generated/컴퓨터이름/파일생성위치

 

  • Positioning : view port에 설치할 때 도움주는 항목
    • Target surface : 마우스기준으로 설치하는데, 마우스가 object위에 있으면, object의 면에 설치할 것인지(On scene) vs 관통하고 ground(아마 z축값 0 인듯) 에 설치할 것인지
    • Snap to Grid : 설치 시 그리드(양자화) 적용 여부
    • Pivot Location : 피봇 위치
    • Rotation : 회전값
    • Align to Normal : 설치면의 법선벡터 반영 여부 ( target surface가 object=onscene일 경우, 기울어져 있을 수 있는데, 그럴 경우 대상을 기울어지게 설정할 것인지
  • Material
    • material : 적용할 마테리얼
    • UV Scale : 텍스쳐의 스케일 배율 ( 1, 1 = 모델링의 면과 텍스쳐의 크기가 1:1로 대응 )
    • World Space  : 텍스쳐를 고정크기로 적용할지, Object 크기로 적용할 지 ( 설치 전 Width/Depth/Heigth를 통한 크기변화에만 적용 됨 )
    • show wireframe : 버텍스를 와이어프레임으로 보여줌

 

Create : 자유도형을 그림

  • PolyExt : 다각도형 그린 다음 높이 조절
  • Path Ext : 경로 그린다음 넓이, 높이 조절 ( 경사 생성 가능 )
  • PathRev : 면 그린다음 회전시킴revolve ( 도자기 굽기, 높이에 델타값 줘서 나선도 가능 )
  • BdryRev : 설치한 오브젝트의 "한 면"을 기반으로 회전시킴revolve
  • MshMrg : 설치된 오브젝트중 두 개 이상을 하나로 합침
  • MshDup : 오브젝트를 복사하는데, 상태를 바꿀 수있음 ( 또 뭔가 기능 있었는데 )
  • 디테일
    • Freehand / Interactive : 설치할 때 마우스 조절해가며 설치

PolyModel : 설치된 모델링 변형

  • PolyEd : 설치된 모델링의 버텍스들 위치 수정
  • PolyDef : Ed보다 덜 구체적, 빠르게?
  • CubeGr : 지면 기준으로 대상 자르기 좋음

Transform

  • XForm
  • Pivot
  • Split

Deform

  • 텍스쳐 기반으로 모델링 변형

MeshOps

remesh : 폴리곤 갯수 재조정

'Unreal > UE Feature' 카테고리의 다른 글

Projectile & Spline  (0) 2024.05.17
AI  (0) 2024.05.17
Texture  (0) 2024.05.17
Physics  (0) 2024.05.16
(Character) Movement  (0) 2024.05.16

class reference 기반 spawn 플로우

Detail Pannel에서 [class reference]칸 만들기

  1. ADisPatcherChild를 상속하는 클래스 중 선택
    1. UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Dispatcher")
         TSubclassOf<ADisPatcherChild> ChildClass;
      
  2. 선택된 class의 객체 만들기
    1. [SpawnActorDeferred<AActor> 사용]
      1. TempChild = GetWorld()->SpawnActorDeferred<AActor>(ChildClass, FTransform(TargetLoc), nullptr, nullptr, ESpawnActorCollisionHandlingMethod::AlwaysSpawn);
        TempChild->FinishSpawning(FTransform(TargetLoc));
      2. Cast는 따로 해줘야 함 ( return값은 AActor type )

 

좌표 변환

예시 : 

TargetLoc = FScaleRotationTranslationMatrix(FVector(0, 0, 0), FRotator(0, 0, 0), FVector(0, 0, 0)).TransformPosition(TargetLoc);
  • (combine)(dependent)(select)FScaleMatrix.(FVector).TransformPosition(location)(FVector)Rotation(FRotator)Vector(direction)Translation(FVector)

 

function Override

  1. 필요한 argument들을 가진 method를 만든다. ( header & source ) ( copilot🧡 )
  2. [Component or Actor] → [Target function].AddDynamic( target instance, ref 위에서만든 method )
    1. BP에선 override function인데, 가상함수가 아님.. arguments입력시의 휴먼에러 대한 무결성을 보장해주지는 않는듯?
    2. 원하는 method를 특정 event에 matching시켜주는 형태 ( parameter는 수기입.. )
      1. 필요한 argument들을 가진 method를 만든다. ( header & source ) ( copilot🧡 )
      2.  
      3. [Component or Actor] → [Target function].AddDynamic( target instance, ref 위에서만든 method )
        1. BP에선 override function인데, 가상함수가 아님.. arguments입력시의 휴먼에러 대한 무결성을 보장해주지는 않는듯?
        2. 원하는 method를 특정 event에 matching시켜주는 형태 ( parameter는 수기입.. )

 

코드에서 경로로 에셋 참조하기

SkeletalMesh3에게 "주소"가 참조하는 class를 <USkeletalMesh>의 ptr 타입을 포함한 클래스 반환 ( ptr은 .Object에 저장 )
이렇게 반환받은 SkeletalMesh3에 .Object var에 저장 ( USkeletalMEsh ptr 타입으로 )

'Unreal > UE Architecture' 카테고리의 다른 글

Unreal Interface  (0) 2024.06.16
Gameplay Ability System  (0) 2024.06.13
문자열 처리  (0) 2024.05.16
UE Macro & Reflection System  (0) 2024.05.16
Smart Pointer & Container & Serialize  (0) 2024.05.16

'Unreal > BP & UE Library' 카테고리의 다른 글

code 내장 함수  (0) 2024.05.17
BP Interface  (0) 2024.05.16
BP node list 1  (0) 2024.05.16
UE Dispatch & Delegate  (0) 2024.05.16
BP Node 리스트  (0) 2024.05.16
  • #pragma once : 다중상속 중 일부클래스 중첩 시 에러(중복적용)을 막기 위해, 1번만컴파일 선언 ( 헤더의 최상단에 입력 )
  • Kismet/GameplayStatics.h
    • UGamePlayStatics
      • GetPlayerController
  • ObjectGlobals
    • NewObject<template>(owner, template::StaticClass());
  • APlayerController*
    • → GetViewTarget()  #해당 컨트롤러의 view가 빙의한 Camera 참조
    • SetViewTarget(arg)  #해당 PC의 view를 arg(Camera)에 빙의
    • SetViewTargetWithBlend(arg1, arg2)  #위와동일, arg2는 blend time
    • GetViewportSize(int&, int&)
    • SetMouseLocation(int, int)
    • GetAudioListenerPosition(FVetor&, FVector&, FVector&) : 위치, 앞방향, 오른쪽방향
    • ULocalPlayer* ( 접근 : Cast<ULocalPlayer>(Player) )
      • ViewportClient
        • ShouldAlwaysLockMouse()
    • GetHitResultAtScreenPosition(FVector2 ViewportClient→GetMousePosition(넣을 FVector2D), TEnumAsByte<ECollisionChannel> APlayerController::CurrentClickTraceChannel, bool (trace complex여부), FHitResult (HitResult 반환할 변수))
  • UParticleSystemComponent*
  • USphereComponent*
  • CreateDefaultSubobject<Component타입>(TEXT(Component네임))
  • RootComponent  #해당 actor의 rootComponent_ set/get
  • SetupPlayerInputComponent(UInputComponent)
  • PlayerInputComponent : UInputComponent형의 플레이어 입력 저장 큐
    • BindAxis(프로젝트세팅_Input_AxisMapping 이름(str), this, &호출함수), 입력명의 Scale(float)값을 호출함수의 인자로 전달 ( 호출함수는 float arg를 하나 가져야 함 )
  • Actor
    • (T) GetComponentByClass(T::StaticClass()) : return actor의 T형 component
    • (T) FindComponentByClass(T::StaticClass()) : return actor의 T형 component ( 차이는 모름 )
  • Cast<T>(component*) : return component의 T형변환Pawn : APawn형
    • Controller : 제어자, AController형
      • → GetControlRotation() : FRotator형
    • Character
      • AddControllerYawInput : 마우스좌우효과 (화면돌리기)
      • AddControllerPitchInput : 마우스 상하효과 (화면돌리기)
      • bPressedJump : Bool형, 점프효과(true 점프를 누르고있는 상태 → false 후 다시 true로 변해야 점프효과 발생)
    • AddMovementInput(방향, 속도)
    • SetupPlayerInputComponent(UInputComponent* PlayerInputComponent);
  • UE
    • FMath
      • TRotationMatrix<double>
      • Clamp(value1, min, max)
  • USkeletalMeshComponent
    • → SetOnlyOwnerSee(bool)
  • UObject
    • CreateDefaultSubobject<type>(name)
  • RotationMatrix(Rotatior)
    • .GetScaledAxis(EAxis::축)
  • F(Scale)(Rotation)(Translation)Matrix([vector]scale, [rotator]rotation, [vector]translation).transform[Position/Vector] : 좌표계 변환 ( 직교좌표계 → 직교좌표계 한정 )
  • GEngine→AddOnScreenDebugMessage(타입-1, int 시간, FColor::색상, TEXT 내용)
  • GetPawn() : controller가 빙의한 pawn을 return. 비어있을 시 nullptr 반환
  • World : GetWorld( )
    • DeltaSeconds : GetDeltaSeconds( )
  • 통합
    • DrawDebugDirectionalArrow(월드_GetWorld(), FVector(시작위치), ~~ )

 

'Unreal > BP & UE Library' 카테고리의 다른 글

Class Name 접두  (0) 2024.05.17
BP Interface  (0) 2024.05.16
BP node list 1  (0) 2024.05.16
UE Dispatch & Delegate  (0) 2024.05.16
BP Node 리스트  (0) 2024.05.16

exec

 

stat scenerendering : 씬 렌더링 프로퍼티

 

'Unreal > Editor Interface' 카테고리의 다른 글

Main Screen  (0) 2024.05.16

+ Recent posts