본문 바로가기

유니티/Asset

[ Asset - ObiRope ] 03 . Updater

[ Obi Updater ]

[ Obi Updater ]

ObiUpdater 실행 중 특정 지점에서 하나 이상의 솔버 시뮬레이션을 진행하는 구성 요소이다 .                    FixedUpdate() 중 나머지 물리학과 동기화하여 Solver 시뮬레이션을 업데이트하기를 할 수도 있다.                               

혹은 골격 애니메이션 후 또는 LateUpdate() 중에 물리를 업데이트 할 수 있다 .                                       

시뮬레이션을 업데이트하는 시기와 방법을 완전히 제어하기 위해 자체 업데이트 구성 요소를 작성할 수도 있다.

 

일반적으로 Scene에는 하나의 Updater만 있는게 좋다 . 만약 여러 Updater가 있어야 한다면 적어도 동일한 Solver를 참조하는 것은 피해야 한다 . 또한 Updater 에서 참조하지 않는다면 Solver의 시뮬레이션은 업데이트 되지 않는다 .


 

 

[ Obi Fixed Updater ]

FixedUpdate() 동안 시뮬레이션을 업데이트한다.

물리적으로 올바른 접근 방식이며 대부분의 시간에 사용해야 하는 접근 방식이다 .

구성요소는 다음과 같다

 

  • Solvers: 해당 Updater에서 틱한 Solver  목록이다 . 해당 목록에 없다면 update가 되지 않는다 .
  • Substeps:해당 Updater는 물리적 단계를 여러개의 작은 하위단계로 자를 수 있다. 예를 들어 , Unity의 Fixed Time Step이 0.002고 , Substeps가 4라면 각 하위단계는 0.002/4=0.005 즉, 0.005초씩 진행한다 . 이와 같이 더 작은 시간 단위의 시뮬레이션을 한다면 성능이 저하되는 대신 정밀도가 크게 상승한다 . 다만 , 충돌감지는 단계당 한번만 수행되며 모든 하위단계에서 상각된다

 

 

 

[ Obi Late Updater ]

Late Updater 는 모든 구성 요소에 대해 FixedUpdate()가 호출되고 물리 업데이트로 설정된 모든 애니메이터가

업데이트되면 WaitForFixedUpdate() 이후에 시뮬레이션을 업데이트한다. 

Update Physics로 설정된 애니메이터가 애니메이션을 개선한 후 시뮬레이션을 업데이트하는 데 사용한다.

이것은 대부분의 캐릭터 의상 또는 캐릭터 애니메이션에 의해 구동되는 액터 에 사용하고자 하는 종류의 업데이터이다 . 

캐릭터의 애니메이터가 물리 업데이트로 설정되어 있는지 확인하자

구성요소는 다음과 같다

 

  • Solvers: 해당 Updater에서 틱한 Solver  목록이다 .
  • delta smoothing:이 업데이터는 델타 시간에 저역 통과 필터를 적용하여 가변 시간 단계를 사용하여 발생하는 아티팩트를 최소화하려고 한다.이 값은 이 필터링이 얼마나 적극적인지를 제어한다.높은 값은 시간 단계를 적극적으로 필터링하여 연속 프레임에 대한 델타 시간의 변화를 최소화한다.0 값은 이 프레임에 대한 실제 시간 델타를 사용힌다 .

 


출처

http://obi.virtualmethodstudio.com/manual/6.3/updaters.html

 

Obi Physics for Unity - Obi Solver

Updaters A ObiUpdater is a component that advances the simulation of one or more solvers at a certain point during execution. Very often you will want to update the solver simulation in sync with the rest of the physics during FixedUpdate(). Sometimes you

obi.virtualmethodstudio.com