Get it on Google Play


Wm뮤 :: '분류 전체보기' 카테고리의 글 목록 (16 Page)

블로그 이미지
가끔 그림그리거나 3D모델링하거나
취미로 로봇만드는
전자과 게임프로그래머 (퇴사함)
2022.3.22f1 주로 사용
모카쨩
@Ahzkwid

Recent Comment

Archive


2024. 5. 14. 13:04 3D/블렌더

 

 

 

 

 

 

 

 

 

 

바지웨이트를 몸통에서 가져올것이다

 

 

 

 

 

 

포즈를 정자세로 정렬한다

 

 

 

옷을 누르고 바디를 누른다

 

 

 

 

Transfer Mesh Data

 

 

 

 

 

 

이렇게 설정하면 된다

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'3D > 블렌더' 카테고리의 다른 글

블렌더 Basis 교체  (0) 2024.05.15
ヘッドホンパーカーセット 작업일지  (0) 2024.05.12
블렌더 텍스처 베이크  (0) 2024.05.11
posted by 모카쨩
2024. 5. 12. 12:01 Unity/C#

 

 

 

 

 

 

 

 

 

 

 

유니티 2022.3.22.f1 이후의 경우

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


유니티 2022.3.22.f1 이전의 경우는 아래 스크립트 적용 

 

 

 

SettingLightResolution.unitypackage
0.00MB

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

[ExecuteAlways]
public class SettingLightResolution : MonoBehaviour
{
    public Light light;
    public int resolution = 256;
    // Start is called before the first frame update
    void Start()
    {
    }

    // Update is called once per frame
    void Update()
    {
        if (light==null)
        {
            return;
        }
        light.shadowCustomResolution = resolution;
#if UNITY_EDITOR
        UnityEditor.EditorUtility.SetDirty(light);
#endif
    }
}



어쩌다보니 만들게 됨

 

 

 

 

 

 

 

 

'Unity > C#' 카테고리의 다른 글

OnSceneGUI 관련코드  (0) 2024.07.11
유니티 프리팹 드래그 드랍  (0) 2024.05.09
AutomaticShadowDistance  (0) 2024.04.18
posted by 모카쨩
2024. 5. 12. 07:07 3D/블렌더

 

 

https://twitter.com/ahzkwid/status/1757731882794709367

 

X의 ahzkwid✪님(@ahzkwid)

쉬폰 세번째 옷 시작

twitter.com

 

 

 

https://x.com/ahzkwid/status/1791811868811772059

 

X의 ahzkwid✪님(@ahzkwid)

후드집업 마누카 대응작업 시작

twitter.com

 

 

 

https://x.com/ahzkwid/status/1794619964026229057

 

X의 ahzkwid✪님(@ahzkwid)

카린 후드집업 대응작업 시작

twitter.com

 

 

 

 

 

https://x.com/ahzkwid/status/1796218990131552355

 

X의 ahzkwid✪님(@ahzkwid)

마후유 대응시작

twitter.com

 

 

 

 

https://x.com/ahzkwid/status/1798396290121998350

 

X의 ahzkwid✪님(@ahzkwid)

시안 대응작업 시작 바디는 동일하다 했으니 프리팹 작업만 하면 될듯

x.com

 

 

 

 

 

 

 

이거는 약 한달가량 소요됨

9/13 ~ 10/8

https://x.com/ahzkwid/status/1843475529279885811

 

X의 ahzkwid님(@ahzkwid)

이번에 후드집업 업데이트된것들

x.com

 

 

 

 

 

그리고 10월 3일에 신규 아바타툴 대응작업 3주한것 투고함

'3D > 블렌더' 카테고리의 다른 글

블렌더 웨이트 복사  (0) 2024.05.14
블렌더 텍스처 베이크  (0) 2024.05.11
블렌더 Subdivide Smooth 깨끗하게 먹이기  (0) 2024.04.26
posted by 모카쨩
2024. 5. 11. 19:46 3D/블렌더

 

 

나중에 UV 잘못편거 발견해서 뒤늦게 부랴부랴 수정하면 텍스처가 개박살나서 다시 구워야 할때가 있을것이다

 

 

 

먼저 기존 옷의 마테리얼은 이렇게 텍스처가 입혀져 있어야 한다

 

이렇게 설정하면 됨

 

근데 가끔 왠지 오류로 저렇게 해도 텍스처 안 입혀질때가 있는데 걍 마테리얼 하나 만들어서 하면 고쳐짐

 

 

 

 

그다음 쉬프트 누르고 UV가 고쳐진걸 누른다

몰론 고쳐진 대상의 UV의 텍스처는 비어있는 텍스처에 할당되어야함

 

 

 

 

이런식으로 ㅇㅇ

얘는 마테리얼 암거나 선택하면 된다

 

 

그다음 이런식으로 베이크 하면 된다

Margin은 당연히 높을수록 좋지만 블렌더가 UV처리는 못해서 중첩되기도 하니까 알아서 잘 설정하자

 

 

 

 

 

 

 

 

posted by 모카쨩
2024. 5. 9. 11:32 Unity/C#

 

 

 

 

원문링크 : 

https://forum.unity.com/threads/solved-how-to-start-draganddrop-action-so-that-sceneview-and-hierarchy-accept-it-like-with-prefabs.822531/

 

[Solved] How to start DragAndDrop action so that SceneView and Hierarchy accept it like with prefabs

Edit: Solution below. I'm building a level design tool which shows a list of prefabs in a custom editor window and lets users drag and drop these...

forum.unity.com

 

 

이 코드는 내가 만든게 아니고 위 링크에서 가져와 간소화 한것일뿐이다

 void OnEnable()
{
    SceneView.duringSceneGui += OnSceneGUI;
    EditorApplication.hierarchyWindowItemOnGUI += OnHierarchyGUI;
}

 void OnDisable()
{
    SceneView.duringSceneGui -= OnSceneGUI;
    EditorApplication.hierarchyWindowItemOnGUI -= OnHierarchyGUI;
}
 void OnSceneGUI(SceneView obj)
{
    HandleDragAndDropEvents();
}

 void OnHierarchyGUI(int instanceID, Rect selectionRect)
{
    HandleDragAndDropEvents();
}
 void HandleDragAndDropEvents()
{
    if (Event.current.type == EventType.DragUpdated)
    {
        OnDragUpdated();
    }
    if (Event.current.type == EventType.DragPerform)
    {
        OnDragPerform();
    }
}
void OnDragUpdated()
{
    Debug.Log("OnDragUpdated()");
}
void OnDragPerform()
{
    Debug.Log("OnDragPerform()");
}

 

 

 

아바타 툴 만들때 사용되었다

 

 

 

 

 

'Unity > C#' 카테고리의 다른 글

유니티 라이트 레졸루션 개별설정  (0) 2024.05.12
AutomaticShadowDistance  (0) 2024.04.18
c# Dictionary(딕셔너리) 관련  (0) 2024.03.19
posted by 모카쨩
2024. 4. 26. 06:54 3D/블렌더

원통형 에지 섭디비전 먹이려 할때 Subdivide Smooth하면 아래처럼 지글지글하게 된다

 

 

이럴때

 

 

 

Subdivide Edge-Ring을 먹이면 깨끗하게 된다

'3D > 블렌더' 카테고리의 다른 글

블렌더 텍스처 베이크  (0) 2024.05.11
블렌더 텍스처링 관련  (0) 2024.04.06
블렌더 백그라운드 이미지  (0) 2024.03.29
posted by 모카쨩
2024. 4. 21. 19:46

 

 

 

 

 

Selenium.WebDriver입력후 설치

 

 

 

using OpenQA.Selenium.Chrome;
using OpenQA.Selenium;

public static class Crawling
{
    public static void Run()
    {
        driver = new ChromeDriver();

        driver.Url = "https://www.google.com";
        driver.FindElement(By.Name("q")).SendKeys("webdriver" + System.Windows.Forms.Keys.Return);
        Console.WriteLine(driver.Title);

        driver.Quit();
    }
}

 

그리고 코드 만들어서 실행하면 된다

이 코드는 아래 공식사이트의 기본 예제이다

https://www.nuget.org/packages/Selenium.WebDriver

 

Selenium.WebDriver 4.19.0

Selenium is a set of different software tools each with a different approach to supporting browser automation. These tools are highly flexible, allowing many options for locating and manipulating elements within a browser, and one of its key features is th

www.nuget.org

 

 

 

그리고 쪼~끔 비직관적인 예제길래 내가 이런 예제로 만들었다

namespace Crawler
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        Crawling crawling = new Crawling();
        private void button1_Click(object sender, EventArgs e)
        {
            crawling.Run();
        }
    }
}
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium;

namespace Crawler
{
    public class Crawling
    {
        ChromeDriver driver;
        public void Run()
        {
            driver = new ChromeDriver();

            driver.Url = "https://www.google.com";
            driver.Quit();
        }
    }
}

 

 

 

'' 카테고리의 다른 글

트위터 RT 추첨  (0) 2024.07.05
자주 쓰는 크롤링 관련 코드  (0) 2023.10.16
코레일 크롤링  (0) 2023.10.16
posted by 모카쨩
2024. 4. 18. 15:40 Unity/C#

 

 

 

https://ahzkwid.booth.pm/items/5632873

 

Automatic Shadow Distance - Wmup - BOOTH

ワールド用です DirectionalLightの影の長さをFPSに応じて自動的に変更するツールです。 動きがきれいじゃないので、キャラクターシャドウ専用に使用するのをお勧めします - Code - https://gist.githu

ahzkwid.booth.pm

여기서 다운 가능

 

 

 

 

 

using UdonSharp;
using UnityEngine;
using UnityEngine.UI;
using VRC.SDKBase;
using VRC.Udon;

[UdonBehaviourSyncMode(BehaviourSyncMode.None)]
public class AutomaticShadowDistance : UdonSharpBehaviour
{
    public Light directionalLight;
    public float frameCheckTimeCycle = 3f;
    int playerLayerIndex = 9;
    public Vector2 targetFps = new Vector2(30, 60);
    public Vector2 defaultShadowDistance = new Vector2(10, 80);
    public Vector2 playerShadowDistance = new Vector2(1,15);

    float tPre = 2;

    void UpdateShadowDistance(float t)
    {
        var defaultShadowDistanceMin = defaultShadowDistance.x;
        var defaultShadowDistanceMax = defaultShadowDistance.y;
        var playerShadowDistanceMin = playerShadowDistance.x;
        var playerShadowDistanceMax = playerShadowDistance.y;


        var targetDistanceDefault = Mathf.Lerp(defaultShadowDistanceMin, defaultShadowDistanceMax, t);
        var targetDistancePlayer = Mathf.Lerp(playerShadowDistanceMin, playerShadowDistanceMax, t);
        
        {
            //QualitySettings.shadowDistance = targetDistanceDefault;
        }
        {
            var ShadowCullDistances = new float[32];
            //ShadowCullDistances[0] = Mathf.Lerp(ShadowCullDistances[0], targetDistanceDefault, 0.1f);
            ShadowCullDistances[0] = targetDistanceDefault;
            ShadowCullDistances[11] = ShadowCullDistances[0];
            ShadowCullDistances[13] = ShadowCullDistances[0];
            ShadowCullDistances[14] = ShadowCullDistances[0];
            ShadowCullDistances[playerLayerIndex] = targetDistancePlayer;
            ShadowCullDistances[10] = ShadowCullDistances[playerLayerIndex];
            ShadowCullDistances[18] = ShadowCullDistances[playerLayerIndex];
            directionalLight.layerShadowCullDistances = ShadowCullDistances;

            //Camera.main.layerCullDistances = ShadowCullDistances;
        }
    }

    LightShadows shadowType = LightShadows.Soft;
    void Start()
    {
        //if (directionalLight==null)
        //{
        //    /*
        //    var lights = FindObjectsOfType<Light>();
        //    foreach (var light in lights)
        //    {
        //        if (light.type==LightType.Directional)
        //        {
        //            directionalLight = light;
        //        }
        //    }
        //    */
        //    /*
        //    var light= FindObjectOfType<Light>();
        //    if (light.type == LightType.Directional)
        //    {
        //        directionalLight = light;
        //    }
        //    */
        //}
        if (directionalLight.shadows != LightShadows.None)
        {
            shadowType = directionalLight.shadows;
        }

        UpdateShadowDistance(0);

        lastCheckTime = 0;
    }
    float lastCheckTime = 0;
    int frameCount = 0;

    public Toggle toggle;
    public Slider slider;
    public GameObject lockPanel;

    public bool alwaysUseShdow = true;
    bool CheckT(float t)
    {
        return ((Mathf.Abs(t - tPre) > 0.1f)
            || ((t == 0) && (tPre < 0.1f))
            || ((t == 1) && (tPre > 0.9f)));
    }
    void Update()
    {
        var useShadowOff = !alwaysUseShdow;

        var toggleManual = toggle;
        lockPanel.SetActive(toggleManual.isOn == false);



        var useShadowOffvalue = 0.1f;
        if (toggleManual.isOn)
        {
            if (slider.value > useShadowOffvalue)
            {
                var t = (slider.value - useShadowOffvalue) * (1f / (1f- useShadowOffvalue));
                if (CheckT(t))
                {
                    UpdateShadowDistance(t);
                    tPre = t;
                }
                if (useShadowOff)
                {
                    if (directionalLight.shadows == LightShadows.None)
                    {
                        directionalLight.shadows = shadowType;
                    }
                }
            }
            else
            {
                if (useShadowOff)
                {
                    if (directionalLight.shadows != LightShadows.None)
                    {
                        directionalLight.shadows = LightShadows.None;
                    }
                }
            }
        }
        else
        {


            frameCount++;

            if (Time.time - lastCheckTime >= frameCheckTimeCycle)
            {
                var fps = 0f;
                if (Time.deltaTime > 0)
                {
                    fps = 1f / Time.deltaTime;
                }
                if (frameCheckTimeCycle > 0.1f)
                {
                    fps = frameCount / frameCheckTimeCycle;
                }


                var min = targetFps.x;
                var max = targetFps.y;
                var t = (Mathf.Clamp(fps, min, max) - min) / (max - min);

                /*
                if ((Mathf.Abs(t - tPre) > 0.1f)
                    || ((t == 0) && (tPre < 0.1f))
                    || ((t == 1) && (tPre > 0.9f)))
                */
                if (CheckT(t))
                {

                    UpdateShadowDistance(t);
                    tPre = t;

                }


                if (Time.time > 10)
                {
                    if (useShadowOff)
                    {
                        if (directionalLight.shadows == LightShadows.None)
                        {
                            if (t > 0.8f)
                            {
                                directionalLight.shadows = shadowType;
                            }
                        }
                        else
                        {
                            if (fps < min / 2)
                            {
                                directionalLight.shadows = LightShadows.None;
                            }
                        }
                    }
                }
                if (directionalLight.shadows == LightShadows.None)
                {
                    slider.value = 0f;
                }
                else
                {
                    slider.value = useShadowOffvalue + t * (1f- useShadowOffvalue);
                }


                frameCount = 0;
                lastCheckTime = Time.time;
            }
        }
    }
}

'Unity > C#' 카테고리의 다른 글

유니티 프리팹 드래그 드랍  (0) 2024.05.09
c# Dictionary(딕셔너리) 관련  (0) 2024.03.19
자주 쓰는 DateTime 코드 모음  (0) 2023.12.19
posted by 모카쨩

저사양 유저용 블로그 진입