Live 2D의 투명도 및 텍스쳐 색상 변경
개발 환경
・Live 2DSDK_Unity_2.1.00_beta_8_jp
・Unity 5.0.1f1
UCL
이 기사는'유엔 허가증'에 근거해 공개됐다.
텍스쳐 색상 수정하기
라이브 2D 프로그래밍부에서 "텍스쳐 색상을 바꿀 수 있어요!"그래서 방법을 총결해 봤어요.
→ Live 2D 프로그래밍의 활동 보고서
On RenderObject()에 다음 코드를 추가하면 됩니다.live2DModel.setTextureColor (テクスチャ番号[0,1...], Red[0.0~1.0f], Green[0.0~1.0f], Blue[0.0~1.0f]);
Live 2D Unity SDK의 Simple 프로젝트를 맞춤형으로 제작하여 Unity 모델을 바꾸어 보았습니다.
(sample\Simple\Assets\Scene\Sample.unity)
실행 후 슬라이더를 만지면 이런 느낌이에요.
하지만 눈 부분은 SDK2다.아마도 1부터 시작하는 새로운 기능인'폭 제한 마스크'를 사용했기 때문에 색상 변화가 없었을 거야...
눈을 바꾸고 싶을 경우 Live 2D의 거리 측정 모드를 L2D로 설정합니다.RENDER_DRAW_MESH로 해결할 수 있어요!
→여러 Live 2D 모델의 그리기 순서 제어하기의 "2. 드로잉 모드 수정 및 Z 값으로 제어"
무늬에 따라 색깔을 바꿀 수 있기 때문에 장면에 맞는 좋은 그림을 만들 수 있다.
2015/09/17 스포츠투데이
Live2D Unity SDK2.1부터 제한된 마스크를 사용하는 경우live2DModel.업데이트 타이밍 변경
텍스쳐 색상의 소스 코드 변경
SimpleModel.csusing UnityEngine;
using System;
using System.Collections;
using live2d;
[ExecuteInEditMode]
public class SimpleModel : MonoBehaviour
{
public TextAsset mocFile ;
public Texture2D[] textureFiles ;
[Range(0.0f, 1.0f)]
public float Color_Red = 1.0f; // Add
[Range(0.0f, 1.0f)]
public float Color_Green = 1.0f;// Add
[Range(0.0f, 1.0f)]
public float Color_Blue = 1.0f; // Add
private Live2DModelUnity live2DModel;
private Matrix4x4 live2DCanvasPos;
void Start ()
{
Live2D.init();
live2DModel = Live2DModelUnity.loadModel(mocFile.bytes);
for (int i = 0; i < textureFiles.Length; i++)
{
live2DModel.setTexture(i, textureFiles[i]);
}
float modelWidth = live2DModel.getCanvasWidth();
live2DCanvasPos = Matrix4x4.Ortho(0, modelWidth, modelWidth, 0, -50.0f, 50.0f);
}
void OnRenderObject()
{
if (live2DModel == null) return;
live2DModel.setMatrix(transform.localToWorldMatrix * live2DCanvasPos);
if (!Application.isPlaying)
{
live2DModel.update();
live2DModel.draw();
return;
}
// Add Start
for (int i = 0; i < textureFiles.Length; i++)
{
live2DModel.setTextureColor(i, Color_Red, Color_Green, Color_Blue);
}
// Add End
double t = (UtSystem.getUserTimeMSec()/1000.0) * 2 * Math.PI ;
live2DModel.setParamFloat( "PARAM_ANGLE_X" , (float) (30 * Math.Sin( t/3.0 )) ) ;
live2DModel.update();
live2DModel.draw();
}
}
2016/03/16
다음 코드는 모형을 그릴 때 전체에 곱하는 색을 설정할 수 있습니다. (파라미터는 A, R, G, B 순서에 따라)live2DModel.getDrawParam().setBaseColor(1.0f, 1.0f, 1.0f, 1.0f);
투명도 변경
Live 2D API 참조 보고 부품의 투명도를 바꿀 수 있기 때문에 아래 코드로 시험해 봤습니다.
SimpleModel.cspublic class SimpleModel : MonoBehaviour
{
.
[Range(0.0f, 1.0f)]
public float modelOpacity = 1.0f; // 透明度の調整
.
void OnRenderObject(){
.
.
// 全てのパーツの透明度調整
var partList = live2DModel.getModelImpl().getPartsDataList();
foreach (var item in partList) {
live2DModel.setPartsOpacity(item.getPartsDataID().ToString(), modelOpacity);
}
.
.
}
}
다만, 이렇게 하면 부품이 겹치는 부분을 볼 수 있다
렌더링을 통해 투명도 변경
라이브 2D 매뉴얼에는 오피스 텍스터를 통해 반투명이 가능하다고 적혀 있다.
· Q.Live 2D 모델은 반투명으로 표시됩니까?
· 오프라인으로 반투명 제거
RenderTexture는 Unity 5에서 Free에서도 사용할 수 있으며 방금 Unity 이미지의 수면도 RenderTexture입니다.
([Assiets]-[Import Package]-[Enviroment]에 Water Pribu를 추가하면 수면을 간단하게 형성할 수 있다)
• Unity Doocumentation - 텍스쳐 렌더링
· RenderTexture(Pro 전용)를 사용하여 무늬에 다른 카메라의 영상을 묘사한다
Live 2D Unity SDK의 RenderTexture 프로젝트라면 3D 객체로 투명도를 바꿀 수 있어 해봤어요.
(sample\RenderTexture\Assets\Scene\Sample.unity)
Hierarchy의 Plane 객체는 RenderTexture의 그리기 대상이지만 기본적으로 투명도는 변경할 수 없습니다.
그래서 Shader를 UI/Default로 바꿨어요.
(기본 Unlit/Transparent이면 조명의 영향을 받지 않고 원화를 직접 표시할 수 있을 것 같다)
Tint 색상을 클릭하여 α를 수정하면 투명도를 변경하거나 색상을 변경할 수 있습니다.
그나저나 Shader의 Sprites/Default도 가능하지만 UI/Default는 ColorMask도 할 수 있습니다.
※ Sprites/Default = 알파가 섞인 그림자 라인.Unity 조명과 함께 작동하지 않습니다.
2015/12/09 스포츠투데이
Unity5.3 UI/Default의 규격이 바뀌었습니다. Sprites/Default을 사용하십시오Upgrading to Unity 5.3
하지만 Unity처럼 커팅 마스크를 착용하면 귀여울 수 있으니 Unlit/Texture를 추천합니다
(현재 투명도를 제거할 수 없기 때문에 감소된 모델을 사용하지 않는 것이 좋다)
※ Live2D Unity SDK2.1부터 이 문제도 해결됐어요.
또한 Shader를 Standard로 만들면 조명의 영향을 받아 다양한 게임을 할 수 있다(Directional light 필요)
이번 검증을 통해 Live 2D 모델을 페이드아웃하려면 RenderTexture를 사용하는 방법밖에 없다는 것을 알게 되었다.
Reference
이 문제에 관하여(Live 2D의 투명도 및 텍스쳐 색상 변경), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/naotaro0123/items/5866dc7be0f09997d797
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이 기사는'유엔 허가증'에 근거해 공개됐다.
텍스쳐 색상 수정하기
라이브 2D 프로그래밍부에서 "텍스쳐 색상을 바꿀 수 있어요!"그래서 방법을 총결해 봤어요.
→ Live 2D 프로그래밍의 활동 보고서
On RenderObject()에 다음 코드를 추가하면 됩니다.live2DModel.setTextureColor (テクスチャ番号[0,1...], Red[0.0~1.0f], Green[0.0~1.0f], Blue[0.0~1.0f]);
Live 2D Unity SDK의 Simple 프로젝트를 맞춤형으로 제작하여 Unity 모델을 바꾸어 보았습니다.
(sample\Simple\Assets\Scene\Sample.unity)
실행 후 슬라이더를 만지면 이런 느낌이에요.
하지만 눈 부분은 SDK2다.아마도 1부터 시작하는 새로운 기능인'폭 제한 마스크'를 사용했기 때문에 색상 변화가 없었을 거야...
눈을 바꾸고 싶을 경우 Live 2D의 거리 측정 모드를 L2D로 설정합니다.RENDER_DRAW_MESH로 해결할 수 있어요!
→여러 Live 2D 모델의 그리기 순서 제어하기의 "2. 드로잉 모드 수정 및 Z 값으로 제어"
무늬에 따라 색깔을 바꿀 수 있기 때문에 장면에 맞는 좋은 그림을 만들 수 있다.
2015/09/17 스포츠투데이
Live2D Unity SDK2.1부터 제한된 마스크를 사용하는 경우live2DModel.업데이트 타이밍 변경
텍스쳐 색상의 소스 코드 변경
SimpleModel.csusing UnityEngine;
using System;
using System.Collections;
using live2d;
[ExecuteInEditMode]
public class SimpleModel : MonoBehaviour
{
public TextAsset mocFile ;
public Texture2D[] textureFiles ;
[Range(0.0f, 1.0f)]
public float Color_Red = 1.0f; // Add
[Range(0.0f, 1.0f)]
public float Color_Green = 1.0f;// Add
[Range(0.0f, 1.0f)]
public float Color_Blue = 1.0f; // Add
private Live2DModelUnity live2DModel;
private Matrix4x4 live2DCanvasPos;
void Start ()
{
Live2D.init();
live2DModel = Live2DModelUnity.loadModel(mocFile.bytes);
for (int i = 0; i < textureFiles.Length; i++)
{
live2DModel.setTexture(i, textureFiles[i]);
}
float modelWidth = live2DModel.getCanvasWidth();
live2DCanvasPos = Matrix4x4.Ortho(0, modelWidth, modelWidth, 0, -50.0f, 50.0f);
}
void OnRenderObject()
{
if (live2DModel == null) return;
live2DModel.setMatrix(transform.localToWorldMatrix * live2DCanvasPos);
if (!Application.isPlaying)
{
live2DModel.update();
live2DModel.draw();
return;
}
// Add Start
for (int i = 0; i < textureFiles.Length; i++)
{
live2DModel.setTextureColor(i, Color_Red, Color_Green, Color_Blue);
}
// Add End
double t = (UtSystem.getUserTimeMSec()/1000.0) * 2 * Math.PI ;
live2DModel.setParamFloat( "PARAM_ANGLE_X" , (float) (30 * Math.Sin( t/3.0 )) ) ;
live2DModel.update();
live2DModel.draw();
}
}
2016/03/16
다음 코드는 모형을 그릴 때 전체에 곱하는 색을 설정할 수 있습니다. (파라미터는 A, R, G, B 순서에 따라)live2DModel.getDrawParam().setBaseColor(1.0f, 1.0f, 1.0f, 1.0f);
투명도 변경
Live 2D API 참조 보고 부품의 투명도를 바꿀 수 있기 때문에 아래 코드로 시험해 봤습니다.
SimpleModel.cspublic class SimpleModel : MonoBehaviour
{
.
[Range(0.0f, 1.0f)]
public float modelOpacity = 1.0f; // 透明度の調整
.
void OnRenderObject(){
.
.
// 全てのパーツの透明度調整
var partList = live2DModel.getModelImpl().getPartsDataList();
foreach (var item in partList) {
live2DModel.setPartsOpacity(item.getPartsDataID().ToString(), modelOpacity);
}
.
.
}
}
다만, 이렇게 하면 부품이 겹치는 부분을 볼 수 있다
렌더링을 통해 투명도 변경
라이브 2D 매뉴얼에는 오피스 텍스터를 통해 반투명이 가능하다고 적혀 있다.
· Q.Live 2D 모델은 반투명으로 표시됩니까?
· 오프라인으로 반투명 제거
RenderTexture는 Unity 5에서 Free에서도 사용할 수 있으며 방금 Unity 이미지의 수면도 RenderTexture입니다.
([Assiets]-[Import Package]-[Enviroment]에 Water Pribu를 추가하면 수면을 간단하게 형성할 수 있다)
• Unity Doocumentation - 텍스쳐 렌더링
· RenderTexture(Pro 전용)를 사용하여 무늬에 다른 카메라의 영상을 묘사한다
Live 2D Unity SDK의 RenderTexture 프로젝트라면 3D 객체로 투명도를 바꿀 수 있어 해봤어요.
(sample\RenderTexture\Assets\Scene\Sample.unity)
Hierarchy의 Plane 객체는 RenderTexture의 그리기 대상이지만 기본적으로 투명도는 변경할 수 없습니다.
그래서 Shader를 UI/Default로 바꿨어요.
(기본 Unlit/Transparent이면 조명의 영향을 받지 않고 원화를 직접 표시할 수 있을 것 같다)
Tint 색상을 클릭하여 α를 수정하면 투명도를 변경하거나 색상을 변경할 수 있습니다.
그나저나 Shader의 Sprites/Default도 가능하지만 UI/Default는 ColorMask도 할 수 있습니다.
※ Sprites/Default = 알파가 섞인 그림자 라인.Unity 조명과 함께 작동하지 않습니다.
2015/12/09 스포츠투데이
Unity5.3 UI/Default의 규격이 바뀌었습니다. Sprites/Default을 사용하십시오Upgrading to Unity 5.3
하지만 Unity처럼 커팅 마스크를 착용하면 귀여울 수 있으니 Unlit/Texture를 추천합니다
(현재 투명도를 제거할 수 없기 때문에 감소된 모델을 사용하지 않는 것이 좋다)
※ Live2D Unity SDK2.1부터 이 문제도 해결됐어요.
또한 Shader를 Standard로 만들면 조명의 영향을 받아 다양한 게임을 할 수 있다(Directional light 필요)
이번 검증을 통해 Live 2D 모델을 페이드아웃하려면 RenderTexture를 사용하는 방법밖에 없다는 것을 알게 되었다.
Reference
이 문제에 관하여(Live 2D의 투명도 및 텍스쳐 색상 변경), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/naotaro0123/items/5866dc7be0f09997d797
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
SimpleModel.cs
using UnityEngine;
using System;
using System.Collections;
using live2d;
[ExecuteInEditMode]
public class SimpleModel : MonoBehaviour
{
public TextAsset mocFile ;
public Texture2D[] textureFiles ;
[Range(0.0f, 1.0f)]
public float Color_Red = 1.0f; // Add
[Range(0.0f, 1.0f)]
public float Color_Green = 1.0f;// Add
[Range(0.0f, 1.0f)]
public float Color_Blue = 1.0f; // Add
private Live2DModelUnity live2DModel;
private Matrix4x4 live2DCanvasPos;
void Start ()
{
Live2D.init();
live2DModel = Live2DModelUnity.loadModel(mocFile.bytes);
for (int i = 0; i < textureFiles.Length; i++)
{
live2DModel.setTexture(i, textureFiles[i]);
}
float modelWidth = live2DModel.getCanvasWidth();
live2DCanvasPos = Matrix4x4.Ortho(0, modelWidth, modelWidth, 0, -50.0f, 50.0f);
}
void OnRenderObject()
{
if (live2DModel == null) return;
live2DModel.setMatrix(transform.localToWorldMatrix * live2DCanvasPos);
if (!Application.isPlaying)
{
live2DModel.update();
live2DModel.draw();
return;
}
// Add Start
for (int i = 0; i < textureFiles.Length; i++)
{
live2DModel.setTextureColor(i, Color_Red, Color_Green, Color_Blue);
}
// Add End
double t = (UtSystem.getUserTimeMSec()/1000.0) * 2 * Math.PI ;
live2DModel.setParamFloat( "PARAM_ANGLE_X" , (float) (30 * Math.Sin( t/3.0 )) ) ;
live2DModel.update();
live2DModel.draw();
}
}
2016/03/16다음 코드는 모형을 그릴 때 전체에 곱하는 색을 설정할 수 있습니다. (파라미터는 A, R, G, B 순서에 따라)
live2DModel.getDrawParam().setBaseColor(1.0f, 1.0f, 1.0f, 1.0f);
투명도 변경
Live 2D API 참조 보고 부품의 투명도를 바꿀 수 있기 때문에 아래 코드로 시험해 봤습니다.
SimpleModel.cspublic class SimpleModel : MonoBehaviour
{
.
[Range(0.0f, 1.0f)]
public float modelOpacity = 1.0f; // 透明度の調整
.
void OnRenderObject(){
.
.
// 全てのパーツの透明度調整
var partList = live2DModel.getModelImpl().getPartsDataList();
foreach (var item in partList) {
live2DModel.setPartsOpacity(item.getPartsDataID().ToString(), modelOpacity);
}
.
.
}
}
다만, 이렇게 하면 부품이 겹치는 부분을 볼 수 있다
렌더링을 통해 투명도 변경
라이브 2D 매뉴얼에는 오피스 텍스터를 통해 반투명이 가능하다고 적혀 있다.
· Q.Live 2D 모델은 반투명으로 표시됩니까?
· 오프라인으로 반투명 제거
RenderTexture는 Unity 5에서 Free에서도 사용할 수 있으며 방금 Unity 이미지의 수면도 RenderTexture입니다.
([Assiets]-[Import Package]-[Enviroment]에 Water Pribu를 추가하면 수면을 간단하게 형성할 수 있다)
• Unity Doocumentation - 텍스쳐 렌더링
· RenderTexture(Pro 전용)를 사용하여 무늬에 다른 카메라의 영상을 묘사한다
Live 2D Unity SDK의 RenderTexture 프로젝트라면 3D 객체로 투명도를 바꿀 수 있어 해봤어요.
(sample\RenderTexture\Assets\Scene\Sample.unity)
Hierarchy의 Plane 객체는 RenderTexture의 그리기 대상이지만 기본적으로 투명도는 변경할 수 없습니다.
그래서 Shader를 UI/Default로 바꿨어요.
(기본 Unlit/Transparent이면 조명의 영향을 받지 않고 원화를 직접 표시할 수 있을 것 같다)
Tint 색상을 클릭하여 α를 수정하면 투명도를 변경하거나 색상을 변경할 수 있습니다.
그나저나 Shader의 Sprites/Default도 가능하지만 UI/Default는 ColorMask도 할 수 있습니다.
※ Sprites/Default = 알파가 섞인 그림자 라인.Unity 조명과 함께 작동하지 않습니다.
2015/12/09 스포츠투데이
Unity5.3 UI/Default의 규격이 바뀌었습니다. Sprites/Default을 사용하십시오Upgrading to Unity 5.3
하지만 Unity처럼 커팅 마스크를 착용하면 귀여울 수 있으니 Unlit/Texture를 추천합니다
(현재 투명도를 제거할 수 없기 때문에 감소된 모델을 사용하지 않는 것이 좋다)
※ Live2D Unity SDK2.1부터 이 문제도 해결됐어요.
또한 Shader를 Standard로 만들면 조명의 영향을 받아 다양한 게임을 할 수 있다(Directional light 필요)
이번 검증을 통해 Live 2D 모델을 페이드아웃하려면 RenderTexture를 사용하는 방법밖에 없다는 것을 알게 되었다.
Reference
이 문제에 관하여(Live 2D의 투명도 및 텍스쳐 색상 변경), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/naotaro0123/items/5866dc7be0f09997d797
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
public class SimpleModel : MonoBehaviour
{
.
[Range(0.0f, 1.0f)]
public float modelOpacity = 1.0f; // 透明度の調整
.
void OnRenderObject(){
.
.
// 全てのパーツの透明度調整
var partList = live2DModel.getModelImpl().getPartsDataList();
foreach (var item in partList) {
live2DModel.setPartsOpacity(item.getPartsDataID().ToString(), modelOpacity);
}
.
.
}
}
라이브 2D 매뉴얼에는 오피스 텍스터를 통해 반투명이 가능하다고 적혀 있다.
· Q.Live 2D 모델은 반투명으로 표시됩니까?
· 오프라인으로 반투명 제거
RenderTexture는 Unity 5에서 Free에서도 사용할 수 있으며 방금 Unity 이미지의 수면도 RenderTexture입니다.
([Assiets]-[Import Package]-[Enviroment]에 Water Pribu를 추가하면 수면을 간단하게 형성할 수 있다)
• Unity Doocumentation - 텍스쳐 렌더링
· RenderTexture(Pro 전용)를 사용하여 무늬에 다른 카메라의 영상을 묘사한다
Live 2D Unity SDK의 RenderTexture 프로젝트라면 3D 객체로 투명도를 바꿀 수 있어 해봤어요.
(sample\RenderTexture\Assets\Scene\Sample.unity)
Hierarchy의 Plane 객체는 RenderTexture의 그리기 대상이지만 기본적으로 투명도는 변경할 수 없습니다.
그래서 Shader를 UI/Default로 바꿨어요.
(기본 Unlit/Transparent이면 조명의 영향을 받지 않고 원화를 직접 표시할 수 있을 것 같다)
Tint 색상을 클릭하여 α를 수정하면 투명도를 변경하거나 색상을 변경할 수 있습니다.
그나저나 Shader의 Sprites/Default도 가능하지만 UI/Default는 ColorMask도 할 수 있습니다.
※ Sprites/Default = 알파가 섞인 그림자 라인.Unity 조명과 함께 작동하지 않습니다.
2015/12/09 스포츠투데이
Unity5.3 UI/Default의 규격이 바뀌었습니다. Sprites/Default을 사용하십시오Upgrading to Unity 5.3
하지만 Unity처럼 커팅 마스크를 착용하면 귀여울 수 있으니 Unlit/Texture를 추천합니다
(현재 투명도를 제거할 수 없기 때문에 감소된 모델을 사용하지 않는 것이 좋다)
※ Live2D Unity SDK2.1부터 이 문제도 해결됐어요.
또한 Shader를 Standard로 만들면 조명의 영향을 받아 다양한 게임을 할 수 있다(Directional light 필요)
이번 검증을 통해 Live 2D 모델을 페이드아웃하려면 RenderTexture를 사용하는 방법밖에 없다는 것을 알게 되었다.
Reference
이 문제에 관하여(Live 2D의 투명도 및 텍스쳐 색상 변경), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/naotaro0123/items/5866dc7be0f09997d797텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)