기본 콘텐츠로 건너뛰기

250521 MetaSound, Physics


Meta Source

 


상단의 Meta Sound를 누르면 Output Format을 설정할 수 있고, 기본 mono에서 Stereo로 바꾸면 Output Left, Output Right로 변경된다.

왼쪽 오른쪽에 동일한 볼륨이라면 Mono로 하면 되고, 왼쪽 오른쪽과 같은 공간에 대한 차이가 필요하다면 Stereo나 Surround 등의 다른 Output을 설정하면 된다.


블루프린트처럼 좌측에 Variable을 추가해서 값을 설정하여 사용할 수도 있다.

Pitch Shift : 소리 음정 변화, 고저

Loop : 반복 여부


Onplay : 해당사운드가 재생 되는 순간, 동시 재생과 같은 것이 가능.

OnFinished : 사운드 재생이 끝났을 때

OnLooped : 반복 되었을 때


동시 재생시에 사운드를 합쳐주어야 하므로 Mixer를 이용해서 두 사운드를 믹스해준다.



기본적으로 존재하는 OnFinished의 경우 Interface로 제거할 수 있고, 좌측의 Interface도크에서 다른 인터페이스도 사용 가능하다.

기본적으로 MetaSound는 AutoActivate인 것에 주의하자.


Wave Asset을 Variable로 만들고, Is Array로 설정하면 Array로 만들 수 있다.

Wave Asset은 SoundWave만 가능함을 주의하자.

Array는 RandomGet을 통해 element를 랜덤으로 뽑아줄 수 있다.


Random Float로 Pitch를 변화시켜 같은 사운드여도 매번 새로운 느낌을 줄 수도 있다.



Variable을 생성해서 Trigger로 설정해줄 수 있다.

블루프린트의 Event처럼 사용할 수 있게 된다.





사운드 재생을 위해 사용할때, Spawn Sound Attached와 Create Sound 2D를 사용하자.

PlayerSound, Location은 권장하지 않는다.



Event Destoryed를 이용하면 Destroy되었을 때 실행되게 할 수 있다.

Execute Trigger Parameter에 앞서 Trigger의 이름을 넣어주면 해당 Trigger를 실행할 수 있다.




Trigger Repeat
Period 마다 재생 Loop와 비슷하지만 랜덤한 값을 줄 때 활용 가능.

BPM To Seconds
beat per minute : 1분에 몇 비트인지. 60이면 기본 1초



Trigger Sequence
In이 들어올 때 마다 순차적으로 연결된 Execute를 실행한다.

Trigger Any
입력 트리거 중 하나만 들어와서 활성화

Trigger Accumulate
In이 모두 연결되면 활성화

Trigger Filter
Heads 또는 Tail를 출력, 1에 가까우면 Heads, 0에 가까우면 Tails. 0.5 는 랜덤
Probability가 1이면 Heads, 0이면 Tails

Trigger Delay
트리거를 지연해서 출력.


바람 효과
Noise를 이용한다.
그리고, Mixer에 Input을 하나 만들어서 해당 값을 Gain에 넣어 볼륨 값을 조절한다.

이번에 만든 것은 OnPlay에 연결되어 있지 않기 때문에, 따로 Play를 해주어야 한다.
만든 Input값을, SetFloatParameter를 이용해서 이동속도를 Clamp한 값으로 사용해서 플레이어가 이동하면 속도가 올라 Clamp에 의해 값이 1로 맞추어져서 소리가 더 크게 들린다.


차량 소리
Loop Start를 이용하면 어느 시점에서 Loop할지 설정할 수 있다.
차량 같은 경우 시동을 걸고 난 후, 반복적인 엔진소리가 들리는 경우가 있는데, 이러한 경우에 LoopStart의 위치에 Duration만큼 반복되는 소리를 재생할 수 있다.

마찬가지로 Chaos Vehicle Component의 Rotation을 Clamp하여 값을 넣어준다.



CMD Command Line


Physics



Linear Motor
Position Target : 머무르려고 하는 힘
Velocity Target : 그곳으로 가려고 하는 힘.

Angular Limit
회전축을 제한 할 수 있다.
Swing 1 : Z
Swing 2 : Y
Twist : X

Angular Motor
Slerp : Lerp를 통해 중심, 속도를 이용해 각도를 계산. 하나라도 Locked이면 제대로 작동안함.
Twist and Swing : Locked한 Angle이 있어야 작동. 짐벌락 현상 발생함.

Cable
Attach End To를 설정
Segments를 조절하여 나눌 수 있음. 부드럽게 보임.


Target Orientation
유지하려는 힘.
Target Velocity
튀어 오르는 힘.

SLERP를 사용하기 위해서는 Angular Limits가 전부 Free여야 한다.


Thruster
자식으로 설정하면 해당 방향으로 로켓같이 날아감.



🎼참고

MetaSound 함수들
https://dev.epicgames.com/documentation/ko-kr/unreal-engine/metasound-function-nodes-reference-guide-in-unreal-engine

MetaSound 활용사례 : 폭발, 바람 등
https://dev.epicgames.com/documentation/ko-kr/unreal-engine/metasounds-quick-start?application_version=5.5#3-%EB%B0%94%EB%9E%8C%EB%A9%94%ED%83%80%EC%82%AC%EC%9A%B4%EB%93%9C%EC%83%9D%EC%84%B1

MetaSound 공식 설명 영상
https://youtu.be/3230-FwCts0

에디터 콘솔 명령어
https://microsoft.tistory.com/982

이 블로그의 인기 게시물

250523 PCG 2

PCG Building Volume Sampler를 사용할 경우 Voxel Size를 맞추어주자. 2m길이를 Transform Points로 Offset을 이동시켜 Difference를 통해 메쉬를 생성한다. 사용시에 Pivot의 위치가 중앙이 아니면 제대로 표현되지 않을 것이다. PCG Landscape Landscape 생성후 PCG Volume 생성. Get Landscape Data - Surface Sampler 안보인다면 Generate Surface Sampler 일반 그리드 패턴으로 서피스 데이터에 포인트를 샘플링합니다. 이 노드에는 다음과 같은 옵션이 있습니다. 포인트 규모(Point Extents) : 서피스의 기본 그리드 셀 크기를 정의합니다. 여유(Looseness) : 변형 가능한 셀 크기를 정의합니다. 실제로 셀 크기는 포인트 규모 * (1 + 여유)입니다. 제곱미터당 포인트(Points Per Square Meter) : 유지되는 셀의 비율을 계산합니다. 이 프로퍼티는 그리드가 클 때 과잉을 제한합니다. Looseness : 기본 1. 0일경우 Extent의 길이 만큼, 1일경우 2배가 됨.  Attribute Filter를 생성하고, Material에 해당하는 Layer를 찾아서 이름을 넣어준다. Type을 Float로 하고 Float Value를 설정하면, 해당 머티리얼이 색칠된 정도 0~1에서 Operator에 의해 >(초과) 0.6초과 일 경우만 생성되게 할 수 있다. 값을 1로 하고 Equal을 이용해서 1인 경우만 생성되게 하는 것도 가능하다. plugin Water body lake를 넣으면, 이또한 Spline이라는 것을 알 수 있다. 따라서 Get Spline Data-Spline Sampler를 통해 사용할 수 있다. GetActorData와 Difference를 통해서 Lake내부를 제거해주기 PCG Mesh Mesh Sampler를 쓰기위해 Get Actor Property를 이용하면, 해당 액터가 ...

250604 저장불러오기

SaveGame 블루프린트 생성 Game Instance 생성, Init 오버라이드 AC_Inventory Save Load

250609 온라인

 Online Subsystem외에도 어느 서버를 사용할 것인지에 따라 플러그인을 추가해주어야 한다. 공통으로 OnlineSubsystem으로 시작한다. 헤더파일 CPP파일 cmd에서 Ipconfig를 통해 Ipv4를 넣어주면 된다. DefaultEngine.ini 수정 https://dev.epicgames.com/documentation/ko-kr/unreal-engine/online-subsystem-steam-interface-in-unreal-engine#%EC%99%84%EC%84%B1%EC%84%B8%ED%8C%85 [/Script/Engine.GameEngine] +NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver") [OnlineSubsystem] DefaultPlatformService=Steam [OnlineSubsystemSteam] bEnabled=true SteamDevAppId=480 bInitServerOnclient=true [/Script/OnlineSubsystemSteam.SteamNetDriver] NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection" 전용 서버 없이 클라이언트가 서버를 만들 수 있게 함. 호스팅 Binaries와 Saved파일을 한번 제거해주고, Generate해주기 헤더파일 헤더파일 CPP 파일 CreateSessionComplete, FindSessionsComplete, JoinSessionComplete 생성자 CreateGameSession 세션을 생성하고 존재하면 제거한다. OnCreateSessionComplete ServerTrav...