곱하기 색·스크린색

[마지막 갱신일: 2022/05/19]

곱하기 색·스크린색을 이용하여 모델에 색을 혼합하여 그리는 방법을 설명합니다.
여기서 소개하는 기능은 SDK for Unity 4 R5 beta1 이후의 기능입니다.

Cubism Editor 4.2 이전에 작성된 모델 등, 모델에 곱하기 색·스크린색이 설정되어 있지 않은 경우도 특히 추가의 코딩을 실시하지 않고 이용 가능합니다.
SDK for Unity에서의 상세한 사양이나 이용 방법에 대해서는 SDK 매뉴얼의 「곱하기 색・스크린색」을 참조해 주십시오.

사전 준비를 위해 「SDK 가져오기」를 참조하여 모델 데이터를 가져 와서 조립식을 배치하십시오.

초기상태에서는 모델에 미리 설정된 곱하기 색·스크린색을 항상 참조하도록 설정되어 있어 모델에 곱하기 색·스크린색이 설정되어 있지 않은 경우는 이하의 값이 사용됩니다.

  • 곱하기 색으로 (1.0, 1.0, 1.0, 1.0)
  • 스크린색에서는 (0.0, 0.0, 0.0, 1.0)

 

인스펙터에서 사용

SDK측에서 곱하기 색·스크린색을 조작할 수 있도록 하려면 이하의 플래그를 유효하게 합니다.

곱하기 색:

OverwriteFlagForModelMultiplyColors 또는 OverwriteFlagForMultiplyColors

스크린색:

OverwriteFlagForModelScreenColors 또는 OverwriteFlagForScreenColors

OverwriteFlagForModelMultiplyColors 및 OverwriteFlagForModelScreenColors는 모든 Drawable에 대해 SDK 측에서 곱하기 색·스크린색의 조작을 가능하게 하는지를 결정하는 플래그입니다.
이러한 플래그는 UnityEditor상에서는 모델의 프리팹의 루트 오브젝트에 첨부되고 있는 [CubismRenderController] 의 인스펙터상에서도 조작하는 것이 가능합니다.

 

OverwriteFlagForMultiplyColors 및 OverwriteFlagForScreenColors는 개별 Drawable이 각각 SDK 측에서 곱하기 색 및 스크린색 조작을 허용하는지 여부를 결정하는 플래그입니다.
모델의 각 Drawable 객체에 첨부되고 있는 [CubismRenderer] 의 인스펙터상에서도 조작하는 것이 가능합니다.

전술한 [CubismRenderController] 가 가지는 곱하기 색·스크린색의 플래그가 유효화되고 있는 경우는, 그것이 우선됩니다.

곱하기 색·스크린색의 설정은 스크립트상에서의 제어는 물론, [CubismRenderer]의 인스펙터상에서도 조작하는 것이 가능합니다.

 

 

스크립트에서 사용

어플리케이션상에서 이용하는 경우를 비롯해, 스크립트상에서 제어할 필요가 있는 경우에는 다음과 같은 코드가 유효합니다.

아래의 코드에서는, 모든 Drawable 오브젝트의 스크린색을 일정 시간에 일제히 변화시키는 처리를 실시하고 있습니다.

내용을 아래와 같이 재기록한 C# 스크립트를 작성해, 모델의 프리팹의 루트 오브젝트에 어태치 하는 형태로 이용할 수 있습니다.

 

 

모델측으로부터의 곱하기 색·스크린색의 갱신의 통지를 받는다

모델의 파라미터에 곱하기 색·스크린색의 변경이 연결되어 있는 경우, SDK측으로부터의 조작이 아니고, 모델이 애니메이션했을 때 등에 모델측으로부터 곱하기 색·스크린색이 변경되는 일이 있습니다.

이 때 곱하기 색·스크린색이 변경된 것을 받을 수 있는 프로퍼티, IsBlendColorDirty 가 [CubismDynamicDrawableData] 에 구현되고 있습니다.

이 프로퍼티는 곱하기 색 혹은 스크린색의 어느 쪽인가가 모델측에서 변경되었을 때에 true 가 되어, 곱하기 색과 스크린색의 어느 것이 변경되었는지는 판별하지 않습니다.

자세한 내용은 SDK 매뉴얼의 「곱하기 색 · 스크린색」을 참조하십시오.

© 2010 - 2022 Live2D Inc.