블로그 이미지
Every unexpected event is a path to learning for you. blueasa

카테고리

분류 전체보기 (2838)
Unity3D (886)
Programming (479)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (188)
협업 (64)
3DS Max (3)
Game (12)
Utility (140)
Etc (99)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (52)
Android (16)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (19)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday

[링크] https://openupm.com/

 

Open Source Unity Package Registry (UPM)

 

openupm.com

 

반응형
Posted by blueasa
, |

[링크] https://if1live.github.io/posts/make-unity-build-system/

 

유니티 프로젝트 빌드 시스템 구축하기 · /usr/lib/libsora.so

개요 내가 만든 Toy Clash는 Samsung GearVR, Google Daydream, SteamVR, iOS를 지원한다. 이걸로 끝이 아니라 조만간 Windows Store도 추가될 예정이다. 내가 개발해보니까 이정도 갯수의 플랫폼을 지원하기 위해서

if1live.github.io

 

반응형
Posted by blueasa
, |

TMP에서 한글 문장 단위 자동 줄바꿈이 안될 때(영어는 잘 됨)

TMP Settings-Korean Language Options-Use Moern Line Breaking-체크

 

TMP Settings

 

[출처] 게임코디-즌성님

 

[참조]

https://gamecodi.com/6129/%EA%B2%80%EC%83%89%EC%9A%A9-%ED%85%8D%EC%8A%A4%ED%8A%B8-%EB%A9%94%EC%8B%9C-%ED%94%84%EB%A1%9C%EC%97%90%EC%84%9C-%ED%95%9C%EA%B8%80-%EC%82%AC%EC%9A%A9%EC%8B%9C-%EB%8B%A8%EC%96%B4-%EB%8B%A8%EC%9C%84%EB%A1%9C-%EC%A4%84-%EB%B0%94%EA%BF%88-textmeshpro-word-wrapping

 

[검색용] 텍스트 메시 프로에서 한글 사용시 단어 단위로 줄 바꿈 ( TextMeshPro Word Wrapping ) - 게임

텍스트 메시 프로사용시 자동 줄 바꿈 기능을 사용할 때 글자단위로 넘어가지 않고 단어 단위로 끊어져서 넘어가게 해야 할 경우 TMP Setting 파일에서 Korean Language Options에서 Use Modem Line Breaking 을

gamecodi.com

 

반응형
Posted by blueasa
, |

[My Case]

Unity에서 연출 씬을 제작하기 위해서 SLATE Cinematic Sequencer를 썼는데,

제작하고 영상으로 Export 하기 위해서 SLATE Extension 중에 Rendering이 있어서 추가하고나니 제목과 같은 에러가 났다.

아래 링크에서 유추해보니 fccore.bundle이 빌드에 딸려들어가서 iOS Archive에서 에러가 나는 걸로 보인다.

 

fccore.bundle의 설정을 보니 아래와 같이 Any platform으로 설정 돼 있다.

fccore.bundle 기본 상태

 

그래서 fccore.dll 파일의 설정을 보니 아래와 같이 Editor로 돼있고,

Platform settings는 CPU : x86_64, OS : Any OS로 돼있다.

fccore.dll 기본 상태

 

[결론]

렌더링용 Extention이라서 빌드에 포함 될 이유는 없기 때문에 Editor에서만 사용되도록,

fccore.bundle 설정을 Editor / CPU : x86_64 / OS : Any OS 로 변경하니 빌드가 잘 된다.

 

 

 

[링크] https://m.blog.naver.com/eastfever5/222022901324

 

Uniy iOS 빌드 아카이빙 오류 - fccore.bundle

'인생낱말찾기'의 iOS 배포를 준비중에 위와 같은 오류를 만났습니다. 결론적으로 위 문제는 ...

blog.naver.com

[참조] https://forum.unity.com/threads/ios-build-failing-fccore-bundle-has-conflicting-provisioning-settings-xcode-9-2-automatic-signi.520730/

 

IOS Build failing 'fccore.bundle has conflicting provisioning settings.' Xcode 9.2 Automatic Signi

Hi, I am using Unity 2017.3.1 and have recently updated xcode to 9.2. I am trying to automatically sign and I am getting the following errors....

forum.unity.com

 

반응형
Posted by blueasa
, |

[링크1] https://www.sysnet.pe.kr/2/0/1264

[링크2] https://111110.tistory.com/entry/WELL-512-%EB%9E%9C%EB%8D%A4%EC%83%81%EC%88%98-%EC%83%9D%EC%84%B1-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98

[링크3] https://github.com/Mokbii/CSharpSyncRandom/tree/master/SyncRandomTest

 

반응형
Posted by blueasa
, |

꿈의집(HomeScapes)에서 위에 빨간 테두리로 보이는 것처럼 Soft Clip을 만들려고 이런저런 시도를 해보고

약간의 Trick을 포함해서 적용한 걸 간단하게 방법을 적어 놓음.

 

※ 우선은 블록들은 Sprite고, 밑에 Map이 Mesh를 사용하기 때문에 두가지 모두 Clipping 해야된다.

 

1. Unity 자체 Sprite Mask 추가(Menu-2D Object-Sprite Mask)

  [참조] https://docs.unity3d.com/kr/2020.3/Manual/class-SpriteMask.html

 

2. Sprite의 Mask Interaction을 Visible Inside Mask로 변경

3. Mesh Renderer도 Sprite Mask에 영향받도록 Shader에 아래처럼 Stencil 추가

Stencil {
		Ref 1
		Comp LEqual
    }

[참조1] https://devdata.tistory.com/166

[참조2] https://rainyrizzle.github.io/kr/AdvancedManual/AD_SpriteMask.html

------------------------------------------------------------------------------------------------

※ 여기까지 하면 Cutoff 된 상태로 Sprite, Mesh 둘 다 마스킹이 잘 된다.

   아래부터는 Soft Clip을 위해 구매한 에셋으로 시도한 Trick을 간단히 정리했다.

------------------------------------------------------------------------------------------------

4. Soft Clip을 위해 Sprite Alpha Mask 에셋 사용
   (제가 사용하기 위해 구매한 에셋이니 참조만 하시고 어떤 에셋을 사용하는지는 본인의 판단입니다.)

   [참조] https://assetstore.unity.com/packages/tools/particles-effects/sprite-alpha-mask-112704

 

5. Trick을 위해 맵의 배경 Sprite를 하나 복제해서 렌더링 순서를 아래와 같이 한다.

    (아래와 같이 배치하면 Foreground가 Map을 가려서 배경만 보이는 상태로 보인다.)

    [뒤] Background (Sprite)

    [중간] Map(Slot/Block 등) (Sprite+Mesh)

    [앞] Foreground (Sprite)

    

6. Foreground에 4.에서 산 에셋으로 Sprite Alpha Mask를 적용한다.

   (Masking 이미지는 아래 이미지를 사용하고, 9-Patch 한 후에 Sliced로 사용함)

Sprite Alpha Mask-Masking용 이미지

 

7. 6.의 Mask 크기는 1.의 Sprite Mask와 동일하게 맞춘다.

   (요약 : 앞에 배경을 하나 더 깔고 앞의 배경에 Alpha가 먹힌 구멍을 뚫어서 맵만 보이게 하려는 게 목적이다.)

 

8. 7.까지 하고나면 아래 이미지처럼 Sprite Mask의 Cutoff 영역 안쪽으로 Soft Clip처럼 보이게 된다.

   (빨간 테두리가 Sprite Mask 영역이고, 아래쪽 Sprite Mask 영역 안쪽으로 Soft Clip 처럼 적용된게 보인다)

Soft Clip Trick

 

 

 

반응형
Posted by blueasa
, |

'샘플 광고 단위 ID'를 사용해서 테스트 광고 테스트를 했었는데,

오늘 보니 테스트광고가 안나온다.

 

[링크] https://developers.google.com/admob/android/test-ads

 

테스트 광고 사용 설정  |  Android  |  Google Developers

테스트 광고 사용 설정 이 가이드에는 광고 통합에서 테스트 광고를 사용하는 방법이 나와 있습니다. 개발 중에는 테스트 광고를 사용하여 광고를 클릭해도 Google 광고주에게 비용이 청구되지

developers.google.com

 

이래저래 찾아보다 보니 위 링크에 아래와 같은 주의사항이 적혀 있다.

------------------------------------------------------------------------------------

주의: 앱에 app-ads.txt 파일을 설정한 경우 데모 광고 단위를 사용하여 광고를 로드하려면 다음 행을 app-ads.txt 파일에 포함해야 합니다.

google.com, pub-3940256099942544, DIRECT, f08c47fec0942fa0

또는 테스트 기기를 사용 설정하고 자체 광고 단위 ID를 대신 사용할 수 있습니다.

------------------------------------------------------------------------------------

이전에는 '샘플 광고 단위 ID'를 쓰면 그냥 나왔는데 이젠 app-ads.txt로 인증 받던지, '테스트 기기를 등록'해서 사용하라는 것 같다.

 

나는 테스트 기기 등록은 귀찮으니 app-ads.txt 파일에 추가하는걸로..

 

[추가]

app-ads.txt 파일에 추가하고 하루 뒤 테스트 광고가 정상적으로 나오는 것을 확인했다.

(참고로 app-ads.txt 파일 크롤링이 최대 24시간 걸린다고 하기 때문에,

운좋으면 몇십분만에 바로 될수도 있지만 안된다면 만24시간이 지난후에 다시 확인해보자)

반응형
Posted by blueasa
, |

[문제]

Unity 2020.3에서 'UnityEngine.AI.NavMeshAgent'를 사용하는 소스가 있는 에셋을 추가하니 아래와 같은 에러메시지가 뜸.

 

[에러메시지] CS1069: The type name 'NavMeshAgent' could not be found in the namespace 'UnityEngine.AI'.

 

[해결방법] Package Manager-Built-in-AI Enable

[참조] You have to enable the built in package 'AI' in the Package Manager window to fix this error.

 

 

[출처] https://forum.unity.com/threads/cant-find-navmeshagent-data-type.449932/

 

Can't find NavMeshAgent data type

I will make an AI but I can't find the data type. I don't understand what's going on. if you know, how can i fix this? [IMG] As you see, the data...

forum.unity.com

 

반응형
Posted by blueasa
, |

[ErrorMessage] Unexpected character encountered while parsing value: . Path '', line 0, position 0.

 

[Solved] In my case, the file containing JSON string had BOM. Once I removed BOM the problem was solved.

 

[추가] 로드 할 파일 인코딩 타입을 확인해보자.

 

[출처] https://stackoverflow.com/questions/23259173/unexpected-character-encountered-while-parsing-value

 

Unexpected character encountered while parsing value

Currently, I have some issues. I'm using C# with Json.NET. The issue is that I always get: {"Unexpected character encountered while parsing value: e. Path '', line 0, position 0."} So t...

stackoverflow.com

 

반응형
Posted by blueasa
, |

출처 : https://qiita.com/kuuki_yomenaio/items/00d74762e930d037ad27

Spine 오브젝트는?

Spine 개체는 Unity에서 말하는 MeshRenderer로 렌더링되고 있습니다. 
(spine-unity의 SkeletonRenderer.cs가 해당 소스입니다) 
즉, MeshRenderer의 Mask 처리를 만들 수 있다면, Mask를 사용할 수 있게 됩니다. 


(왜 이런 엄한 부분을 가지고 예제를 만든 걸까...)

Mask 처리에 대해

요는 Renderer를 Mask하면 되는 것이지만, 
SpriteRenderer 자체를 Mask하는 처리는 Unity에는 없는 것 같습니다. 
그래서, 간단히 자작하기로 했습니다.

Shader로 실제 제작

간단한 것은 역시 스텐실 테스트를 사용하는 것이군요. 
아주 간단하게 설명하면, 스텐실이란 모양을 도려낸다는 의미로 
픽셀 렌더링을 할 때 이 점을 찍는가 찍지 않는다인지를 판정하는 테스트입니다. 
이것을 이용합니다.

Spine 쪽에 적용하는 shader

SpineShader.shader
Shader "Custom/SpineShader"{
Properties
{
        _MainTex ("Base (RGB)", 2D) = "white" {}
}

SubShader
{
        Tags {"Queue"="Transparent+2" "IgnoreProjector"="True" "RenderType"="Transparent"}
        ZWrite Off
        Blend SrcAlpha OneMinusSrcAlpha

        Stencil {
                                Ref 1
                                Comp Equal
        }

        Pass
        {
                CGPROGRAM
                        #pragma vertex vert
                        #pragma fragment frag

                        #include "UnityCG.cginc"

                        struct appdata_t
                        {
                                float4 vertex : POSITION;
                                float2 texcoord : TEXCOORD0;
                        };

                        struct v2f
                        {
                                float4 vertex : SV_POSITION;
                                half2 texcoord : TEXCOORD0;
                        };

                        sampler2D _MainTex;
                        float4 _MainTex_ST;

                        v2f vert (appdata_t v)
                        {
                                v2f o;
                                o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);
                                o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex);
                                return o;
                        }

                        fixed4 frag (v2f i) : COLOR
                        {
                                fixed4 col = tex2D(_MainTex, i.texcoord);
                                return col;
                        }
                ENDCG
        }
}

}

Mask할 Sprite에 설정하는 Shader

SpineSoriteMask.shader
Shader "Custom/SpineSpriteMask"{
Properties
{
        _MainTex ("Base (RGB)", 2D) = "white" {}
}

SubShader
{
        Tags {"Queue"="Transparent+1" "IgnoreProjector"="True"}
        ZWrite Off
        AlphaTest Greater 0.5
        ColorMask 0
        ZTest Always


        Stencil {
                                Ref 1
                                Comp always
                                Pass replace
                        }


        Pass
        {
                CGPROGRAM
                        #pragma vertex vert
                        #pragma fragment frag

                        #include "UnityCG.cginc"

                        struct appdata_t
                        {
                                float4 vertex : POSITION;
                                float2 texcoord : TEXCOORD0;
                        };

                        struct v2f
                        {
                                float4 vertex : SV_POSITION;
                                half2 texcoord : TEXCOORD0;
                        };

                        sampler2D _MainTex;
                        float4 _MainTex_ST;

                        v2f vert (appdata_t v)
                        {
                                v2f o;
                                o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);
                                o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex);
                                return o;
                        }

                        fixed4 frag (v2f i) : COLOR
                        {
                                fixed4 col = tex2D(_MainTex, i.texcoord);
                                if(col.a<0.1)discard;
                                return col;
                        }
                ENDCG
        }
}

}

해설

SpineShader.shader
   Stencil {
             Ref 1
             Comp Equal
   }
SpineSoriteMask.shader
   ColorMask 0
   Stencil {
             Ref 1
             Comp always
             Pass replace
   }

Stencil

해설에 대해서는 
edo_m18 씨의 [Unity] Unity의 Shader 스텐실 버퍼를 시도
를 참고하십시오.

먼저, SpineSpriteMask 입니다만, 
"참조 값 1의 것과 비교하고, 모두 OK로 해서,
참조 값을 버퍼에 기록하고, ColorMask 0 으로 묘화는 하지 않음" 
이 됩니다.

그리고 SpineShader. 
"참조 값은 1, 값의 일치를 체크" 
가 됩니다.

이 설정을 함으로써 
SpineShader 측의 묘화는  StencilTest 를 받게 되고, 
SpineSpriteMask 측에서 설정한 모양대로 도려내지도록 그려집니다.

Unity에서 사용할 때에는 Material화 시킬 필요가 있습니다만, 
그에 대해서는
github
여기를 참고하십시오.

---

* 스파인측 설정

 

* 마스크이미지측 설정

* 매터리얼 설정은 이렇게(특별히 이미지는 지정하지 않고 쉐이더만 넣음)



출처: https://devdata.tistory.com/166 [CH:Windship DevDATA Center]

 

[Unity] Spine 오브젝트를 Mask하기

출처 : https://qiita.com/kuuki_yomenaio/items/00d74762e930d037ad27 Spine 오브젝트는? Spine 개체는 Unity에서 말하는 MeshRenderer로 렌더링되고 있습니다. (spine-unity의 SkeletonRenderer.cs가 해당 소스..

devdata.tistory.com

[참조] https://rainyrizzle.github.io/kr/AdvancedManual/AD_SpriteMask.html

 

Sprite Mask 적용하기

유니티의 "스프라이트 마스크(Sprite Mask)"를 이용하면 다른 Sprite Renderer의 일부를 숨기면서 렌더링을 할 수 있습니다. - 스프라이트 마스크 (유니티 공식 메뉴얼) AnyPortrait에서 제작된 캐릭터들은 S

rainyrizzle.github.io

 

반응형

'Unity3D > Shader' 카테고리의 다른 글

[링크] Unity Toon Shader(with Outline)  (0) 2023.02.22
[링크] Unity-Chan Toon Shader 2.0 (UTS2)  (0) 2021.11.30
[펌] Celery - Toon/Cel shader  (0) 2021.03.30
[펌] Toon Shader  (0) 2021.03.30
[링크] Unity Cel Shading - 카툰렌더링  (0) 2021.03.30
Posted by blueasa
, |