본문 바로가기

분류 전체보기

(715)          글쓰기    
Attribute, Named Attribute, Save Named Attribute, Normal https://www.youtube.com/watch?v=XhGpwOfTa5Y&list=PLfP8baSzqNwkZBaxpUP-g0h1_jsUkwEC9&index=7LayOut에서 Icosphere를 넣고 GeometryNode 에디터에서 Instance On Points노드 추가 Cube 추가해서 Instance에 연결 사이즈를 적당히 조절Cube 다음에 Dual Mesh노드를 추가Instance on Points노드를 선택 M을 누르면 비활성화 Layout에디터에서 IcoSphere선택 Edit Mode에서 Subdivide>NumberofCuts를4로 해서 Painting이 잘되게 한다.Weight Paint모드에서 원하는 부분을 칠해준다.지오메트리 에디터에서 Group부분에서 Weight를 확인할수..
Geometry Proximity - Blender Geometry Node https://www.youtube.com/watch?v=sKGgN9IC1EI&list=PLfP8baSzqNwkZBaxpUP-g0h1_jsUkwEC9&index=6Ico Sphere를 하나 추가하고 모디파이어에 Geometry Node를 만들고 다음과 같이 노드를 추가한다.적당히 IcoSphere의 사이즈를 조정한다.Distribute Points를 추가하고 Poisson Disk모드로 변경한다. Distance Min Max Sphere Radius를 잘 조정하고 위와 같이 안겹치게 해준다.Ico Sphere 사이에 Dual Mesh 노드를 추가한다. 이건 면을 점으로 바꿔주고 그점으로 새로운 면을 만드는 노드란다.삼각형 메시가 육각형 메시로 변경되었다.dual mesh다음에 Mesh To curve를..
Math 리본만들기 지오메트리노드 https://www.youtube.com/watch?v=wYOFknhjnM4&list=PLfP8baSzqNwkZBaxpUP-g0h1_jsUkwEC9&index=6 IcoSphere 를 추가하고 Modify>Geometry 추가Mesh to curve, Curve to mesh추가Spiral추가하고 Height를 -7m(-700cm) profile curve에 연결 여기에 연결하는 모양에 따라 curve가 변형된다.animation을 주기 위해 Scene Time을 주고 Math추가 Multiply로 바꾸고 값을 0,2 플레이하면 애니메이션됨오브젝트를 선택 머티리얼을 만들고 Set Material로 지정해 준다.
distribute point on face - Geometry Mesh https://www.youtube.com/watch?v=N2g8eureGYg&list=PLfP8baSzqNwkZBaxpUP-g0h1_jsUkwEC9&index=4Instance를 추가하기 위해 Instance on Points와 Ico Sphere추가하고 Radius를 15cm정도로 조정한다.Points를 랜덤하게 만들고 싶을때 전 강의에서는 Volronoid+Color Ramp를 사용했는데 이번에는 distribute point on face를 사용한다. SceneTime을 Seed와 연결하면 플레이시 변화하는데 너무 빠르므로 Divide로 정당히 나눠준다.Instance on Points뒤에 Extrude Mesh를 연결하고 Scale Elements도 추가 Selection에 Top을 연결해주고 ..
Blender - Instance on Point https://www.youtube.com/watch?v=hYBISxL4ohk&list=PLfP8baSzqNwkZBaxpUP-g0h1_jsUkwEC9&index=3 레이아웃에 cube를 하나 추가하고 모디파이어에 Geometry Node를 추가하고 New를 한후 Instance On Points를 추가해준다. 화면에 큐브가 사라진다. Instance에 아무것도 연결되어 있지 않아서 그렇다.Cube를 Instance에 연결해주면 8개의 큐브가 보인다. 이상하게 보인다면 Cube의 크기를 적당히 조절하자왜 4개일까 처음 Cube에 꼭지점이 8개 이기 때문이다. 횟깔리시면 안되는게 Geometry Node Editor에서 추가한 Cube는 처음부터 있던게 아니라 새로운 Instance이다. 이걸 UV Sphe..
Geometry Node Join https://www.youtube.com/watch?v=EUCZrpEYDKo&list=PLfP8baSzqNwkZBaxpUP-g0h1_jsUkwEC9&index=2 Cube에 모디파이어에서 Geometry Node를 추가하고 New를 눌러 First라고 이름 바꿔주자상단 geometry node tap을 눌러 편집창을 열고 Group Input과 Output이 보이는데 이 사이에 노드를 추가해서 원하는 걸 만든다사이에 SHIFT+A>Sphere를 입력 UV Spherer를 추가해주고 연결하면 Group input이 끊어져서 Sphere만 보인다.가운데 Join Geometry를 추가하고 Radius를 적당히 조정하면 2개의 오브젝트를 볼수 있다.
복제를 통한 클라이언트와 액터 변수 동기화 하기 UPROPERTY(Replicatedusing = OnHealthPointsChanged)int _HealthPoints; void GetLifetimeReplicatedProps(TArray& OutLifetimeProps) const override;
네트워크 멀티플레이어 게임 만들기 - RPC 게임 Pangaea를 멀티플레이어 게임으로 만들려면 다음과 같은 작업을 수행해야 한다.RPC로 플레이어 공격 알려주기복제를 통행 클라이언트와 액터 변수 동기화하기RepNotify를 통해 캐릭터의 체력바 업데이트 하기서버에서 타격 처리학 서버 측면에서 파이어볼 생성하기 RPC로 플레이어 공격 알려주기Server Rpc ; 클라이언트에서 호출되며 서버에서 실행된다.Client RPC : 서버에서 호출되며 수신되는 액터를 가진 클라이언트에서 실행된다.NetMuticast RPC : 서버에서 호출되며 모든 클라이언트뿐만 아니라 서버 자체에서 실행된다.reliable 도는 unrelable tag를 붙여 신회도를 정할수 있다. 네트워크의 성능향상을 위해서다RPC함수는 UFUNCTION 매크로에 태그될 수 있다. ..
적 캐릭터 생성하기 Enemy Class Enemy Class 생성하기HeathPoints, Strength, Armer, Attackrange등의 변수가 있고 이걸 처리할 메소드가 선언되어있다.PawnSensingComponent를 추가했다. 감지하는 영억안으로 플레이어 캐릭터가 들어왔는지 체크했다. 캐릭터가 감지되면 _chasedTarget에 저장된다. 영역밖으로 벗어나면 nullptr로 설정된다.Chase()는 플레이어캐릭터를 추격하는 함수이다.key 입력을 받지 않으므로 Input관련 설정은 안해줘도 된다.// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"#include "GameFra..
EnhancedInput vs LegacyInput, Input Error 연습하면서 출판사 사이트의 소스코드를 죄다 카피해서 복붙했더니 캐릭터가 안움직였다.안그래도 TopDownProject의 Input이 Enhanced인데 왜 Legacy방식의 Attack Actoion을 만드는지 이상했는데 여기가 문제가 있다. 코드가 다르다. 교재의 소스는 엤날거랑 엤날 인풋액션을 만들어주던지 소스를 뜯어고치던지 해야한다.그냥 옜날방식 input Action을 ProjectSetting에 추가하기로 했다. 잘된다.하여간 새로운 TopDownProject의 소스를 보면 Tick()이 없다.대신 Input Event을 4단계로 구분해 TriggerEventEnhancedInputComponent->BindAction(SetDestinationClickAction, ETriggerEvent::..
7장 CanAttack() Attack() 함수 구현하기 AnimInstance()를 UPlayerAvatarInstance로 캐스팅해 EPlayerState가 Locomotion이면서 Attack카운트다운시간이 0일경우 true를 리턴한다.bool APlayerAvatar::CanAttack(){ auto animInst = Cast(GetMesh()->GetAnimInstance()); return (_AttackCountingDown State == EPlayerState::Locomotion);}Attack()함수는 타이머를 초기화한다. 애니메이션은 AnimationBlueprint에서 처리한다.void APlayerAvatar::Attack(){ _AttackCountingDown = AttackInterval;}ProjectSetting>Engine..
07 PlayerController 캐릭터 제어하기 SimpleMoveToLocation 프로젝트를 생성할때 자동으로 PangaeaPlayerController 클래스가 생성한다.TopDownCharacter는 EnhancementInput을 위해 2개의InputAction과 IMC가 마련되어 있다.SetupInputComponent()에서 Binding되어 있다. Attack는 나중에 만들어 추가할것이다.void APangaeaPlayerController::SetupInputComponent(){ // set up gameplay key bindings Super::SetupInputComponent(); InputComponent->BindAction("SetDestination", IE_Pressed, this, &APangaeaPlayerController::OnSetDestinat..