Basic Data Types
Texture Data Types
Packed Array
fixed4 colour1 = (0,1,1,0);colour1.r = 1;colour1.xgb 이런 식으로 섞어서 쓸 순 없다. colour1.xzy는 가능함.fixed3 colour3; colour3 = colour1.rgb;fixed3 c = 1;과 fixed3 c = (1,1,1);은 같은 연산이다.colour1.rg = colour2.gr;Packed Matrices
float4x4 matrix;float myValue = matrix._m00;fixed4 colour = matrix._m00_m01_m02_m04;fixed4 colour = matrix[0];Shader "Holistic/PackedPractice" {
Properties {
_myColour ("Example Colour", Color) = (1,1,1,1) // 흰색
}
SubShader {
CGPROGRAM
#pragma surface surf Lambert
struct Input {
float2 uvMainText;
};
fixed4 _myColour;
void surf (Input IN, inout SurfaceOutput o) {
o.Albedo.r = _myColour.r;
}
ENDCG
}
FallBack "Diffuse"
}
float2 uv_MainTex; : UV에 텍스쳐 할당 (앞은 uv나 uv2, 뒤는 텍스쳐 이름)float3 viewDir; : 카메라가 어디에 있는지float3 worldPos; : 월드 좌표계에서의 위치float3 worldRefl; : 어떻게 반사할건지Shader "Holistic/PackedPractice" {
Properties {
_myColour ("Example Colour", Color) = (1,1,1,1) // 흰색
}
SubShader {
CGPROGRAM
#pragma surface surf Lambert
struct Input {
float2 uvMainText;
};
fixed4 _myColour;
void surf (Input IN, inout SurfaceOutput o) {
o.Albedo.r = _myColour.r;
}
ENDCG
}
FallBack "Diffuse"
}
Shader "Holistic/AllProps"
{
Properties {
_myColor ("Example Color", Color) = (1,1,1,1)
_myRange ("Example Range", Range(0,5)) = 1
_myTex ("Example Texture", 2D) = "white" {}
_myCube ("Example Cube", CUBE) = "" {}
_myFloat ("Example Float", Float) = 0.5
_myVector ("Example Vector", Vector) = (0.5,1,1,1)
}
SubShader {
CGPROGRAM
#pragma surface surf Lambert
fixed4 _myColor;
half _myRange;
sampler2D _myTex;
samplerCUBE _myCube;
float _myFloat;
float4 _myVector;
struct Input {
float2 uv_myTex;
float3 worldRefl;
};
void surf (Input IN, inout SurfaceOutput o) {
o.Albedo = (tex2D(_myTex, IN.uv_myTex) * _myRange).rgb; // _myTex를 _myRange만큼 곱한 값으로 Albedo를 설정
o.Emission = texCUBE(_myCube, IN.worldRefl).rgb; // 설정한 CUBE map을 반사
}
ENDCG
}
Fallback "Diffuse"
}

모델 : https://sketchfab.com/3d-models/gachagacha-277bc58692734ac8add38db7b839dd8e

모델링을 뜯어 고쳤다.
'진짜로' 작동하는 가챠 기계보단 대충 덜걱거리는 모션만 주고 캡슐은 instantiate하면 심각한 위화감 없을 것.
그것보다 더 문제는 기계가 하나 추가돼서 화면의 밸런스도 안 맞고 살짝 부자연스러워졌다는 것.

빨간 페인트 : https://www.fab.com/listings/3b6dbce7-fbb4-46b3-bee6-1485b9b407b6
평소에는 안 보이다가
필요할 때만 조명 켜고 클로즈업한 뒤 가챠 연출하면 될듯.
트리거는 코인으로, 동전이 살짝 엇갈려서 세로로 쌓여있는데
클릭하면 조명 켜지면서 카메라 이동. 동전 가져와서 넣고 레버 수동으로 드르륵.

볼도 만들어서 추가. 약간 어색하긴 하지만 나중에 폴리싱하면 되는거니까.