일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Replication
- Unreal Engine
- 게임 개발
- 운영체제
- gas
- Security
- Race condition
- 유스케이스
- CTF
- pdlc
- ret2libc
- linear difference equation
- dirty cow
- dtft
- reverse gravity
- stride
- 유니티
- 언리얼 엔진
- 언리얼엔진
- DSP
- gameplay ability
- MAC
- gravity direction
- Rr
- DP
- gameplay effect
- MLFQ
- 게임개발
- 메카님
- ability task
- Today
- Total
목록언리얼 엔진/ChronoSpace (12)
다양한 기록
서버 말고는 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://www.youtube.com/watch?v=CZK7QplEbJs위 영상을 보고 만들긴 했는데, 위 영상은 Player한테 Gravity Direction의 조정을 맡긴다Player에 책임이 과도해지기도 하고 마음에 안드는 부분들이 좀 있어서분리하여 역할을 GravityCore에 맡겼다 분리하는 것으로 모든 ACharacter를 상속하는 클래스가 이 영향을 받을 수 있게 된다 // Fill out your copyright notice in the Description page of Project Settings.#include "Actor/CSGravityCore.h"#include "GameFramework/Character.h"#include "GameFramework/Character..
중력 반전과 다른 건 몇가지 안된다 1. 중력 변수 조정타겟 액터에서 이벤트 발생 시 GravityCoef를 곱하거나 나눠주는 방식으로 작동한다 2. GravityCoef의 에디터 상 조절타겟 액터와 어빌리티 태스크에 SetGravityCoef 존재=> 게임 어빌리티에서 GravityCoef 조정하면 타겟 액터까지 전달됨상속받아서 블루프린트 만들고블루프린트 들어가서 값 조정 캐릭터에서 해당 블루프린트 어빌리티 설정 그밖의 인풋 설정 등등까지 해주면 된다 3. 매테리얼 채도(Saturation) 조정void ACSTA_WeakenGravityBox::BeginPlay(){ SaturationSetting();}void ACSTA_WeakenGravityBox::SaturationSetting(){..
https://www.youtube.com/watch?v=_TNFaHFzXfM&t=270s메테리얼은 이거 보고 만들었는데,내부 로직은 Chrono Space가 오브젝트가 캐릭터 기반이라 아예 다를 것이라그냥 내부 안보고 새로 만들었다 메테리얼 관련 소스CSGABlackHoleCSAT_BlackHoleSphereCSTA_BlackHoleSphere CSGAWhiteHoleCSWhiteHole (일반 액터임) 화이트홀이 없다 → 블랙홀이 Event Horizon 내부로 들어온 거 제거화이트홀이 있다 → 블랙홀이 화이트홀 위치로 이동시킴화이트홀은 CSCharacterPlayer가 보유 → 멀티플레이어 환경에선 각각 로컬 플레이어마다 하나씩 보유 가능 블랙홀// Fill out your copyright not..
Character Movement Component의 Gravity Scale을 이용하기 때문에, 각종 물체를 Character로 하기로 기획하며 정했다그런데 문제는, 이러면 Mesh의 Simulate Physics 기능을 이용할 수 없다Character Movement Component가 움직임을 덮어써버리기 때문이다 그렇기에, Character Movement Component 자체의 AddForce를 이용하기로 했다내부적으로 Character Movement Component에 설정된 Mass를 계산해서 알아서 물리 적용을 해준다CharacterMovementComponent에 모든 물리적 이동을 맡겨야 한다(안그러면 설정 충돌 때문에 제대로 이동이 안됨) CharacterMovementCompon..
https://www.youtube.com/watch?v=JGJWNPI6sMw메테리얼 자체는 이거 보고 따라 만들었다 1. 메테리얼 컴포넌트 만들어 붙이기 일단 스태틱 매시 컴포넌트 만들고 메시 붙이기메시는 그냥 기존 흰 색 큐브 복사해서 폴더만들어서 넣어놓기만 한 거 2. 메테리얼 컴포넌트 위치 조정 관련 만들었던 트리거는 중심이 0, 0, 0으로 지정되는데,큐브 메시는 한 꼭짓점이 0, 0, 0으로 설정되어 있는 듯 하자그런데 이거 조정이 Maya같은 외부 프로그램을 써야 한다는 얘기도 있고,수정하긴 어려워보여서 직접 계산해서 옮겨준다 그런데 트리거 크기에 메시 크기를 맞춰야 하니까, 몇 배 해야하는지 계산하는 코드이다트리거의 Extent는 반경이라, 큐브의 반경인 50을 기준 값으로 삼아서 계산 ..
// Fill out your copyright notice in the Description page of Project Settings.#include "GA/TA/CSTA_ReverseGravityBox.h"#include "AbilitySystemComponent.h"#include "Abilities/GameplayAbility.h"#include "GameFramework/Character.h"#include "GameFramework/CharacterMovementComponent.h"#include "Components/CapsuleComponent.h"#include "AbilitySystemBlueprintLibrary.h"#include "Components/BoxComponent.h..