요약: 이 페이지에는 Feel을 사용하여 일반적인 작업을 몇 가지 단계로 수행하는 방법을 가르쳐주는 '레시피'가 나와 있습니다.

테이블 내용
  • 소개  
        -  프로젝트에 Feel을 설치하는 방법?  

        -   MMF Player를 사용하여 파티클 시스템을 트리거하는 방법?  

        -   시네머신 카메라 흔들림을 설정하는 방법 (카메라 흔들림을 설정하는 권장 방법)  

        -   일반 카메라 흔들림을 설정하는 방법  

        -   시네머신 임펄스 소스 피드백을 설정하는 방법  

        -   일반 카메라 흔들림을 설정하지만 여전히 가상 카메라를 타겟팅하는 방법  

        -   Feel을 URP와 함께 사용하는 방법?  

        -   그럼 MMF Player를 URP 볼륨과 함께 사용하는 방법?  

        -   실행 시간에 스크립트를 통해 피드백의 속성을 변경하는 방법?  

        -   피드백을 역재생하는 방법?  

        -   피드백이 재생 중일 때 되돌리는 방법?  

        -   Playmaker로 MMF Player를 트리거하는 방법?  

        -   카메라 줌 피드백을 설정하는 방법?  

        -   시네머신을 사용하여 카메라 줌 피드백을 설정하는 방법?  

        -   타임라인을 통해 MMF Player를 트리거하는 방법?  

        -   MMFader 및 페이드 피드백을 설정하는 방법?  

        -   간단한 위치 피드백을 설정하는 방법?  

        -   목적지로 스케일 피드백을 설정하는 방법?  

        -   MMHealthBar 컴포넌트를 사용하여 자동으로 체력 바를 그리는 방법?  

        -   플로팅 텍스트를 설정하여 피드백을 통해 재생하는 방법?  

        -   씬에서 객체를 흔드는 방법?  

        -   MMBlink 컴포넌트를 설정하는 방법  

        -   피드백을 사용하여 스프링 컴포넌트를 조종하는 방법?  

        -   랜덤 볼륨으로 무작위 소리를 재생하는 방법?  

        -   깜빡임 피드백을 설정하는 방법?  

        -   셰이더 컨트롤러를 설정하고 피드백으로 조종하는 방법?  

        -   간단한 스프링 컴포넌트를 설정하는 방법?  

        -   피드백 및 셰이커에 채널 자산을 설정하는 방법?  

        -   모든 소리를 음소거하는 버튼을 추가하는 방법?  

        -   3D 소리를 재생하는 방법?  

        -   플래시 피드백을 트리거하는 방법?  

        -   스크립트로 구동되는 일시 중지를 설정하는 방법?  

        -   애니메이션 이벤트를 사용하여 애니메이션에서 MMF Player를 재생하는 방법?  

        -   후처리 이동 필터 설정 방법  

        -   참조 홀더 피드백을 사용하는 방법?  

        -   빌보딩 및 고스트 카메라 설정 방법?  

        -   위치 셰이커 설정 방법  

        -   MM Progress Bar 설정 방법?  

  • 스크립트를 통해 막대 값 제어  
        -   객체에 스쿼시 및 스트레치 동작을 추가하는 방법?  

        -   UI 요소 호버 효과 설정 방법?  

        -   코루틴의 나머지 부분을 실행하기 전에 MMF Player가 완료되기를 기다리는 방법?  

        -   특정 유형의 피드백을 비활성화하는 방법?  

        -   피드백을 사용하여 씬을 추가로 로드하는 방법?  

        -   스쿼시 및 스트레치 피드백을 설정하는 방법?  

 

 

소개

빠르게 Feel을 시작하고 싶으신가요? 이 페이지에는 여러 기본 상황에 따라 따라할 수 있는 간단한 단계가 포함되어 있습니다. 설명 없이 빠른 단계만 제공됩니다. 엔진이 어떻게 작동하는지 더 알고 싶다면 나머지 문서를 확인해보세요. 무엇을 달성하고 싶은지 궁금하거나 이 페이지에 특정 레시피를 보고 싶다면 주저하지 말고 제안해 주세요!

이 중 대부분은 Feel / Unity 버전을 제공하지만, 이는 처음 작성된 컨텍스트를 제공하기 위한 것일 뿐입니다. 하지만 더 높은 버전의 Unity와 Feel에서도 작동할 것으로 보장할 수 있습니다.

 


프로젝트에 Feel을 설치하는 방법?

프로젝트에 Feel을 추가하려면 아래 간단한 단계를 따르세요:
  1. Unity 2022.3.23f1 또는 그 이상의 버전(각 Feel 버전에 필요한 Unity 최소 버전은 릴리스 노트를 참조)을 사용하여 새 프로젝트를 생성하고, "3D" 템플릿을 선택합니다.
  2. 패키지 매니저를 통해 Feel 페이지로 이동하여 다운로드 버튼을 클릭한 다음 가져오기(import) 버튼을 클릭합니다.
  3. "Unity 패키지 가져오기" 팝업이 나타날 때까지 기다리고, 모든 항목이 선택되어 있는지 확인한 후(기본적으로 선택되어 있을 것입니다) "가져오기(import)"를 클릭합니다.
  4. Unity의 패키지 매니저를 열고, 최신 버전의 Post Processing 패키지를 설치합니다.
  5. 패키지 매니저에서 최신 버전의 Cinemachine 패키지를 설치합니다.
  6. 패키지 매니저에서 최신 버전의 TextMesh Pro 패키지를 설치합니다.
  7. 패키지 매니저에서 최신 버전의 Animation 2D 패키지를 설치합니다(이것은 Letters 데모에만 유용합니다).
  8. MMFPlayerDemo 씬(또는 다른 데모)을 열고, 재생 버튼을 누르고, 즐기세요.

 


MMF Player를 사용하여 파티클 시스템을 트리거하는 방법?

  1. Unity 2022.3.23f1(또는 그 이상)에서 새 프로젝트를 만들고 패키지 매니저를 통해 Feel v4.1.2(또는 그 이상)를 가져옵니다.
  2. 새 씬을 생성합니다.
  3. 새 빈 객체를 생성하고 파티클 시스템 컴포넌트를 추가합니다.
  4. 렌더러(Renderer) 패널에서 Material 필드 오른쪽의 점을 클릭하고 FeelSnakeEatParticlesMaterial을 선택하여 파티클 시스템을 조금 더 예쁘게 만듭니다.
  5. Emission 펼침 항목에서 RateOverTime을 0으로 설정하고, Bursts 아래의 작은 “+”를 눌러 버스트를 추가합니다(기본 설정으로 충분합니다).
  6. 인스펙터 상단에서 StartLifetime을 0.5로 설정합니다.
  7. 목록의 펼침 항목에서 SizeOverLifetime을 체크하고, 크기 곡선을 기본 하향 곡선 중 하나로 설정합니다.
  8. 파티클 시스템을 재생하면 빠르게 줄어드는 여러 개의 거품이 보일 것입니다.
  9. 새 빈 객체를 생성하고 이름을 MyTestFeedbacks로 설정한 다음, MMF Player 컴포넌트를 추가합니다.
  10. ParticlesPlay 피드백을 추가하고, 생성한 파티클 시스템을 BoundParticleSystem 슬롯에 드래그합니다.
  11. 에디터에서 재생 버튼을 누르고, MyTestFeedbacks 객체를 선택한 다음, MMF Player의 인스펙터에서 녹색 Play 버튼을 누릅니다.
  12. 이제 MMF Player를 통해 파티클 시스템을 트리거하는 방법을 알게 되었습니다. 다른 방법으로는 파티클 시스템을 프리팹으로 만들어 ParticleInstantiation 피드백을 사용하는 방법도 있습니다.

 


시네머신 카메라 흔들림을 설정하는 방법 (카메라 흔들림을 설정하는 권장 방법)

  1. Unity 2022.3.23f1(또는 그 이상)에서 새 프로젝트를 만들고 패키지 매니저를 통해 Feel v4.1.2(또는 그 이상)를 가져옵니다.
  2. 패키지 매니저에서 Cinemachine을 가져옵니다.
  3. 새 빈 씬을 생성합니다.
  4. 큐브를 추가하고 위치를 0,0,0으로 설정합니다.
옵션 1: 자동 셰이커 설정

  1. 빈 게임 오브젝트를 생성하고 이름을 MyTestFeedbacks로 설정한 후, MMF Player 컴포넌트를 추가하고 위치를 0,0,0으로 설정합니다.
  2. "Add new feedback" 드롭다운을 통해 새 Cinemachine Impulse 피드백을 추가합니다.
  3. Automatic Setup 펼침 항목을 펼치고 Automatic Shaker Setup 버튼을 누릅니다. 필요한 경우 MainCamera를 선택하고 CinemachineBrain이 추가되어 있는지 확인합니다. 없다면 하나 추가합니다.
  4. 에디터에서 재생 버튼을 누르고 MyTestFeedbacks 객체를 선택한 다음, MMF Player의 인스펙터에서 녹색 Play 버튼을 누릅니다.
  5. 카메라 흔들림을 확인합니다!
옵션 2: 수동 설정

  1. 상단 메뉴의 Cinemachine 메뉴를 통해 새로운 가상 카메라를 생성합니다.
  2. 가상 카메라를 선택하고 AddExtensions 드롭다운을 통해 Impulse Listener를 추가합니다.
  3. 빈 게임 오브젝트를 생성하고 이름을 MyTestFeedbacks로 설정한 후, MMF Player 컴포넌트를 추가하고 위치를 0,0,0으로 설정합니다.
  4. "Add new feedback" 드롭다운을 통해 새 Cinemachine Impulse 피드백을 추가합니다.
  5. 인스펙터에서 RawSignal 필드 끝에 있는 작은 톱니바퀴를 클릭하고 Presets > 6D Shake를 선택합니다. (톱니바퀴 아이콘이 작동하지 않으면 - 알려진 Cinemachine 버그입니다 - Packages/Cinemachine/Presets/Noise/에서 동일한 프리셋을 찾아 임펄스 피드백 인스펙터에 드래그할 수 있습니다.)
  6. 인스펙터 하단에서 Velocity를 5,5,5로 설정합니다.
  7. 에디터에서 재생 버튼을 누르고 MyTestFeedbacks 객체를 선택한 다음, MMF Player의 인스펙터에서 녹색 Play 버튼을 누릅니다.
  8. 카메라 흔들림을 확인합니다!

 


일반 카메라 흔들림을 설정하는 방법(시네머신 없이)

  1. Unity 2022.3.23f1(또는 그 이상)에서 새 프로젝트를 만들고 패키지 매니저를 통해 Feel v4.1.2(또는 그 이상)을 가져옵니다.
  2. 새 빈 씬을 생성합니다.
  3. 큐브를 추가하고 위치를 0,0,0으로 설정합니다.

옵션 1: 자동 셰이커 설정

  1. 빈 게임 오브젝트를 생성하고 이름을 MyTestFeedbacks로 설정한 후, MMF Player 컴포넌트를 추가합니다.
  2. "Add new feedback" > "Camera" > "Camera Shake" 피드백을 추가합니다.
  3. Automatic Setup 펼침 항목을 펼치고 Automatic Shaker Setup 버튼을 누릅니다.
  4. 에디터에서 재생 버튼을 누르고, MyTestFeedbacks 인스펙터에서 Play 버튼을 누르면 카메라가 흔들립니다.

옵션 2: 수동 설정

  1. 카메라 위치에 빈 게임 오브젝트를 생성하고 이름을 CameraRig로 설정합니다.
  2. 카메라 위치에 빈 게임 오브젝트를 하나 더 생성하고 이름을 CameraShaker로 설정한 후, 이를 CameraRig 아래에 둡니다.
  3. 카메라를 CameraShaker 아래에 둡니다 (CameraRig > CameraShaker > MainCamera 구조가 되어야 합니다).
  4. CameraShaker 노드에 MMCameraShaker 컴포넌트를 추가합니다.
  5. MMCameraShaker의 MMWiggle 설정에서 Position을 체크하고, wiggle 타입으로 Noise를 선택하고, wiggle permitted를 체크 해제합니다.
  6. 빈 게임 오브젝트를 생성하고 이름을 MyTestFeedbacks로 설정한 후, MMF Player 컴포넌트를 추가합니다.
  7. "Add new feedback" > "Camera" > "Camera Shake" 피드백을 추가합니다.
  8. 에디터에서 재생 버튼을 누르고, MyTestFeedbacks 인스펙터에서 Play 버튼을 누르면 카메라가 흔들립니다.

 


시네머신 임펄스 소스 피드백을 설정하는 방법

  1. Unity 2022.3.23f1(또는 그 이상)에서 새 프로젝트를 만들고 패키지 매니저를 통해 Feel v4.1.2(또는 그 이상)을 가져옵니다.
  2. 패키지 매니저에서 Cinemachine을 가져옵니다.
  3. 새 빈 씬을 생성합니다.
  4. 큐브를 추가하고 위치를 0,0,0으로 설정합니다.
  5. 상단 메뉴의 Cinemachine 메뉴를 통해 새로운 가상 카메라를 생성합니다.
  6. 가상 카메라를 선택하고 AddExtensions 드롭다운을 통해 Impulse Listener를 추가합니다.
  7. 빈 게임 오브젝트를 생성하고 이름을 MyTestFeedbacks로 설정한 후, MMF Player 컴포넌트를 추가하고 위치를 0,0,0으로 설정합니다.
  8. MyTestFeedbacks 오브젝트에 CinemachineImpulseSource 피드백을 추가합니다.
  9. AddComponent 버튼을 통해 Cinemachine Impulse Source를 추가하고, 해당 컴포넌트를 피드백의 ImpulseSource 필드에 드래그합니다.
  10. 에디터에서 재생 버튼을 누르고, MyTestFeedbacks 인스펙터에서 Play 버튼을 누르면 카메라가 흔들립니다.

 


일반 카메라 흔들림을 설정하지만 여전히 가상 카메라를 타겟팅하는 방법

  1. Unity 2022.3.23f1(또는 그 이상)에서 새 프로젝트를 만들고 패키지 매니저를 통해 Feel v4.1.2(또는 그 이상)을 가져옵니다.
  2. 패키지 매니저에서 Cinemachine을 가져옵니다.
  3. 새 빈 씬을 생성하고 큐브를 추가한 후 위치를 0,0,0으로 설정합니다.
  4. 새로운 Cinemachine 가상 카메라를 생성하고 큐브를 볼 수 있는 위치로 설정합니다.
  5. 가상 카메라에서 Noise를 BasicMultiChannelPerlin으로 설정하고, NoiseProfile을 6D Shake로 설정합니다. AmplitudeGain을 0으로, FrequencyGain을 0으로 설정합니다.
  6. 가상 카메라에 MMCinemachineCameraShaker를 추가합니다.
  7. 새 빈 게임 오브젝트를 생성하고 MMF Player를 추가합니다. "Camera > Camera Shake" 피드백을 추가한 후 CameraShakeProperties를 펼치고 Duration을 0.3, Amplitude를 2, Frequency를 40으로 설정합니다.
  8. 에디터에서 재생 버튼을 누르고, MMF Player에서 Play 버튼을 누릅니다.

 

 

 


Feel을 URP와 함께 사용하는 방법?

  1. Unity에서 URP 템플릿을 사용하여 새 프로젝트를 생성합니다.
  2. 패키지 매니저를 통해 최신 버전의 Feel을 가져옵니다.
  3. 이제 URP 프로젝트에서 Feel을 사용할 수 있습니다.

 

 

 


그럼 MMF Player를 URP 볼륨과 함께 사용하는 방법?

  1. 위의 단계에 따라 프로젝트를 설정한 후:
  2. 새 씬을 생성합니다.
  3. 큐브를 추가하고 위치를 0,0,0으로 설정합니다.

옵션 1: 자동 셰이커 설정

  1. 빈 게임 오브젝트를 생성하고 이름을 MyTestFeedbacks로 설정한 후 MMF Player 컴포넌트를 추가합니다. "add new feedback" 드롭다운을 클릭하고 PostProcess > Vignette URP를 선택합니다.
  2. Automatic Setup 펼침 항목을 펼치고 Automatic Shaker Setup 버튼을 누릅니다.
  3. 에디터에서 재생 버튼을 누르고, MMF Player의 녹색 Play 버튼을 누르면 비네트의 강도가 보간됩니다.

옵션 2: 수동 설정

  1. 새로운 Global Volume을 생성합니다 (Hierarchy 패널에서 오른쪽 클릭, volume > global volume).
  2. 인스펙터에서 Profile 옆에 있는 New 버튼을 누릅니다.
  3. Vignette를 오버라이드로 추가하고, Vignette의 강도를 0.5로 설정합니다.
  4. 글로벌 볼륨에 새로운 컴포넌트를 추가하고, MMVignetteShaker_URP를 입력하여 추가합니다.
  5. MainCamera를 선택하고, 인스펙터의 Rendering 섹션에서 PostProcessing을 체크합니다.
  6. 이제 게임 뷰에서 비네트를 볼 수 있어야 합니다.
  7. 빈 게임 오브젝트를 생성하고 이름을 MyTestFeedbacks로 설정한 후 MMF Player 컴포넌트를 추가합니다.
  8. "add new feedback" 드롭다운을 클릭하고 PostProcess > Vignette URP를 선택합니다.
  9. 인스펙터에서 Remap Intensity Zero를 0.5로 설정합니다.
  10. 에디터에서 재생 버튼을 누르고, MyTestFeedbacks 객체를 선택한 다음 MMF Player의 녹색 Play 버튼을 누릅니다.
  11. 이제 볼륨 피드백을 트리거하는 방법을 알게 되었습니다. 다른 후처리 필터를 타겟팅하려면 해당 볼륨에 해당 Shaker를 추가하면 됩니다.

 


실행 시간에 스크립트를 통해 피드백의 속성을 변경하는 방법?

런타임에 피드백의 속성을 변경해야 하는 경우가 많습니다. 물론 가능합니다. 이 예제에서는 Duck 데모에서 Chromatic Aberration 피드백의 강도를 변경하는 방법을 알아보겠습니다. 다른 피드백의 다른 속성에 대해서도 동일한 논리가 적용됩니다.
  1. Unity 2022.3.23f1(또는 그 이상)에서 새 프로젝트를 만들고 패키지 매니저를 통해 Feel v4.1.2(또는 그 이상)을 가져옵니다.
  2. FeelDuck 데모 씬을 엽니다.
  3. 새 빈 게임 오브젝트를 생성하고 이름을 RuntimeTest로 설정합니다.
  4. Feel 폴더 외부에 새 C# 스크립트를 생성하고 이름을 RuntimeTest로 설정한 다음, 다음 코드를 붙여넣습니다:
using MoreMountains.Feedbacks;
using MoreMountains.FeedbacksForThirdParty;
using MoreMountains.Tools;
using UnityEngine;

public class RuntimeTest : MonoBehaviour
{
    public MMF_Player TargetFeedback;
    [Range(-100f, 100f)]
    public float Intensity = 0f;
    [MMInspectorButton("TestFeedback")]
    public bool PlayFeedbackBtn;

    private MMF_LensDistortion _lensDistortion;

    private void Start()
    {
        // 시작할 때 렌즈 왜곡 피드백 컴포넌트를 저장하여 나중에 이를 타겟으로 할 수 있도록 합니다.
        _lensDistortion = TargetFeedback.GetFeedbackOfType<MMF_LensDistortion>();
    }

    public void TestFeedback()
    {
        // 피드백을 재생하기 전에 RemapIntensityOne 값을 수정합니다.
        // 이것은 Unity의 다른 컴포넌트의 공개 속성을 수정하는 것과 동일하게 수행됩니다.
        if (_lensDistortion != null)
        {
            _lensDistortion.RemapIntensityOne = Intensity;
        }
        // 그런 다음 MMF_Player를 재생합니다.
        TargetFeedback?.PlayFeedbacks();
    }
}
  1. 그럼 이 스크립트를 RuntimeTest 게임 오브젝트에 추가하세요.
  2. Hierarchy 패널에서 FeelDuckLandingFeedback 오브젝트를 선택하고, 그것을 RuntimeTest 오브젝트의 Inspector에서 TargetFeedback 슬롯에 드래그하세요.
  3. 에디터에서 재생을 누르고, RuntimeTest 오브젝트를 선택한 후 인스펙터에서 강도 값을 변경하고 TestFeedback 버튼을 누르세요. 매번 재생할 때, 인스펙터에서 변경한 값이 재생되기 전에 피드백으로 전송됩니다.
런타임에서 값이 변경될 때 중요한 점은 성능 이유로 일부 값이 캐시될 수 있다는 것입니다. 따라서 언제나 값이 캐시되지 않았는지, 올바른 속성을 타겟으로 하고 있는지, 필요할 경우 캐시를 재설정하는지 반드시 확인하세요.

 

 

피드백을 역재생하는 방법?

  1. MMF_Player를 선택하고, 그 Settings 폴더를 열어 Direction을 BottomToTop으로 설정하세요.
  2. 또는 코드를 통해 강제로 설정할 수도 있습니다:
MyPlayer.Direction = MMFeedbacks.Directions.BottomToTop;
MyPlayer.PlayFeedbacks();
   3. 전용 섹션에서 방향 옵션에 대해 더 자세히 알아볼 수 있습니다.

 


피드백이 재생 중일 때 되돌리는 방법?

  1. Unity 2022.3.23f1 (또는 그 이상 버전)에서 새 프로젝트를 생성하고 Package Manager를 통해 Feel v4.1.2 (또는 그 이상 버전)을 가져옵니다.
  2. 새 빈 씬을 만들고, 거기에 큐브를 추가하여 위치를 0,0,0으로 설정합니다.
  3. 그리고 빈 오브젝트를 하나 더 추가하고, 그 안에 MMF Player를 추가합니다. 이 MMF Player에 Position 피드백을 추가하고, 타겟을 앞서 추가한 큐브로 설정하고, 지속 시간을 5초로 하고, 목적지 위치를 0,5,0으로 설정합니다.
  4. 에디터에서 재생 버튼을 누른 후, MMF Player의 녹색 재생 버튼을 클릭하여 피드백을 시작하고, 2초 후에는 MMF Player의 Revert 버튼을 클릭하여 피드백을 되돌릴 수 있습니다.
  5. 또한 코드를 통해서도 MMF Player의 Revert() 메서드를 호출하여 간단히 되돌릴 수 있습니다.

 


Playmaker로 MMF Player를 트리거하는 방법?

  1. Unity 2022.3.23f1 (또는 그 이상 버전)에서 새 프로젝트를 생성하고 Package Manager를 통해 Feel v4.1.2 (또는 그 이상 버전)을 가져옵니다.
  2. 그리고 Playmaker를 설치합니다.
  3. 새로운 씬을 만들고, 빈 GameObject를 생성하여 MyFeedbacks라고 이름을 지정하고, 그 안에 MMF Player 컴포넌트를 추가합니다.
  4. MMF Player에 Debug Log 피드백을 추가하고, Debug Message를 "Hello!"로 설정합니다.
  5. Playmaker 에디터를 열고, 오른쪽 클릭하여 FSM(상태 머신)을 추가합니다.
  6. 이 첫 번째 상태를 "GettingInput"으로 이름을 변경하고, Action Browser를 사용하여 GetKeyDown 액션을 추가하고, 키를 F2로 설정합니다.
  7. Send Event 드롭다운에서 New Event를 선택하여 "F2Pressed"라고 이름을 지정하고, CreateEvent 버튼을 누릅니다. 그런 다음 빨간 라벨을 클릭하여 상태로의 전환을 추가합니다.
  8. FSM에 오른쪽 클릭하여 "PlayingFeedbacks"라고 이름을 지정하는 새로운 상태를 추가합니다.
  9. 첫 번째 상태의 F2Pressed 이벤트를 오른쪽 클릭하고, 그것의 전환 대상을 PlayingFeedbacks로 설정합니다.
  10. PlayingFeedbacks 상태에서 오른쪽 클릭하고, transition > Finished를 선택한 후, Finished에 다시 오른쪽 클릭하여 그의 전환 대상을 GettingInput으로 설정합니다.
  11. PlayingFeedbacks 상태에서 Action Browser를 사용하여 CallMethod 액션을 추가합니다. MyFeedbacks의 MMF Player MonoBehaviour를 Behaviour 슬롯에 끌어다 놓고, Method 드롭다운에서 "void PlayFeedbacks()"를 선택합니다.
  12. Unity 에디터에서 재생 버튼을 누르면, 이제 매번 F2를 누를 때마다 피드백이 재생되고 콘솔에 "Hello!"가 표시됩니다. MyFeedbacks MMF Player에 추가한 다른 피드백들도 물론 재생됩니다.

 


카메라 줌 피드백을 설정하는 방법?

  1. Unity 2022.3.23f1 (또는 그 이상)에서 새로운 프로젝트를 생성하고 Package Manager를 통해 Feel v4.1.2 (또는 그 이상)을 가져옵니다.
  2. 새 빈 장면을 만듭니다.
  3. 큐브를 추가하고, 위치를 (0,0,0)으로 설정합니다.
  4. MainCamera를 선택하고, MMCameraZoom 컴포넌트를 추가합니다.
  5. 빈 게임 오브젝트를 생성하고, 이름을 'MyTestFeedbacks'로 설정한 뒤, MMF Player 컴포넌트를 추가합니다.
  6. 'Add new feedback' 드롭다운을 통해 Camera > Camera Zoom 피드백을 추가합니다.
  7. 에디터에서 플레이 버튼을 누른 후, 'MyTestFeedbacks' 오브젝트를 선택하고, MMF Player 인스펙터에서 녹색 Play 버튼을 누릅니다.

 


시네머신을 사용하여 카메라 줌 피드백을 설정하는 방법?

  1. Unity 2022.3.23f1 (또는 그 이상)에서 새로운 프로젝트를 생성하고 Package Manager를 통해 Feel v4.1.2 (또는 그 이상)을 가져옵니다.
  2. Package Manager에서 Cinemachine을 가져옵니다.
  3. 새 빈 장면을 만듭니다.
  4. 큐브를 추가하고, 위치를 (0,0,0)으로 설정합니다.
  5. GameObject 메뉴를 통해 Cinemachine > Virtual Camera를 추가합니다.
  6. 새로 생성된 Virtual Camera를 선택하고, 위치를 (0,0,-10)으로 설정한 뒤, MMCinemachineZoom 컴포넌트를 추가합니다.
  7. 빈 게임 오브젝트를 생성하고, 이름을 'MyTestFeedbacks'로 설정한 뒤, MMF Player 컴포넌트를 추가합니다.
  8. 'Add new feedback' 드롭다운을 통해 Camera > Camera Zoom 피드백을 추가합니다.
  9. 에디터에서 플레이 버튼을 누른 후, 'MyTestFeedbacks' 오브젝트를 선택하고, MMF Player 인스펙터에서 녹색 Play 버튼을 누릅니다.

 

 

 


타임라인을 통해 MMF Player를 트리거하는 방법?

  1. Unity 2022.3.23f1 (또는 그 이상)에서 새로운 프로젝트를 생성하고 Package Manager를 통해 Feel v4.1.2 (또는 그 이상)을 가져옵니다.
  2. 예제에서는 FeelDuck 데모 장면을 엽니다.
  3. 새 빈 오브젝트를 생성하고, 이름을 'Director'로 설정합니다.
  4. 타임라인 패널을 엽니다 (Window > Sequencing > Timeline).
  5. 타임라인 패널에서 'Create' 버튼을 눌러 새 디렉터를 생성하고, 이름을 'TimelineDirector'로 설정한 뒤 프로젝트에 저장합니다.
  6. FeelDuckBackground를 타임라인에 드래그하고, "Add activation track"을 선택합니다.
  7. Active 블록을 복사하여 오른쪽으로 이동시키면 두 개의 Active 블록이 생깁니다. 이것이 우리의 타임라인 애니메이션입니다 (배경이 활성화/비활성화/활성화 됩니다. 물론, 자신만의 타임라인에서는 더 복잡한 작업을 할 수 있습니다).
  8. 프레임 수 아래의 핀 아이콘을 눌러 마커 트랙을 표시합니다.
  9. 약 120 프레임 지점에서 마커 트랙을 우클릭하고 "Add signal emitter"를 선택합니다.
  10. 인스펙터에서 'Create Signal'을 클릭하고, 새 에셋 이름을 "TestMMFPlayer.signal"로 설정한 뒤 프로젝트에 저장합니다.
  11. 인스펙터에서 'Add signal receiver'를 클릭합니다.
  12. Director 오브젝트를 선택하고, 인스펙터에서 FeelDuckJumpStartFeedback을 SignalReceiver의 이벤트 반응 슬롯에 드래그한 후, MMF Player > PlayFeedbacks() 메서드를 반응으로 선택합니다.
  13. 에디터에서 플레이 버튼을 누른 후, 타임라인에서도 플레이 버튼을 누르면 피드백이 재생될 때마다 타임라인의 재생 헤드가 마커를 통과할 때마다 피드백이 재생됩니다.
  14. 타임라인과 신호에 대해 더 자세히 알고 싶다면 Unity 블로그를 확인하세요.

 


MMFader 및 페이드 피드백을 설정하는 방법?

  1. Unity 2022.3.23f1 (또는 그 이상)에서 새로운 프로젝트를 생성하고 Package Manager를 통해 Feel v4.1.2 (또는 그 이상)을 가져옵니다.
  2. 새 빈 장면을 만듭니다.
옵션 1: 자동 셰이커 설정
  1. 장면에서 새로운 빈 오브젝트를 생성하고, MMF Player를 추가합니다, Camera > Fade 피드백을 추가합니다.
  2. Automatic Setup 폴드아웃을 펼치고, Automatic Shaker Setup 버튼을 누릅니다.
  3. 에디터에서 재생 버튼을 누른 후, MMF Player에서 녹색 Play 버튼을 누릅니다.
옵션 2: 수동 설정
  1. 장면에 UI Image를 추가하고, RectTransform을 설정하여 화면 전체를 덮도록 합니다 (보통 전체 스트레치 및 왼쪽/오른쪽/위/아래 모두 0으로 설정), Image 색상을 검정색으로 설정합니다.
  2. MMFader 컴포넌트를 추가합니다. 이 작업은 CanvasGroup을 추가하며, Alpha를 0으로 설정합니다.
  3. 장면에서 새로운 빈 오브젝트를 생성하고, MMF Player를 추가합니다, Camera > Fade 피드백을 추가합니다.
  4. 재생 버튼을 누르고, Feedback을 재생하면 페이더가 페이드 인됩니다 (화면이 검정색으로 페이드). FadeType을 Fade Out으로 변경하면 화면이 다시 정상으로 돌아옵니다, Fade 피드백의 인스펙터에서 설정(지속 시간, 곡선 등)을 원하는 대로 조정할 수 있습니다. 여러 개의 페이더가 있는 경우, 페이더와 피드백의 Channel ID가 일치하는지 확인합니다.
 


간단한 위치 피드백을 설정하는 방법?

  1. Unity 2022.3.23f1 (또는 그 이상)에서 새로운 프로젝트를 생성하고 Package Manager를 통해 Feel v4.1.2 (또는 그 이상)을 가져옵니다.
  2. 새로운 빈 장면을 만듭니다, 큐브를 추가하고 위치를 (0,0,0)으로 설정합니다.
  3. 새로운 빈 게임 오브젝트를 생성하고, MMF Player 컴포넌트를 추가합니다.
  4. Transform > Position 피드백을 추가합니다.
  5. 큐브를 AnimatePositionTarget 슬롯에 드래그합니다.
  6. Transition Mode를 Along Curve로 설정합니다.
  7. AnimatePositionDuration을 1로 설정합니다, AnimateX를 true로 설정합니다.
  8. 플레이 버튼을 누르고 피드백을 재생합니다.

 

 

 


목적지로 스케일 피드백을 설정하는 방법?

  1. Unity 2022.3.23f1 (또는 그 이상)에서 새로운 프로젝트를 생성하고 Package Manager를 통해 Feel v4.1.2 (또는 그 이상)을 가져옵니다.
  2. 새로운 빈 장면을 만듭니다, 큐브를 추가합니다.
  3. 새로운 빈 오브젝트를 추가하고, MMF Player 컴포넌트를 추가합니다.
  4. Transform > Scale 피드백을 추가하고, AnimateScaleTarget에 큐브를 설정합니다.
  5. 다음과 같이 피드백 설정을 구성합니다:
    • Mode: ToDestination
    • RemapCurveZero: 0
    • RemapCurveOne: 1
    • AnimateXYZ 모든 체크박스 체크
    • 모든 곡선을 (0,0)에서 (1,1)로 오르는 곡선으로 설정
  6. 에디터에서 플레이 버튼을 누르고, DestinationScale을 (0.5, 0.5, 0.5)로 설정한 후, 해당 피드백의 Play 버튼을 누릅니다. 큐브가 줄어듭니다.
  7. DestinationScale을 (0, 0, 0)로 설정하고, 해당 피드백의 Play 버튼을 누릅니다. 큐브가 더 작아집니다.
  8. DestinationScale을 (1, 1, 1)로 설정하고, 해당 피드백의 Play 버튼을 누릅니다. 큐브가 원래 크기로 돌아갑니다.

 

 

MMHealthBar 컴포넌트를 사용하여 자동으로 체력 바를 그리는 방법?

  1. Unity 2022.3.23f1 (또는 그 이상)에서 새로운 프로젝트를 생성하고 Package Manager를 통해 Feel v4.1.2 (또는 그 이상)을 가져옵니다.
  2. 새로운 빈 장면을 만듭니다.
  3. 큐브를 생성하고 위치를 (0,0,0)으로 설정합니다.
  4. 큐브에 MMHealthBar 컴포넌트를 추가합니다.
  5. 재생 버튼을 누르면, 큐브 위에 체력 바가 그려지는 것을 확인할 수 있습니다.
  6. 이제 MMHealthBar와 상호작용하여 업데이트하려면 데이터를 전달해야 합니다. 이를 위해 스크립트를 사용하겠습니다.
  7. 새로운 C# 클래스를 생성하고, 이름을 TestMMHealthBar로 설정한 후 다음 내용을 붙여넣습니다

 

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using MoreMountains.Tools;

/// <summary>
/// MMHealthBar 컴포넌트와 상호작용하고 테스트하기 위해 사용되는 간단한 클래스입니다.
/// 사용하려면 MMHealthBar가 있는 오브젝트에 이 클래스를 추가하고, 런타임 시 CurrentHealth 슬라이더를 이동한 후 Test 버튼을 눌러 바를 업데이트합니다.
/// </summary>
public class TestMMHealthBar : MonoBehaviour
{
    [Range(0f, 100f)]
    public float CurrentHealth = 50f;

    protected float _minimumHealth = 0f;
    protected float _maximumHealth = 100f;
    protected MMHealthBar _targetHealthBar;

    [MMInspectorButton("Test")] public bool TestButton;

    protected virtual void Awake()
    {
        _targetHealthBar = this.gameObject.GetComponent<MMHealthBar>();
    }

    public virtual void Test()
    {
        if (_targetHealthBar != null)
        {
            _targetHealthBar.UpdateBar(CurrentHealth, _minimumHealth, _maximumHealth, true);    
        }
    }
}
  1. 이 컴포넌트를 큐브에 추가하고, 재생 버튼을 누른 후, 런타임 시 인스펙터에서 CurrentHealth 슬라이더를 이동합니다. Test 버튼을 누를 때마다 체력 바가 업데이트됩니다.

 


플로팅 텍스트를 설정하여 피드백을 통해 재생하는 방법?

  1. Unity 2022.3.23f1 (또는 그 이상)에서 새로운 프로젝트를 생성하고 Package Manager를 통해 Feel v4.1.2 (또는 그 이상)을 가져옵니다.
  2. 빈 장면(또는 자신의 장면)에서 새로운 빈 게임 오브젝트를 생성하고, 이름을 "FloatingTextSpawner"로 설정한 뒤, MMFloatingTextSpawner 컴포넌트를 추가합니다.
  3. 프로젝트 패널에서 MMFloatingText 프리팹을 검색한 후, 새로 생성한 스포너의 Pooler 설정 내 PooledSimpleMMFloatingText 슬롯에 드래그합니다.
  4. 새로운 빈 오브젝트를 생성하고, 이름을 "TestPlayer"로 설정한 뒤, 위치를 (0,0,0)으로 설정하고, MMF Player 컴포넌트를 추가합니다.
  5. 새로운 UI > Floating Text 피드백을 추가합니다.
  6. 에디터에서 플레이 버튼을 누른 후, MMF Player의 녹색 Play 버튼을 누르면 "100" 텍스트가 매번 생성됩니다.
추가 기능: 강도 제어 추가
  • 강도 제어를 추가하려면, 다음 클래스처럼 "use intensity as value"를 체크하여 MMF Player의 강도를 피드백에 적용할 수 있습니다. 이를 테스트하려면, 프로젝트에서 다음 코드를 포함한 새 클래스를 생성한 후, 위의 단계를 완료한 후 TestIntensityAsValue 컴포넌트를 MMF Player에 추가합니다. 에디터에서 플레이 버튼을 누른 후, TriggerFeedback 버튼을 누르면 매번 랜덤 값이 표시됩니다. 물론, 실제로는 랜덤 값 대신 데미지 값을 전달하는 것이 더 적합할 것입니다! 값이 반올림되지 않은 것을 알 수 있는데, 이를 변경하고 싶다면 Floating Text 피드백에서 반올림 방법을 선택할 수 있습니다.
using MoreMountains.Feedbacks;
using UnityEngine;

public class TestIntensityAsValue : MonoBehaviour
{
	[MMFInspectorButton("TriggerFeedback")]
	public bool TriggerFeedbackButton;
	private MMF_Player _myPlayer;

	private void Start()
	{
		// 시작할 때 MMF Player 컴포넌트를 가져옵니다
		_myPlayer = this.gameObject.GetComponent<MMF_Player>();
	}

	private void TriggerFeedback()
	{
		float randomIntensity = Random.Range(0f, 100f);
		_myPlayer.PlayFeedbacks(this.transform.position, randomIntensity);
	}
}
더 나아가 : 런타임에서 값 변경
  • MMF_FloatingText의 Value 속성을 동적으로 원하는 값으로 변경할 수 있으며, 다른 모든 속성도 변경할 수 있습니다. 아래 예제에서는 값을 랜덤 float로 설정하고, 색상을 멋진 그라데이션으로 설정합니다.
using MoreMountains.Feedbacks;
using UnityEngine;

public class TestModifyAtRuntime : MonoBehaviour
{
	[MMFInspectorButton("TriggerFeedback")]
	public bool TriggerFeedbackButton;

	private MMF_Player _myPlayer;
	private Gradient gradient;
	private GradientColorKey[] colorKey;
	private GradientAlphaKey[] alphaKey;

	private void Start()
	{
		// 시작할 때 MMF Player 컴포넌트를 가져옵니다
		_myPlayer = this.gameObject.GetComponent<MMF_Player>();
	}

	private void TriggerFeedback()
	{
		float randomValue = Mathf.Round(Random.Range(0f, 100f));
		MMF_FloatingText floatingText = _myPlayer.GetFeedbackOfType<MMF_FloatingText>(); // 참고: 이는 플레이어에 하나의 floating text 피드백만 있는 경우를 가정합니다. 더 고급 방법은 문서를 참조하세요.

		// 랜덤 값을 디스플레이 값으로 적용합니다
		floatingText.Value = randomValue.ToString();

		// 멋진 색상을 설정합니다
		gradient = new Gradient();
		// 상대 시간 0과 1 (0%와 100%)에서 색상 키를 채웁니다
		colorKey = new GradientColorKey[2];
		colorKey[0].color = Color.red;
		colorKey[0].time = 0.0f;
		colorKey[1].color = Color.blue;
		colorKey[1].time = 1.0f;
		// 상대 시간 0과 1 (0%와 100%)에서 알파 키를 채웁니다
		alphaKey = new GradientAlphaKey[2];
		alphaKey[0].alpha = 1.0f;
		alphaKey[0].time = 0.0f;
		alphaKey[1].alpha = 0.0f;
		alphaKey[1].time = 1.0f;
		gradient.SetKeys(colorKey, alphaKey);

		floatingText.ForceColor = true;
		floatingText.AnimateColorGradient = gradient;

		_myPlayer.PlayFeedbacks(this.transform.position);
	}
}

 

 

씬에서 객체를 흔드는 방법?

  1. Unity 2022.3.23f1 (또는 그 이상)에서 새로운 프로젝트를 생성하고 Package Manager를 통해 Feel v4.1.2 (또는 그 이상)을 가져옵니다.
  2. 새로운 장면에서 큐브를 생성합니다.
  3. 큐브에 MMWiggle 컴포넌트를 추가합니다.
  4. Position 체크박스를 선택하고, Wiggle Type을 Noise로 설정합니다.
  5. 플레이 버튼을 누르면 이제 큐브가 흔들리는 것을 볼 수 있습니다, 주파수(Frequency), 진폭(Amplitude)을 증가시키거나, 시프트(Shift)를 추가하는 등 다른 옵션을 조정할 수 있습니다. (여러 개의 객체가 있는 경우 유용합니다)

 

 

 

 

MMBlink 컴포넌트를 설정하는 방법

MMBlink 컴포넌트를 사용하면 객체에 깜박임 시퀀스를 정의할 수 있으며, 이를 MMBlink 피드백으로 트리거할 수 있습니다. 다음은 설정 방법입니다:
  1. Unity 2022.3.23f1 (또는 그 이상)에서 새로운 프로젝트를 생성합니다, Package Manager를 통해 Feel v4.1.2 (또는 그 이상)을 가져옵니다.
  2. 새 장면에서 스프라이트 렌더러를 생성하고, 스프라이트를 "button-A" (또는 원하는 스프라이트)로 설정합니다.
  3. MMBlink 컴포넌트를 추가하고, Method를 Material Alpha로 설정한 뒤, 스프라이트 렌더러를 MMBlink의 TargetRenderer 슬롯에 드래그합니다.
  4. 깜박임 시퀀스를 정의합니다, Phases 배열의 크기를 2로 설정합니다.
  5. 배열의 Element 0에서 PhaseDuration을 1로, OffDuration을 0.3으로, OnDuration을 0.7로 설정합니다.
  6. 배열의 Element 1에서 PhaseDuration을 0.5로, OffDuration을 0.2로, OnDuration을 0.3으로 설정합니다.
  7. Repeat Count를 -1로 설정하여 무한 반복하게 합니다.
  8. 플레이 버튼을 누르면 스프라이트가 반복적인 패턴으로 깜박이는 것을 확인할 수 있습니다.
MMF Player로 트리거 설정:
  1. MMBlink에서 Blinking을 체크 해제하고 RepeatCount를 5로 설정합니다.
  2. 새 빈 게임 오브젝트를 생성하고 이름을 MyTestFeedbacks로 설정한 뒤, MMF Player를 추가합니다.
  3. MMBlink 피드백을 추가하고 (Renderer > MMBlink), MMBlink 오브젝트를 TargetBlink 슬롯에 드래그합니다.
  4. 에디터에서 플레이 버튼을 누른 후, MyTestFeedbacks의 인스펙터에서 테스트 버튼을 눌러 스프라이트가 5번의 시퀀스 동안 깜박이는 것을 확인합니다.
MMBlink 컴포넌트는 여러 옵션을 제공합니다. 객체를 활성화/비활성화하여 깜박이거나, 알파, 방출 또는 머티리얼 셰이더의 모든 플롯 값을 사용하여 깜박일 수 있습니다. 또한 이러한 값들을 보간할 수 있습니다. Element0과 Element1의 On/Off Lerp Durations을 0.5로 설정하여 이를 테스트해보세요.

 

 

피드백을 사용하여 스프링 컴포넌트를 조종하는 방법?

  1. Unity 2022.3.23f1 (또는 그 이상)에서 새로운 프로젝트를 생성하고 Package Manager를 통해 Feel v4.1.2 (또는 그 이상)을 가져옵니다.
  2. 새 장면에서 (0,0,0)에 큐브를 추가합니다.
  3. MainCamera를 선택하고 MMSpringCameraFieldOfView 컴포넌트를 추가합니다.
  4. 새로운 빈 오브젝트를 생성하고 MMF Player를 추가합니다, Springs > SpringFloat 피드백을 추가하고 (field of view는 float 값입니다), MainCamera를 TargetSpring 슬롯에 드래그합니다, BumpAmount를 1000으로 설정합니다.
  5. 에디터에서 플레이 버튼을 누른 후, MMF Player의 녹색 Play 버튼을 누릅니다.

 

 

 

 

랜덤 볼륨으로 무작위 소리를 재생하는 방법?

  1. Unity 2022.3.23f1 (또는 그 이상)에서 새로운 프로젝트를 생성하고 Package Manager를 통해 Feel v4.1.2 (또는 그 이상)을 가져옵니다.
  2. 새 장면을 만들고 엽니다.
  3. 빈 오브젝트를 생성하고 MMSoundManager를 추가합니다.
  4. 또 다른 빈 오브젝트를 생성하고 MMF Player를 추가합니다.
  5. MMSoundManager Sound 피드백을 추가합니다.
  6. 랜덤 sfx 배열 크기를 2로 설정하고, 첫 번째 요소를 FeelBlobNote1로, 두 번째 요소를 FeelBlobNote2로 설정합니다.
  7. 최소 볼륨을 0.2로, 최대 볼륨을 0.5로 설정합니다.
  8. 에디터에서 플레이 버튼을 누른 후, MMF Player 하단의 녹색 Play 버튼을 누릅니다. 매번 새로운 볼륨으로 재생됩니다.

 

 

 

 

깜빡임 피드백을 설정하는 방법?

  1. Unity 2022.3.23f1 (또는 그 이상)에서 새로운 프로젝트를 생성하고 Package Manager를 통해 Feel v4.1.2 (또는 그 이상)을 가져옵니다.
  2. 새 빈 장면을 만들고, 큐브를 추가합니다.
  3. 새 빈 오브젝트를 생성하고, 이름을 Player로 설정한 후 MMF Player를 추가합니다.
  4. Flicker 피드백을 추가하고, 큐브를 BoundRenderer 슬롯에 드래그합니다.
  5. 에디터에서 플레이 버튼을 누른 후, MMF Player 인스펙터에서 녹색 Play 버튼을 누르면 큐브가 깜박이고 0.2초 후 원래 색상으로 돌아옵니다.

 

 

 

셰이더 컨트롤러를 설정하고 피드백으로 조종하는 방법?

이 단계는 BiRP의 PostProcessing 스택을 사용합니다. URP 또는 HDRP를 사용하는 경우, Volumes를 사용하도록 단계를 조정하세요.
발광 효과가 보이도록 씬 설정
  1. Unity 2022.3.23f1 (또는 그 이상)에서 새로운 프로젝트를 생성하고 Package Manager를 통해 Feel v4.1.2 (또는 그 이상)을 가져옵니다.
  2. 새로운 빈 장면을 만들고, 큐브를 추가한 뒤 위치를 (0,0,0)으로 설정합니다.
  3. 새로운 빈 오브젝트를 생성하고 이름을 Volume으로 설정합니다, PostProcessVolume을 추가하고, IsGlobal을 true로 설정합니다, 새로운 프로파일을 추가하고 Bloom 효과 오버라이드를 추가합니다. Intensity를 1로 설정합니다.
  4. 씬의 메인 카메라에 PostProcessLayer를 추가하고 Layer를 Everything으로 설정합니다.
  5. 큐브의 MeshRenderer를 FeedbacksDemoBurger로 설정합니다. 이 머티리얼의 셰이더는 _EmissionForce float 속성을 노출하며, 이는 발광의 강도를 제어합니다.
셰이더 컨트롤러 추가
  1. 큐브에 ShaderController 컴포넌트를 추가합니다, MeshRenderer를 TargetRenderer 슬롯에 드래그하고, TargetPropertyName을 _EmissionForce로 설정합니다.
  2. 에디터에서 플레이 버튼을 눌러 큐브의 발광이 기본적으로 PingPong 모드에서 펄스하는 것을 확인합니다.
피드백을 통해 셰이더 컨트롤러 제어
  1. 플레이 모드를 종료하고, ShaderController의 ControlMode를 OneTime으로 설정합니다.
  2. 새로운 빈 오브젝트를 생성하고 MMF Player를 추가합니다, Renderer > ShaderController 피드백을 추가하고, 큐브를 TargetShaderController 슬롯에 드래그합니다. OneTimeRemapMax를 10으로 설정합니다.
  3. 에디터에서 플레이 버튼을 누른 후, MMF Player의 녹색 Play 버튼을 눌러 큐브가 1초 동안 발광하고 다시 원래의 발광 상태로 돌아오는 것을 확인합니다.

 

 

간단한 스프링 컴포넌트를 설정하는 방법?

  1. Unity 2022.3.23f1 (또는 그 이상)에서 새로운 프로젝트를 생성하고 Package Manager를 통해 Feel v4.1.2 (또는 그 이상)을 가져옵니다.
  2. 새 장면에서 (0,0,0)에 큐브와 UI>버튼을 추가합니다.
  3. 큐브의 인스펙터에서 AddComponent 버튼을 눌러 MMSpringSquashAndStretch 컴포넌트를 추가합니다.
  4. 버튼의 인스펙터에서 OnClick 이벤트에 아이템을 추가하고, 큐브를 드래그하여 MMSpringSquashAndStretch>BumpRandom을 선택합니다.
  5. 에디터에서 플레이 버튼을 누른 후, 버튼을 누릅니다(반복해서!).
  6. 런타임 상태에서 큐브를 선택한 후, 인스펙터에서 Damping, Frequency, BumpAmountRandomValue 설정을 조정하여 버튼을 누를 때 객체에 어떤 영향을 미치는지 확인합니다.

 

 

 

 

피드백 및 셰이커에 채널 자산을 설정하는 방법?

이 예제에서는 스케일 셰이커를 설정하고 스케일 셰이크 피드백을 사용하여 이를 트리거합니다. 동일한 논리는 모든 셰이커와 이를 타겟으로 하는 피드백에 적용됩니다.
  1. Unity 2022.3.23f1(또는 그 이상)에서 새 프로젝트를 만들고 패키지 매니저를 통해 Feel v4.1.2(또는 그 이상)을 가져옵니다.
  2. 새 빈 장면을 만듭니다, 장면에 새로운 Cube를 만들고 위치를 (0,0,0)으로 설정합니다. 그런 다음 MMScaleShaker를 추가합니다.
  3. 재생 버튼을 누르고, 인스펙터에서 Test 항목을 펼친 다음 StartShaking 버튼을 누릅니다. Cube가 0.5초 동안 스케일을 흔드는 것을 확인한 후 재생 모드를 종료합니다.
피드백에서 셰이커를 트리거하려면 통신 채널을 설정해야 합니다. 이를 위해 간단한 정수 대신 MMChannel 자산을 사용합니다.
  1. 피드백이 셰이커와 통신할 채널 자산을 생성합니다. 프로젝트의 폴더에서 오른쪽 클릭을 하고 Create > More Mountains > MMChannel을 선택합니다. 새로운 MMChannel 자산이 생성되며 이를 원하는 이름으로 변경할 수 있습니다. 이를 MyFirstChannel로 이름을 변경합니다.
  2. Cube를 선택하고 MMScaleShaker에서 ChannelMode를 MMChannel로 설정한 후 MyFirstChannel을 MMChannelDefinition 슬롯에 드래그합니다.
이제 다른 객체에서 이 셰이크를 트리거하는 피드백을 설정합니다.
  1. 새 빈 객체를 만들고 MMF Player 컴포넌트를 추가합니다.
  2. Transform > Scale Shake 피드백을 추가합니다.
  3. Feedback Settings 항목을 펼치고 Channel Mode를 MMChannel로 설정하고 MMChannelDefinition을 MyFirstChannel로 설정합니다.
  4. 에디터에서 재생 버튼을 누르고, MMF Player의 초록색 Play 버튼을 누르면 Cube의 스케일이 흔들리는 것을 확인할 수 있습니다.

 

 

 

모든 소리를 음소거하는 버튼을 추가하는 방법?

  1. Unity 2022.3.23f1(또는 그 이상)에서 새 프로젝트를 만들고 패키지 매니저를 통해 Feel v4.1.2(또는 그 이상)을 가져옵니다.
  2. MMSoundManager가 포함된 장면을 엽니다.
  3. UI 버튼을 생성합니다, 버튼의 OnClick 이벤트에 새로운 항목을 추가하려면 "+" 버튼을 누릅니다, MMSoundManager를 그 슬롯에 드래그하고, MuteMaster 메서드를 선택합니다.
  4. 재생 버튼을 누르면, UI 버튼을 누를 때 MMSoundManager를 통해 재생되는 모든 소리가 음소거됩니다.
  5. 참고로 피드백을 통해서도 같은 작업을 수행할 수 있습니다(MMSoundManager Track Control 또는 MMSoundManager All Sounds Control 사용). 이 설정을 피드백을 통해 저장할 수도 있습니다. 자세한 내용은 Feel 문서를 참조하세요.

 

 

3D 소리를 재생하는 방법?

  1. Unity 2022.3.23f1(또는 그 이상)에서 새 프로젝트를 만들고 패키지 매니저를 통해 Feel v4.1.2(또는 그 이상)을 가져옵니다.
  2. 새로운 빈 장면을 만듭니다.
  3. 새 빈 게임 오브젝트를 생성하고, MMSoundManager 컴포넌트를 추가합니다.
  4. 또 다른 새 빈 게임 오브젝트를 생성하고, MMF Player 컴포넌트를 추가하고, 위치를 (0,0,0)으로 설정합니다.
  5. MMF Player에 MMSoundManager Sound 피드백을 추가합니다.
  6. 피드백의 Sound/SFx를 Beep1로 설정하고, SpatialBlend를 1로 설정합니다.
  7. 에디터에서 재생 버튼을 누른 다음, MMF Player를 재생하면 '삐' 소리를 들을 수 있습니다.
  8. MMF Player를 (1000,0,0)으로 이동시키고 MMF Player를 재생하면 소리가 들리지 않습니다.
  9. MMF Player를 (25,0,0)으로 이동시키고 MMF Player를 재생하면 소리가 줄어든 볼륨으로 들립니다.

 

 

 

 

플래시 피드백을 트리거하는 방법?

  1. Unity 2022.3.23f1(또는 그 이상)에서 새 프로젝트를 만들고 패키지 매니저를 통해 Feel v4.1.2(또는 그 이상)을 가져옵니다.
  2. 새 빈 장면을 만들고 Canvas를 추가합니다.
옵션 1: 자동 셰이커 설정
  1. 새 빈 오브젝트를 생성하고 MMF Player를 추가합니다, Camera > Flash 피드백을 추가합니다.
  2. Automatic Setup 항목을 펼치고 Automatic Shaker Setup 버튼을 누릅니다.
  3. 에디터에서 재생 버튼을 누른 다음, MMF Player의 초록색 Play 버튼을 누르면 화면이 흰색으로 깜박입니다.
옵션 2: 수동 설정
  1. 빈 자식을 추가하고 MyFlash라고 이름을 지정합니다, MMFlash 컴포넌트를 추가하고 화면을 덮도록 확장합니다, 이를 수행하는 한 가지 방법은 앵커를 stretch로 설정하고 RectTransform에서 Left/Top/Right/Bottom을 0으로 설정하는 것입니다. 하지만 최종적으로는 Canvas 및 UI 설정 방식에 따라 달라질 수 있습니다, CanvasGroup 컴포넌트의 Alpha를 0으로 설정합니다.
  2. 새 빈 오브젝트를 생성하고 MMF Player를 추가합니다, Camera > Flash 피드백을 추가합니다.
  3. 에디터에서 재생 버튼을 누른 다음, MMF Player의 초록색 Play 버튼을 눌러 설정을 조정합니다.

 

 

스크립트로 구동되는 일시 중지를 설정하는 방법?

  1. Unity 2022.3.23f1(또는 그 이상)에서 새 프로젝트를 만들고 패키지 매니저를 통해 Feel v4.1.2(또는 그 이상)을 가져옵니다, 빈 장면을 만들고 큐브(Cube)를 추가합니다.
  2. 새 빈 오브젝트를 생성하고 MMF Player를 추가합니다, Position 피드백을 추가하고 타겟을 큐브로 설정합니다, Position 피드백을 복제합니다.
  3. 두 개의 Position 피드백 사이에 Pause 피드백을 추가하고 다음과 같이 설정합니다, ScriptDriven: true,  AutoResumeAfter: 3, PauseDuration: 0
  4. 에디터에서 재생 버튼을 누르고, MMF Player의 초록색 플레이 버튼을 누릅니다. 첫 번째 Position 피드백이 실행된 후 3초 후에 Pause가 해제되고 두 번째 Position 피드백이 실행됩니다.
  5. 초록색 플레이 버튼을 다시 누른 다음 즉시 Resume 버튼을 누릅니다. Pause가 즉시 멈추고 두 번째 Position 피드백이 실행되는 것을 확인할 수 있습니다.

 

 

 

 

애니메이션 이벤트를 사용하여 애니메이션에서 MMF Player를 재생하는 방법?

  1. Unity 2022.3.23f1(또는 그 이상)에서 새 프로젝트를 만들고 패키지 매니저를 통해 Feel v4.1.2(또는 그 이상)을 가져옵니다.
  2. 새 장면을 만듭니다.
  3. 새 큐브를 만들고 위치를 (0,0,0)으로 설정합니다.
  4. 큐브에 MMF Player 컴포넌트를 추가하고, Sound 피드백을 추가합니다. 예를 들어 FeelDuckQuack와 같은 오디오 클립을 Sfx 슬롯에 설정합니다.
  5. 큐브에 새 Animator 컴포넌트를 추가합니다.
  6. 새 애니메이터 컨트롤러를 만들고 CubeAnimatorController라고 이름을 짓습니다. 이 컨트롤러를 Animator 컴포넌트의 Controller 슬롯에 드래그합니다.
  7. Animation 패널을 열고 새 애니메이션을 만들어 BouncyCube라고 이름 짓습니다.
  8. 애니메이션에 새 속성을 추가합니다: Transform, 녹화 버튼을 누릅니다.
  9. 프레임 0에 키를 추가하고 위치를 (0,0,0)으로 설정합니다.
  10. 프레임 20에 키를 추가하고 위치를 (0,1,0)으로 설정합니다.
  11. 프레임 0을 복사하여 프레임 60에 붙여넣습니다. 이제 큐브가 위아래로 움직입니다.
  12. 커서를 프레임 25에 두고 프레임 카운터 바로 아래에 있는 Add Event 아이콘을 누릅니다. 인스펙터에서 Function 드롭다운에서 PlayFeedbacks()를 선택합니다.
  13. 에디터에서 재생 버튼을 누르면 큐브가 튀고, 애니메이션이 프레임 25를 지날 때마다 소리가 재생됩니다. 여기서 추가적인 피드백을 추가하고 사용자 정의할 수 있습니다.

 

 

 

 

후처리 이동 필터 설정 방법

카메라 필터, 이동 필터의 개념에 익숙하실 것입니다. 이는 실제 카메라 앞에 이동할 수 있는 필터로 효과, 확산 등을 추가할 수 있습니다. Feel은 이를 설정하는 도구를 제공합니다. 이는 작업이 조금 필요하지만 완료되면 카메라 위로 포스트 프로세싱 볼륨(또는 그 이상)을 이동할 수 있는 많은 기능을 제공합니다. 이는 포스트 프로세싱 효과 간의 부드러운 전환을 위한 쉬운 방법입니다. 다른 피드백과 마찬가지로 MMF_PlayerDemo 장면에서 그 예를 찾을 수 있으며, 다음 단계를 따를 수도 있습니다(이 예제는 BiRP의 포스트 프로세싱 스택 v2를 사용합니다. 다른 렌더링 파이프라인을 사용하는 경우 해당 레이어/볼륨을 적응시키십시오. 필터는 모든 파이프라인에서 작동합니다).
  1. Unity 2022.3.23f1(또는 그 이상)에서 새 프로젝트를 만들고 패키지 매니저를 통해 Feel v4.1.2(또는 그 이상)을 가져옵니다.
  2. 빈 장면에서 MainCamera에 PostProcessLayer 컴포넌트를 추가하고 VolumeBlending.Layer를 Everything으로 설정합니다.
  3. 카메라에 (0,0,0) 위치에 빈 자식 오브젝트를 추가하고 이를 MovingFilter라고 이름 짓습니다.
  4. BoxCollider를 추가하고 IsTrigger를 true로 설정한 후, PostProcessVolume 컴포넌트를 추가하고 BlendDistance를 0.2로 설정합니다. 프로필로 FeelBarbariansPostProcessingProfile을 선택합니다(이 프로필은 빨간색 비네트가 있으므로 선택 시 차이를 확인할 수 있습니다). 그런 다음 해당 오브젝트를 (0,3,0) 위치로 이동시켜 카메라를 덮지 않도록 합니다.
  5. MovingFilter를 복제하고 이름을 BaseFilter로 설정합니다. MainCamera의 자식으로 유지하고 (0,0,0) 위치로 이동시켜 카메라 위에 있도록 합니다. 프로필로 FeelBlobPostProcessingProfile을 선택합니다(이 프로필은 보라색 비네트가 있습니다).
  6. MovingFilter를 다시 선택하고 MMPostProcessingMovingFilter를 추가합니다. FilterOffset을 (0,3)으로 설정하고, AddToInitialPosition은 false로 설정합니다. PostProcessVolume 컴포넌트에서 Priority를 1로 설정합니다.
  7. 장면에 새 빈 오브젝트를 생성하고 MMF Player를 추가합니다. PPMovingFilter 피드백을 추가합니다.
  8. 에디터에서 재생 버튼을 누른 다음 MMF Player의 초록색 Play 버튼을 누릅니다. 기본 포스트 프로세싱에서 이동 필터로의 전환을 확인할 수 있습니다. Scene 뷰에서 장면을 관찰하면 피드백을 재생할 때 이동 필터가 카메라와 겹치도록 아래로 이동하여 우선순위를 가지는 것을 확인할 수 있습니다.

 

 

참조 홀더 피드백을 사용하는 방법?

  1. Unity 2022.3.23f1(또는 그 이상)에서 새 프로젝트를 만들고 패키지 매니저를 통해 Feel v4.1.2(또는 그 이상)을 가져옵니다.
  2. 새 빈 장면을 만들고, 위치를 (0,0,0)으로 설정한 큐브(Cube)를 추가합니다.
  3. 새 빈 오브젝트를 만들고 MyPlayer라고 이름 짓습니다. 여기에 MMF Player를 추가합니다.
  4. Transform > Position 피드백을 추가합니다. AnimatePositionTarget를 비워 두고 AutomatedTargetAcquisition.Mode를 ClosestReferenceHolder로 설정합니다.
  5. Feedbacks > MMF Reference Holder 피드백을 추가하고 GameObjectReference를 Cube로 설정합니다.
  6. 에디터에서 재생 버튼을 누른 다음 MyPlayer의 인스펙터에서 초록색 Play 버튼을 누릅니다. 그러면 Position 피드백이 가장 가까운 참조 홀더(현재는 하나뿐이므로 선택하기 쉬움)에서 타겟을 자동으로 가져와 Cube를 이동시킵니다.

 

 

 

 

빌보딩 및 고스트 카메라 설정 방법?

빌보딩은 객체가 항상 카메라를 향하도록 합니다. 다음 단계에서는 이를 간단히 설정하고, 이동이 쉬운 고스트 카메라를 설정하여 이를 시도해보겠습니다.
  1. Unity 2022.3.23f1(또는 그 이상)에서 새 프로젝트를 만들고 패키지 매니저를 통해 Feel v4.1.2(또는 그 이상)을 가져옵니다.
  2. 새 빈 장면을 만듭니다.
  3. 스프라이트 렌더러(Sprite Renderer)를 추가하고 위치를 (0,0,0)으로 설정합니다. 스프라이트는 button-A로 설정합니다.
  4. MMBillboard 컴포넌트를 스프라이트 렌더러에 추가합니다.
  5. 장면의 MainCamera에 MMGhostCamera 컴포넌트를 추가합니다.
  6. 에디터에서 재생 버튼을 누릅니다. WASD 키와 스페이스 바, C 키를 사용하여 이동하면 A 원이 카메라를 계속 바라보는 것을 확인할 수 있습니다.

 

 

위치 셰이커 설정 방법

  1. 새 프로젝트를 생성하고 패키지 매니저를 통해 Feel v4.1.2 (또는 그 이상)를 임포트합니다, 빈 씬을 생성합니다.
  2. 큐브를 생성하고 위치를 0,0,0으로 설정합니다, 큐브에 MMPositionShaker 컴포넌트를 추가합니다.
  3. 인스펙터에서 ShakerSettings 아래에서 PlayOnAwake를 true로 설정하고, PermanentShake를 true로 설정합니다.
  4. 플레이 버튼을 누르면 큐브가 실행 중에 흔들립니다. 필요에 따라 인스펙터에서 흔들림 범위와 방향 등을 사용자 정의할 수 있습니다.
  5. 플레이 모드를 종료하고, PlayOnAwake를 false로 설정하고 PermanentShake를 false로 설정합니다, 피드백을 생성하여 필요할 때만 움직임을 트리거할 수 있도록 합니다.
  6. "Player"라는 이름의 새로운 빈 게임 오브젝트를 생성하고 MMF Player 컴포넌트를 추가합니다, "Add new feedback" 드롭다운에서 Transform > PositionShake 피드백을 추가합니다.
  7. 피드백 설정에서 Channel을 정의할 수 있습니다. 우리의 쉐이커는 이미 Channel:0에 있으므로 그대로 둡니다.
  8. 에디터에서 플레이 버튼을 누릅니다. 그런 다음 MMF Player의 녹색 재생 버튼을 클릭하면 큐브가 흔들립니다.
  9. 플레이 모드에서 ShakeSpeed: 40, ShakeRange: 1, Duration: 0.75, ShakeMainDirection: 1,0,0, DirectionalNoiseStrengthMax: 1,1,1로 설정합니다.
  10. 다시 녹색 재생 버튼을 클릭하면 큐브가 주로 수평으로 흔들리며, 방향마다 약간의 무작위성이 추가됩니다.
  11. 이 컴포넌트를 사용하여 사용자가 원하는 대로 사용자 정의할 수 있으니 자유롭게 탐색해 보세요! 필요한 경우 rect transform에도 MMPositionShaker를 사용할 수 있습니다(적절한 모드를 설정하세요). 또한 필요한 경우 회전 및 크기에 대한 쉐이커도 찾아볼 수 있습니다.

 

 

MM Progress Bar 설정 방법?

  1. 새로운 프로젝트를 만들고 패키지 매니저를 통해 Feel v4.1.2(또는 그 이상)을 가져옵니다.
  2. 새 빈 씬을 만들고, UI > Canvas를 추가합니다.
  3. 해당 Canvas 아래에 빈 자식 오브젝트를 (0,0 위치에) 생성하고, 이름을 MyBar로 지정합니다.
  4. MyBar 아래에 UI > Image를 (0,0 위치에) 추가하고, 이름을 BackgroundBar로 지정합니다. 색상을 검정으로 설정하고, 너비를 300으로 설정한 후, Pivot.x를 0으로 설정합니다.
  5. MyBar를 복제하여 DelayedBarDecreasing으로 이름을 변경하고, 색상을 주황색으로 설정합니다.
  6. DelayedBarDecreasing을 복제하여 DelayedBarIncreasing으로 이름을 변경하고, 색상을 노란색으로 설정합니다.
  7. DelayedBarIncreasing을 복제하여 ForegroundBar로 이름을 변경하고, 색상을 녹색으로 설정합니다.
  8. 이제 네 개의 막대가 서로 겹쳐지고 (가장 먼저 녹색 막대가 보이도록) MyBar에 MMProgressBar 컴포넌트를 추가합니다. 주의: Feel에는 NV 데모 전용 MMProgressBar 컴포넌트가 하나 더 있으며, 컬러 인스펙터가 있는 것을 사용해야 합니다. Add Component > More Mountains > Tools > GUI > MM Progress Bar를 선택합니다.
  9. 상단 인스펙터 그룹(Bindings)을 펼치고 ForegroundBar와 DelayedBars를 해당 슬롯에 드래그합니다.
  10. FillSettings 접기를 펼치고 SetInitialFillValueOnStart를 true로 설정하고, InitialFillValue를 1로 설정한 후, BarFillMode를 FixedDuration으로 설정합니다.
  11. 에디터에서 재생을 누른 후, 인스펙터 하단의 Debug 접기에서 Minus10 / Plus10Percent 버튼을 누르면, 축하합니다! 작동하는 진행률 표시줄이 완성되었습니다!

 

 

스크립트를 통해 막대 값 제어

디버그 컨트롤도 좋지만, 아마도 진행률 표시줄의 값을 제어하는 스크립트를 원할 것입니다. 진행률 표시줄 API 메서드를 사용하면 매우 쉽게 할 수 있습니다. 필요한 것은 진행률 표시줄에 대한 참조와 간단한 메서드 호출뿐입니다. 다음 클래스를 프로젝트에 추가해 보겠습니다 (새 클래스를 생성하고 이름을 TestBar로 지정한 후, 다음 코드를 붙여 넣습니다).
using UnityEngine;
using MoreMountains.Tools;

public class TestBar : MonoBehaviour
{
    // 진행률 표시줄 참조를 가져오기 위해 슬롯에 드래그 앤 드롭합니다.
    public MMProgressBar TargetProgressBar;
    // 0에서 100 사이의 값, 게임에서는 주인공의 체력 값일 수 있습니다.
    [Range(0f, 100f)] public float Value;
    // 인스펙터에 표시할 테스트 버튼으로 ChangeBarValue 메서드를 호출합니다.
    [MMInspectorButton("ChangeBarValue")] public bool ChangeBarValueBtn;

    void ChangeBarValue()
    {
        TargetProgressBar.UpdateBar(Value, 0f, 100f);
    }
}
  1. 그런 다음, 씬에 새 빈 오브젝트를 생성하고 TestBar 컴포넌트를 추가한 후, MyBar를 TargetProgressBar 슬롯에 드래그 앤 드롭합니다.
  2. 에디터에서 재생을 누른 후, TestBar 인스펙터에서 슬라이더를 사용하여 값을 설정하고 ChangeBarValue 버튼을 누릅니다.
물론 실제 게임에서는 캐릭터가 피해를 입거나 마나를 사용할 때, 막대의 값을 업데이트하고자 할 때 UpdateBar 호출을 메서드에 포함시킬 것입니다.

 

 

객체에 스쿼시 및 스트레치 동작을 추가하는 방법?

  1. Unity 2022.3.23f1(또는 그 이상)에서 새로운 프로젝트를 만들고 패키지 매니저를 통해 Feel v4.1.2(또는 그 이상)을 가져옵니다.
  2. 새로운 빈 씬을 만듭니다.
  3. 새 빈 오브젝트를 만들고, 이름을 TopLevel로 지정하고, 위치를 (0,0,0)으로 설정합니다.
  4. 그 아래에 빈 자식 오브젝트를 (위치 (0,0,0)) 만들고, 이름을 SquashAndStretch로 지정한 후, MMSquashAndStretch 컴포넌트를 추가합니다.
  5. 마지막으로 큐브를 생성하고, SquashAndStretch 아래에 부모로 설정한 후 (0,0,0 위치), 3단계의 계층 구조를 가지도록 합니다.
  6. 에디터에서 재생 버튼을 누르고, TopLevel 오브젝트를 선택하여 이동시키면, 자동으로 스쿼시와 스트레치가 적용됩니다.

 

 

UI 요소 호버 효과 설정 방법?

마우스 커서가 UI 요소 위를 지나갈 때 UI 요소가 커지고, 마우스가 요소를 벗어날 때 다시 원래 크기로 줄어들게 하고 싶다면, 피드백을 사용하여 쉽게 설정할 수 있습니다.
새 클래스를 생성하고, 이름을 TestPointer로 지정한 후 다음 코드를 붙여 넣습니다:
using MoreMountains.Feedbacks;
using UnityEngine;
using UnityEngine.EventSystems;

public class TestPointer : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
{
	public MMF_Player MyPlayer;

	public void OnPointerEnter(PointerEventData eventData)
	{
		MyPlayer.Direction = MMFeedbacks.Directions.TopToBottom;
		MyPlayer.PlayFeedbacks();
	}

	public void OnPointerExit(PointerEventData eventData)
	{
		MyPlayer.Direction = MMFeedbacks.Directions.BottomToTop;
		MyPlayer.PlayFeedbacks();
	}
}
  1. 새로운 빈 씬에 UI > Button을 추가합니다, 버튼의 이름을 MyButton으로 지정하고, 위치를 (0,0,0)으로 설정합니다, MyButton에 TestPointer 컴포넌트를 추가합니다,
  2. 버튼에 빈 자식 오브젝트를 추가하고, 이름을 HoverFeedback으로 지정합니다, HoverFeedback에 MMF Player를 추가합니다.
  3. HoverFeedback에 Transform > Scale 피드백을 추가합니다, AnimateScaleTarget을 MyButton으로 설정합니다, 모든 트윈(X, Y, Z)을 MMTween > EaseInCubic으로 설정합니다, AnimateScaleDuration을 3으로 설정합니다.
  4. 다시 MyButton을 선택하고, HoverFeedback을 TestPointer 인스펙터의 MyPlayer 슬롯에 드래그 앤 드롭합니다.
  5. 에디터에서 재생 버튼을 누르고, 버튼 위에 커서를 올리면 버튼이 3초 동안 커지고, 커서를 이동시키면 다시 줄어듭니다.

 

 

 

코루틴의 나머지 부분을 실행하기 전에 MMF Player가 완료되기를 기다리는 방법?

  1. Unity 2022.3.23f1(또는 그 이상)에서 새로운 프로젝트를 만들고 패키지 매니저를 통해 Feel v4.1.2(또는 그 이상)을 가져옵니다.
  2. 새로운 씬에서 큐브를 추가합니다.
  3. 새 빈 오브젝트에 MMF Player를 추가하고, Position 피드백을 추가하여 큐브를 AnimatePositionTarget으로 설정하고, AnimatePositionDuration을 4로 설정합니다.
  4. 새 오브젝트에 TestCoroutine 컴포넌트를 추가하고, MMF Player를 MyPlayer 슬롯에 드래그합니다.
  5. 재생을 누르고 TestCoPlay 버튼을 누르면, 큐브가 이동하기 시작하고 첫 번째 디버그 로그가 콘솔에 표시됩니다. 4초 후 MMF Player가 재생을 완료하면 코루틴의 끝이 실행되어 콘솔에 새 항목이 표시됩니다.
using System.Collections;
using MoreMountains.Feedbacks;
using MoreMountains.Tools;
using UnityEngine;

public class TestCoroutine : MonoBehaviour
{
	public MMF_Player MyPlayer;

	[MMFInspectorButton("TestCoPlay")]
	public bool TestCoPlayBtn;

	private void TestCoPlay()
	{
		StartCoroutine(TestCoPlayCo());
	}

	private IEnumerator TestCoPlayCo()
	{
		MMDebug.DebugLogTime("start");
		yield return MyPlayer.PlayFeedbacksCoroutine(this.transform.position);
		MMDebug.DebugLogTime("end");
	}
}

 

 

특정 유형의 피드백을 비활성화하는 방법?

때때로 플레이어에게 어떤 유형의 피드백을 경험할지 선택할 수 있는 옵션을 제공하고 싶을 때가 있습니다. 예를 들어, 화면 흔들림을 줄일 수 있는 옵션을 제공하는 것은 장애가 있는 사람들에게 도움이 될 수 있습니다. Feel을 사용하면 매우 쉽게 할 수 있습니다!
  1. Unity 2022.3.23f1(또는 그 이상)에서 새로운 프로젝트를 만들고 패키지 매니저를 통해 Feel v4.1.2(또는 그 이상)을 가져옵니다.
  2. Toaster 데모 씬을 엽니다.
  3. 프로젝트에 새로운 클래스를 생성하고, 이름을 ImpulseDisabler로 지정한 후 다음 내용으로 바꿉니다:
using MoreMountains.FeedbacksForThirdParty;
using UnityEngine;

public class ImpulseDisabler : MonoBehaviour
{
	public void DisableAllImpulses()
	{
		MMF_CinemachineImpulse.FeedbackTypeAuthorized = false;
	}

	public void EnableAllImpulses()
	{
		MMF_CinemachineImpulse.FeedbackTypeAuthorized = true;
	}
}
  1. 씬에서 새로운 버튼을 생성합니다 (GameObject > UI > Button), 위치를 (0,0,0)으로 설정합니다 (중앙에 위치하게 되며, 필요에 따라 다른 위치로 옮길 수 있습니다).
  2. 새로 생성한 ImpulseDisabler 컴포넌트를 이 버튼에 추가합니다.
  3. 버튼 인스펙터에서 OnClick 항목에 새 엔트리를 추가하고, ImpulseDisabler 컴포넌트를 해당 슬롯에 드래그한 후, ImpulseDisabler.DisableAllImpulses 함수를 선택합니다.
  4. 에디터에서 재생을 누른 후, 씬 사이드바의 CM Impulse 버튼을 누르면 화면이 흔들립니다. 이제 생성한 버튼을 누르고 다시 CM Impulse 버튼을 누르면 화면이 더 이상 흔들리지 않습니다.
  5. 이제 단일 라인으로 피드백의 특정 유형을 비활성화(또는 활성화)하는 방법을 알게 되었습니다. 모든 피드백에 대해 이 작업을 수행할 수 있으며, 특정 유형을 대상으로 할 수 있습니다.

 

 

피드백을 사용하여 씬을 추가로 로드하는 방법?

  1. Unity 2022.3.23f1(또는 그 이상)에서 새로운 프로젝트를 만들고 패키지 매니저를 통해 Feel v4.1.2(또는 그 이상)을 가져옵니다.
  2. 새로운 빈 씬을 만듭니다.
  3. 새 빈 오브젝트를 생성하고, 이름을 Feedback으로 지정합니다. 이 오브젝트에 MMF Player 컴포넌트를 추가한 후, “Add new feedback” 드롭다운을 통해 Scene > Load Scene 피드백을 추가합니다.
  4. SceneLoading/DestinationSceneName을 FeelDuck(Feel 데모 중 하나)으로 설정합니다.
  5. 빌드 설정(File > Build Settings)을 열고, 프로젝트 뷰에서 FeelDuck 씬을 빌드 설정의 ScenesInBuild 패널로 드래그한 후 창을 닫습니다.
  6. MMAdditiveLoadingScreen 씬도 동일하게 추가합니다.
  7. 에디터에서 플레이 모드로 진입한 후, MMF Player의 녹색 재생 버튼을 누릅니다. 로딩 화면이 나타나고, 로드가 완료된 후 새로운 씬으로 전환됩니다.

 

 

스쿼시 및 스트레치 피드백을 설정하는 방법?

  1. Unity 2022.3.23f1(또는 그 이상)에서 새로운 프로젝트를 만들고 패키지 매니저를 통해 Feel v4.1.2(또는 그 이상)을 가져옵니다.
  2. 새 빈 오브젝트를 생성하고, 이름을 Container로 지정한 후, Transform을 리셋합니다.
  3. 새로운 큐브를 생성하고, 이름을 Model로 지정한 후 Container의 자식으로 설정하고, 위치를 (0,0,0)으로 설정합니다.
  4. 새 빈 오브젝트를 생성하고, 이름을 Player로 지정한 후, MMF Player를 추가합니다.
  5. Transform > Squash & Stretch 피드백을 추가하고, Container를 SquashAndStretchTarget 슬롯에 드래그합니다.
  6. 에디터에서 재생을 누르고, MMF Player의 녹색 재생 버튼을 누릅니다.
  1.  

 

'유니티 에셋 > Feel' 카테고리의 다른 글

Tweens and events  (0) 2024.07.13
Nice Vibrations  (0) 2024.07.13
Add juice to your game using springs  (0) 2024.07.10
Screen Shakes  (0) 2024.07.10
Creating a new feedback  (0) 2024.07.09

+ Recent posts