퇴사한 프로그래머분이 만들어 놓은 연출툴이 있는데, 사용 편의가 없어서 추가하는 작업을 진행하였습니다.
Inspector에 내용을 UI로 뿌리는 작업인데, 워낙 코딩엔 초보라 시간이 오래 걸렸습니다.
어찌되었던 완성은 시켰습니다. (AI없이는 못할거 같네요.ㅎ)
 

더보기
public class NumberDropdown : MonoBehaviour
{
    public TMP_Dropdown dropdown;
    public ManagerScene managerScene;
    public SceneTest sceneTest;
    public TMP_Dropdown dropdownA; //players 1 - 1

    private void Start()
    {
        PopulateDropdown();
        PopulateDropdownA();
        

        // Load the saved player index from PlayerPrefs
        if (PlayerPrefs.HasKey("SelectedPlayer"))
        {
            int selectedPlayerIndex = PlayerPrefs.GetInt("SelectedPlayer");
            dropdownA.value = selectedPlayerIndex;
        }

        if (PlayerPrefs.HasKey("SelectedScene"))
        {
            int selectedIndex = PlayerPrefs.GetInt("SelectedScene");
            dropdown.value = selectedIndex;
        }
        

    }

    public void PopulateDropdown()
    {
        dropdown.ClearOptions();

        List<string> options = new List<string>();

        foreach (ManagerScene.SceneInfo sceneInfo in managerScene.SceneInfos)
        {
            options.Add(sceneInfo.id.ToString());
        }

        dropdown.AddOptions(options);
    }

    public void PopulateDropdownA()
    {
        dropdownA.ClearOptions();

        List<string> options = new List<string>();

        int childCount = sceneTest.playersRoot.childCount;
        for (int i = 0; i < childCount; i++)
        {
            Transform playerTransform = sceneTest.playersRoot.GetChild(i);
            options.Add(playerTransform.gameObject.name);
        }

        dropdownA.AddOptions(options);
    }

    public void OnPlayButtonClick()
    {
        int selectedIndex = dropdown.value;
        int sceneID = managerScene.SceneInfos[selectedIndex].id;

        int selectedPlayerIndex = dropdownA.value;
        sceneTest.Group[0] = selectedPlayerIndex + 1;

        // Save the selected player index and scene ID in PlayerPrefs
        PlayerPrefs.SetInt("SelectedPlayer", selectedPlayerIndex);
        PlayerPrefs.SetInt("SelectedScene", selectedIndex);
        PlayerPrefs.Save();


        sceneTest.Group[0] = selectedPlayerIndex + 1;

        sceneTest.Play(sceneID);
    }

계속 모델링의 헤어가 지저분하게 만들어지는 현상에 대해서 개선이 필요하다고 하여, 소스를 좀 흩어봤는데

머리카락의 알파가 그라데이션으로 처리되어 있더군요.

그라데이션으로 처리하면, 알파블렌딩을 하든, 알파 테스트를 하든, 결과는 좋지 않습니다.

헤어자체를 한 땀 한 땀 잘 그려 넣어야 깔끔하게 나옵니다.

단순하지만... 노가다가 답인 경우가 있습니다.

'업무일지' 카테고리의 다른 글

업무일지 <StreamingAssets>  (0) 2023.04.26
업무일지 <연출 툴 개선>  (0) 2023.04.21
업무일지 <Toon화 시키는 post-process>  (0) 2023.04.13
업무일지 <Custom post-process>  (0) 2023.04.12
업무일지 <Fresnel>  (0) 2023.04.05

HDRP에서 Custom post-process를 만들고 있습니다.

코드가 셰이더 코드처럼 보이지만, 보던 형태가 아니라 어려움이 있었습니다.

코드도 오랜만이라 어려움이 있어서, AI 도움을 받았습니다.(AI 만쉐~)

원하는 결과를 얻었습니다.

추가된 코드

더보기
    float _Threshold;
    //float _Intensity;
    TEXTURE2D_X(_MainTex);

    float4 CustomPostProcess(Varyings input) : SV_Target
    {
        UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input);

    // Note that if HDUtils.DrawFullScreen is used to render the post process, use ClampAndScaleUVForBilinearPostProcessTexture(input.texcoord.xy) to get the correct UVs

    float3 sourceColor = SAMPLE_TEXTURE2D_X(_MainTex, s_linear_clamp_sampler, input.texcoord).xyz;

    // Calculate grayscale value using Rec. 709 formula
    float luminance = dot(sourceColor, float3(0.2126, 0.7152, 0.0722));

    // Determine whether color is bright or dark
    float isBright = step(luminance, 0.07);

    // Convert to black or white
    float3 color = lerp(float3(1, 1, 1), float3(0, 0, 0), isBright);

    float3 oc = color* float3(1.0, 0.0, 0.0);

    return float4(oc, 1);


    }

'업무일지' 카테고리의 다른 글

업무일지 <연출 툴 개선>  (0) 2023.04.21
업무일지 <헤어를 깔끔하게 만드는 방법>  (0) 2023.04.19
업무일지 <Custom post-process>  (0) 2023.04.12
업무일지 <Fresnel>  (0) 2023.04.05
업무일지  (0) 2023.03.30

'AI' 카테고리의 다른 글

Leonardo.Ai  (0) 2023.05.19
로고 만들기 (stable-diffusion-webui)  (0) 2023.04.28
여자모델 (stable-diffusion-webui)  (0) 2023.04.05
AutoHotkey와 ChatGPT  (0) 2023.03.14
여자모델 (stable-diffusion-webui)  (0) 2023.02.22

HDRP의 Custom post-process을 사용할수 있어서 내용을 찾아보고 있습니다.

현재 제가 사용하고 있는 유니티 버전은 HDRP를 셰이더그래프로 만들수 있는 구조가 아니고, 코드로 만들어야하는 구조입니다.

셰이더 그래프에 이제 익숙해졌는데, 코드를 다시 봐야할거 같으니 머리가 지끈 거립니다.

우선, 두개의 파일을 만들어야합니다. 그리고 아랫처럼 Project Settings에도 추가해줘야합니다.

이렇게 되면 기본 셋팅이 됩니다.

TestSimple Shader를 이제 이용하면 셰이더 제작하듯이 하면 되는거 같습니다.

 

'업무일지' 카테고리의 다른 글

업무일지 <헤어를 깔끔하게 만드는 방법>  (0) 2023.04.19
업무일지 <Toon화 시키는 post-process>  (0) 2023.04.13
업무일지 <Fresnel>  (0) 2023.04.05
업무일지  (0) 2023.03.30
업무일지<Depth Write>  (0) 2023.03.27

ChatGPT에서 키워드를 뽑으니, 결과가 꽤 좋습니다.

'AI' 카테고리의 다른 글

로고 만들기 (stable-diffusion-webui)  (0) 2023.04.28
여자 히어로 (stable-diffusion-webui)  (0) 2023.04.13
AutoHotkey와 ChatGPT  (0) 2023.03.14
여자모델 (stable-diffusion-webui)  (0) 2023.02.22
Image To Image (stable-diffusion-webui)  (0) 2023.02.09

AD님 요구로 연출때 써먹을 효과를 구성하고 있습니다.

Fresnel을 이용하여, 반반컬러을 만들어낼 방법을 찾았는데, 잘 안되더군요.

어제부터 삽질을 좀 한거 같은데, 방법을 찾은거 같습니다.

헌데, Error가 났습니다.

pow에서 음수가 발생해서 문제가 생기나 봅니다. 음수를 없애기 위해서는 Abs() 함수를 사용하여 절대값으로 변경하는게 좋다고 합니다. 사용하니, 에러가 사라졌습니다.

'업무일지' 카테고리의 다른 글

업무일지 <Toon화 시키는 post-process>  (0) 2023.04.13
업무일지 <Custom post-process>  (0) 2023.04.12
업무일지  (0) 2023.03.30
업무일지<Depth Write>  (0) 2023.03.27
업무일지<게임 맛보기>  (0) 2023.03.21

캐릭터 셰이더설정 작업

 

아웃포커싱 작업 중이었는데, 이상하게 아래와 같이 반짝이는 물체가 생겼습니다.

알고 보니 나뭇잎의 Smoothess값이 만땅이 되어있었네요.

(포스트프로세싱 테스트해보지 않으면 런칭되었어도 몰랐을 거 같군요.)

 

대마왕님 서적이 드디어 도착했군요.

찬찬히 흝어봐야겠지만, 대충 봤을 때는 다행히도 대부분 제가 알고 있는 내용들인 거 같습니다.

대마왕님 첫 서적이랑 유사하네요.(당시에 이해가 안되서 한 4,5번은 본 거 같습니다.)

'업무일지' 카테고리의 다른 글

업무일지 <Custom post-process>  (0) 2023.04.12
업무일지 <Fresnel>  (0) 2023.04.05
업무일지<Depth Write>  (0) 2023.03.27
업무일지<게임 맛보기>  (0) 2023.03.21
업무일지 <젠킨스 재구성>  (0) 2023.03.16

포스트 프로세싱을 적용 중인데, 알파 관련 이슈가 발생하였습니다.

구멍이 뚤린 부분이 아웃포커싱이 안 먹는 거...

A를 보면 알겠지만, 구멍 뚫린 부분이 아웃포커싱이 안 먹은 걸 알 수 있다.

제가 원하는 결과는 B입니다. B는 Depth Write를 끈 것입니다.

문제는 Depth Write 끄면 아래처럼 안쪽에 구가 다 보인다는 거...

원하는 결과는 C에서 더 알파가 자연스럽게 빠져야 하는 겁니다.

 

 

골치가 아프군요.

'업무일지' 카테고리의 다른 글

업무일지 <Fresnel>  (0) 2023.04.05
업무일지  (0) 2023.03.30
업무일지<게임 맛보기>  (0) 2023.03.21
업무일지 <젠킨스 재구성>  (0) 2023.03.16
업무일지 <GC효과>  (0) 2023.03.10

완전 공개 테스트가 아니다보니...  맛보기 영상...

더보기

 

 

 

'업무일지' 카테고리의 다른 글

업무일지  (0) 2023.03.30
업무일지<Depth Write>  (0) 2023.03.27
업무일지 <젠킨스 재구성>  (0) 2023.03.16
업무일지 <GC효과>  (0) 2023.03.10
업무일지<GC(garbage collector)>  (2) 2023.03.09