24일째: 불꽃놀이에서 배우는 효과 만들기(Unity·Script 편)

이 글은 달력'[VCD] 테마파크 만들어.'을 첨부한 글이다.

이번 내용


이번에는 저번에 만든 불꽃놀이 효과를 찍고 싶어요.
이번에 배운 기술은 다음과 같다.
• Effect를 실행하는 방법
• 랜덤 요소가 있는 스크립트 쓰기

Unity 요약


바로 유니티 들어갑니다.상세한 절차는 아래의 공식 페이지를 보십시오.
Effekser(VCD 지원)
위키의 설명은 내보낸 파일에 대한 D&D 설명입니다
프로젝트를 완료합니다.5의 efkefc 파일로 만들면 efkefc 파일의 D&D를 만들 수 있다고 한다.
그러나 이 경우에도 이미지 파일의 상대 경로를 유지해야 한다.
이번에는 연속으로 불꽃을 쏘는 방식으로 제작됐다.
불꽃놀이를 많이 했기 때문에 다른 사람과 동기화할 필요가 없기 때문에 먼저 하위 대상을 몇 개 만든다.
Effect가 있는 객체를 선택하면 Scene의 오른쪽 아래에 Effect용 패널이 표시됩니다.여기서 확인 내용을 재생할 수 있습니다.

코드 생성


스크립트에서 Effect를 재생합니다.자세한 내용은 아래 공식 페이지를 보십시오.
Effekseer(효과)
상술한 내용을 참고하여 만든 코드는 다음과 같다.
불꽃놀이의 간격과 위치를 분산시키기 위해matn.random을 사용하고 있습니다.
--- 次の花火が再生される時間。
local nextExplosionTime = vci.me.Time.TotalSeconds
--- 次のエフェクト再生対象となる花火のNo
local targetFireWorkNo = 1

function updateAll()
  local minute = tonumber(os.date("%M"))
  if minute == illminateMinute and nextExplosionTime < vci.me.Time.TotalSeconds then
    --花火の出現位置をランダムなるように設定
    local x = math.random(-50,50)
    local y = math.random(-20,20)
    local z = math.random(-4,4)

    --アイテムを取得して位置と大きさを設定
    local item = vci.assets.GetTransform("Fireworks "..targetFireWorkNo)
    item.SetLocalPosition(Vector3.__new(x,y,z))
    item.SetLocalScale(2*(Vector3.one+ Vector3.one*math.random(-5,10)/10))

    --エフェクトを取得して再生
    local effect = vci.assets.GetEffekseerEmitter("Fireworks "..targetFireWorkNo)
    effect.PlayOneShot()

    --次実行する花火の番号と実行する時間を設定
    targetFireWorkNo = targetFireWorkNo%20 + 1
    nextExplosionTime = vci.me.Time.TotalSeconds + math.random(1,15)/10
  end
end
실제 운행 후 아래와 같다.
공원에 불꽃놀이가 왔다!٩( 'ω' )و기사도 썼어요!또 하루!٩( 'ω' )و https://t.co/cj3UuStLEN-마라와 마라(@lightjug)pic.twitter.com/yaS7TG3hWx

끝맺다


어때요?

이번에는 불꽃이 갑자기 공중으로 날아오르는 방식으로 제작되었지만, 애니메이션과 각본을 통해 지면에서 옥석을 발사한 후 폭발 효과를 재생할 수 있다br/>
다음에 Room 설정이 공개됩니다.


좋은 웹페이지 즐겨찾기