일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 유니티
- 게임개발
- gameplay ability system
- 언리얼엔진
- unity
- 언리얼 엔진
- listen server
- CTF
- nanite
- 게임 개발
- attribute
- stride
- photon fusion2
- gameplay tag
- gameplay effect
- UI
- Unreal Engine
- rpc
- Replication
- map design
- ability task
- animation
- local prediction
- os
- Multiplay
- Aegis
- gas
- gravity direction
- MAC
- dirty cow
- Today
- Total
목록Replication (8)
Replicated
아무리 예측 실행을 하고, FScopedPredictionWindow을 켜놔도다른 액터 컴포넌트의 값을 변화시키는 것은 해당 변수에 Replicated 달아놔야 한다 이걸 어떻게 알았냐면 스테미나가 최종적으론 동기화되긴 하는데, 예측 실행이랑 달라서 보정되는게 보인다그럼 예측 실행에선 스테미나를 계속 20씩 깎는다는 거다 로그 찍으니 동기화 안됐다 // Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"#include "Components/ActorComponent.h"#include "DDAttackStateComponent.generated.h"UCLAS..

Attribute// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"#include "AttributeSet.h"#include "AbilitySystemComponent.h"#include "DDAttributeSet.generated.h"#define ATTRIBUTE_ACCESSORS(ClassName, PropertyName) \ GAMEPLAYATTRIBUTE_PROPERTY_GETTER(ClassName, PropertyName) \ GAMEPLAYATTRIBUTE_VALUE_GETTER(PropertyName) \ GAMEPLAYATTRIBU..

일단 중력 반전 스위치로 반전 시켰을 때 반전이 안됨클라이언트에서 스위치 색도 안바뀜RPC 처리해야 할 듯 UFUNCTION(NetMulticast, Reliable)void NetMulticastSetGravity(ACharacter* Char, FVector Gravity);void ACSGravitySwitch::NetMulticastSetGravity_Implementation(ACharacter* Char, FVector Gravity){ Char->GetCharacterMovement()->SetGravityDirection(Gravity);}중력 세팅을 RPC 멀티캐스트근데 보니까 메테리얼 변경도 동기화 안됐음 void SetMaterial();UFUNCTION(NetMulticast, Re..

전 게시글에서 Patrol한테 맞아도, 클라이언트에서 UI에서 동기화가 안되어 보이길래 문제를 찾아봤다단순 UI 문제라기 보다는, 애초에 Replication 설정을 안해놨다 // Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"#include "AttributeSet.h"#include "AbilitySystemComponent.h"#include "CSAttributeSet.generated.h"/** * */#define ATTRIBUTE_ACCESSORS(ClassName, PropertyName) \ GAMEPLAYATTRIBUTE_PROPERT..

일단 유니티 SetActive같은게 언리얼 액터에 없다는게 놀랍다 void ACSLabyrinthKeyActivator::SetActorActive(AActor* Actor, bool bActive){ Actor->SetActorHiddenInGame(!bActive); Actor->SetActorEnableCollision(bActive); //SetActorTickEnabled(bActive);}Tick 쓸 거면 주석 해제하고 사용저 대로 쓰면 액티베이트 조정 됨 // Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"#include "GameFramew..

서버 말고는 GravityDirection이 동기화가 안되어 있었다CharacterMovementComponent는 위치나 가속도 등의 핵심 정보만 동기화한다고 함 방법1. 다시 캐릭터로 중력 세팅 책임 옮기기이건 그냥 코드가 마음에 안듦이걸 Character의 OnActorBeginOverlap이나 Tick에서 처리하기 싫음기각 방법2. RPC로 GravityDirection 세팅시키기Tick이든 Timer든, 짧은 간격으로 RPC 날리는 건 트래픽이 너무 많아져서 싫음포톤 퓨전2에서 Update에 넣어두고 RPC 너무 날려서 게임 꺼진 적 있어서 꺼려짐기각 방법3. 게임플레이 어빌리티로 만들어서 Gravity Core에 들러붙는 능력으로 만들기Character 클래스의 책임도 덜해지고,각 캐릭터를 ..

GAS나 Multiplay 같이 있는 예시가 그렇게 많진 않아 세팅하기 좀 어렵다Lyra는 코드 자체가 좀 너무 많아 참고하려면 시간이 많이 걸릴 것이다그래서 여기저기 뒤져보면서 코드 정리해서 만들어놨다 1. 기본 설정 (일반 멀티플레이 설정이랑 같고, GAS랑 관계 없이 기본 설정)bReplicates = true 및 컴포넌트들에 리플리케이션 설정이것만 해놔도 어느 정도는 리플리케이션이 된다(ex. 스태틱 메시 컴포넌트 리플리케이트 설정 안하면 클라이언트에서 안보임) 2. Player Ability System 설정 // player cppvoid ACSCharacterPlayer::PossessedBy(AController* NewController){ Super::PossessedBy(NewCont..

https://openmynotepad.tistory.com/118 [Unreal Engine 5] 공격 판정충돌 채널의 설정 월드는 이 처럼 3가지의 충돌 판정을 제공하고있다. 충돌체와 충돌했는지를 판단하고, 해당 액터의 정보를 가져올 수 있다. LineTrace : 지정한 방향으로 선을 그어, 어떤 물체가openmynotepad.tistory.com트레이스 관련해서 좋은 글이 있음 https://lagooneng.tistory.com/329 [UE Game Framework] #6 Character Attack Hit Check캐릭터 액션의 충돌 판정- 월드가 제공하는 충돌 판정 서비스를 사용- 월드는 크게 세 가지의 충돌 판정 서비스를 제공함 - LineTrace : 지정한 방향으로 선을 투사..