7일째: 회전목마에서 애니메이션 버튼 작동법 배우기

5195 단어 VCI
이 글은 어드벤트 달력'[VCD] 테마파크 만들어.의 7일째 기사다.

이번 내용


이번에는 회전목마를 만들면서 다음 내용을 배워보도록 하겠습니다.
  • 애니메이션의 설정 방법
  • 버튼을 눌러 스크립트 쓰기 활성화
  • 애니메이션


    애니메이션은 작성된 객체로 이동할 수 있는 Unity 구성 요소입니다.
    여기에서 만든 애니메이션을 VCD에서 실행할 수 있으며 스크립트를 거의 쓰지 않고 복잡한 작업을 수행할 수 있습니다.
    비디오 CD에 사용할 수 있는 애니메이션은 제한되어 있습니다.상세한 상황은 아래의 내용을 참조하시오.
    · VCD의 애니메이션 페이지 일람https://virtualcast.jp/wiki/doku.php?id=vci:sample:animation

    Unity에서 애니메이션 설정


    이번에 나는 회전목마에 회전 애니메이션을 더하고 싶다.
    제작된 모델은 다음과 같은 회전 부분(RotateObject)과 비회전 부분(Static)으로 나뉜다.
    이 RotateObject를 돌리는 설정을 만들겠습니다.

    우선, 대상을 선택하고, 애니메이션 창에서create를 누르면 애니메이션 편집을 만듭니다.이 경우 animatior 어셈블리가 자동으로 객체에 부착됩니다.
    [주의] 이 설치 애니메이션의 부분은 이동하려는 대상(이번에는 Rotate Object)보다 한 단계 이상 높아야 한다.이동할 객체 자체에 animator를 추가하면 제대로 내보낼 수 없습니다.
    다음 애니메이션 창에서 애니메이션을 설정합니다.이번에는 5초 후부터 약 1분간 회전을 설정했다.
    회전 애니메이션은 이 상태에서는 움직이지 않으므로 Rotation 오른쪽에 있는 마름모꼴 > Interpolation > EulerAngles (Quaternion) 을 선택하십시오.(잘 모르겠지만 회전 계산 방법을 바꾸고 있나요?)

    버튼 생성


    회전 애니메이션을 실행할 수 있는 단추를 준비합니다.
    이렇게 말하지만 버튼 대상과 같은 것이 없기 때문에 SubItem 구성 요소를 사용하여 CubeObject에서 손잡이로 반응할 수 있습니다.

    설정 방법


    먼저 빈 객체를 작성한 다음 서브에 Cube 객체를 작성합니다.
    빈 객체에 SubItem 구성 요소를 추가합니다.
    이번에는 큐브를 데리고 가면 곤란할 것 같아서 라이트바디의 컨straints를 설정합니다.
    Constraints는 이동하지 않고 회전하는 축을 설정할 수 있습니다.이번에는 모든 축을 움직이고 회전시키기 싫으니 모두 검사해 보세요.

    유닛 설정은 여기까지입니다.
    완료되면 seedOnline으로 내보내고 가져옵니다.

    스크립트 만들기


    다음은 V cast 및 편집기 작업입니다.
    이번에는 애니메이션을 설정하고 싶어서 아래 페이지를 참고하여 코드를 씁니다
    vci.assets(ExportAnimation)
    상기 페이지를 참고하여 만든 코드는 다음과 같다.
    -- アニメーションの設定の作成。
    local table = { wrap_mode="once", speed=1 }
    local carouselAnimeSetting = json.serialize(table)
    
    ---[SubItemの所有権&Use状態]アイテムをグラッブしてグリップボタンを押すと呼ばれる。
    ---@param use string @押されたアイテムのSubItem名
    function onUse(use)
      --今回作成したボタン「Start_Carousel」が押されたときのみ実行される
      if use == "Start_Carousel" then
        --Carouselに紐付いたアニメーションを取得する。
        local anime = vci.assets.GetTransform("Carousel").GetAnimation()
        --RotateCarousel(作成したアニメーション)を作成した設定で再生する。
        anime._ALL_PlayWithState("RotateCarousel", carouselAnimeSetting)
        -- 速度変更しないのであれば以下の記載でもOK(第2引数はloopするかどうかのフラグ)。この関数の場合設定の作成は不要。
        -- anime._ALL_PlayFromName("RotateCarousel",false)
      end
    end
    
    onUse는 함수입니다. 이것은 하위 항목의 대상(또는 하위 대상)이 잡힐 때 실행되는 함수입니다.
    매개변수의 use에 캡처된 SubItem 이름이 있습니다.이 객체는 이퀄라이저가 있는 객체 이름이 아닙니다.
    또 온우스의 함수는 잡은 본인만 처리할 수 있다.따라서 ALL이 애니메이션을 재생하지 않으면 땅을 잡는 사람만 이동할 수 있기 때문에 ALL이 있는 함수를 호출하여 모든 사람이 재생성할 수 있다.
    실제로 큐브를 잡고 움직이면 완성.
    (V형 캐릭터는 앉는 기능이 없어서 계속 서서 돌고 있습니다. V형 캐릭터의 앉는 방법을 참을성 있게 기다리세요.)

    끝맺다


    어때요?
    이번에는 회전만 하지만 바로 아래로 이동시키는 애니메이션도 설정할 수 있다.
    다음에는 체육점 설정을 쓰고 싶어요.

    좋은 웹페이지 즐겨찾기