스킨위자드에서 저 버튼을 누르거나
블로그주소/?mode=TabloidSetting
로 들어간다
'공학기술' 카테고리의 다른 글
배너링크 모음 (0) | 2021.03.01 |
---|---|
크롤링 (0) | 2021.02.25 |
An error occurred while creating the media file vegas (0) | 2021.02.20 |
스킨위자드에서 저 버튼을 누르거나
블로그주소/?mode=TabloidSetting
로 들어간다
배너링크 모음 (0) | 2021.03.01 |
---|---|
크롤링 (0) | 2021.02.25 |
An error occurred while creating the media file vegas (0) | 2021.02.20 |
셀레니움 크롤링써라
js같은거로 된거 링크 뜯어올때
F12 눌러서 개발자모드 펼치고 아래 순서대로 진행
티스토리 메인화면 편집 (0) | 2021.02.27 |
---|---|
An error occurred while creating the media file vegas (0) | 2021.02.20 |
전기차에 변속기가 없는 이유 (0) | 2020.12.15 |
iframe 예제
<iframe src="사이트" width="500" height="500"></iframe>
하이퍼링크 이미지
<a href="링크" target="_blank" title="설명"><img src="이미지링크"></a>
항공사진 API (0) | 2023.04.06 |
---|---|
항공사진 다운로드 (0) | 2023.04.05 |
배틀태그 시스템 관련자료 (0) | 2021.11.29 |
vrm.dev/en/how_to_make_vrm/
설명은 이걸 읽어보면서 한다
github.com/vrm-c/UniVRM
여기서 읽어보면
여기서 다운받을수 있다고 한다
github.com/vrm-c/UniVRM/releases
저걸 잘 찾아서 누른다. 아래에 잘보면 있다
유니티에 살살 말아준다
유니티 버전은 해당 홈페이지에 써있으니 참고하자
먼저 매터리얼 설정을 해주어야 한다
먼저 전부 Standard, Unlit, MToon셋중 하나로 바꿔야 쓸수있다
그럼 이렇게 이상하게 밝아진다
에미션을 꺼준다
언릿느낌내고싶으면 Shade Color도 끈다
정상화된모습
캐릭터 프리팹을 만들어서 누르고 해당메뉴를 선택한다
다 입력하고 익스포트한다. 옵션은 하단 참조
a person who can perform with this avatar =공연가능(스트리머 사용같은거인듯)
Violent acts using this avatar =폭력행위
sexuality acts using this avatar = 성적사용
for commercial use =상업적사용
맞게 입력해준다
라이센스 유형은
Redistribution Prohibited =재배포 금지
저장했으면 올려라 (필수는 아님)
결과물은 이런느낌이다 (픽시브에 로그인 해야만 3D로 보인다)
hub.vroid.com/en/characters/2187411622167215549
-추가
저장할때 에셋폴더에 저장하면 이렇게 BlendShapes 폴더와 파일이 생기는데
BlendShape를 눌러주자
Select BlendShapeClip를 보면서 맞춰준다
쉐이프키규약은 다음과 같다
vrm.dev/docs/univrm/blendshape/univrm_blendshape/
MMD쉐이프키 대응은 다음과 같다.
VRM | A | I | U | E | O | Blink | Joy | Angry |
MMD(EN) | Ah | There | Cormorant | Huh | Your | Blink | Where | anger |
MMD(JP) | あ | い | う | え | お | まばたき | にこ | 怒り |
VRM | Sorrow | Fun | LookUp | LookDown | LookLeft | LookRight | Blink_L | Blink_R |
MMD(EN) | Tears | Wa | - | - | - | - | Wink | Wink right |
MMD(JP) | なみだ | ワ | - | - | - | - | ウインク | ウインク右 |
요새 일본어 쉐이프키도 많이 쓰길래 일본어도 올림
ワ(Wa)가 없으면 あ(Ah)로 해도 된다
전부 끝나면 VRM 프리팹을 눌러서
눈위치를 설정해준다
씬뷰에서 보면서 맞춰주자
VRM프리팹을 선택후 다시 익스포트 한다
끝
태그 : VRM 파일 변환
유니티 카드보드 VR 사용법 (0) | 2021.02.28 |
---|---|
에셋스토어 업로드 2021 (0) | 2021.02.22 |
캐릭터 포즈 망가졌을때 (0) | 2021.02.06 |
byte _buffer = 252;
int hexUpper = _buffer/16;
int hexLower = _buffer%16;
char hexUpperChar = hexUpper>=10? 'A' + hexUpper-10 : '0' + hexUpper;
char hexLowerChar = hexLower>=10? 'A' + hexLower-10 : '0' + hexLower;
String hexString = String(hexUpperChar)+String( hexLowerChar);
Serial.println(hexString);
if(_buffer<16)
{
Serial.print("0");
}
Serial.println(_buffer,HEX);
16진수
자주쓰는 아두이노 코드 모음 (0) | 2021.06.21 |
---|---|
아두이노 RC522 (RFID 13.56MHz) (0) | 2020.11.12 |
블루투스 테스트용 앱들 (0) | 2020.08.01 |
사용법
시작을 누르면 끝이다
기타사항
CP사용 주의점
-한 화면내에 3개이상이 존재하면 안됨, 2개도 가능한 비추천
-화면 가장자리에 존재하면 안됨
-너무 멀리있는 지점은 선택하지 않는게 좋음. 단, 메쉬생성 용도가 아니라 현재위치 추적용이면 사용해도 됨
-트래킹 하지못한 사진을 연결시키는 용도로 써야할뿐 그 이상을 노리면 안됨
-필요없는 컴포넌트는 지워라
-요금폭탄맞기 싫으면 동일한 사진, 흐리멍텅한 사진은 쓰지말자
-박스가 지멋대로 설정되어서 원하는 부분이 지워질때
누르고 왼쪽의 텍스처를 클릭
-필요한 부분만 남기기
-모델각도가 이상하게 설정되었을때
2021기준
2024기준
-버텍스가 너무 많을때
오류모음
언랩을 수동으로 해줘야한다
그럼 이렇게 나오는데
텍스처 갯수를 늘려주거나
빨간색을 눌러서 고정텍셀로 바꿔준다
파란색은 필수는 아니고 개인설정인데
나는 1미리단위로 보존되도록 했다
뷰 리셋시
구제목 : 리얼리티 캡쳐 사용법 (RealityCapture)
RealityCapture 1장 - 정렬 Alighment (0) | 2025.01.03 |
---|---|
Reality Capture 카메라 데이터 (0) | 2024.12.30 |
360 카메라 3d 스캔 테스트 (0) | 2024.11.20 |
이건 구버전이다
위 링크의 2023판 참조
가이드라인
unity3d.com/asset-store/sell-assets/submission-guidelines
설명서
unity3d.com/asset-store/sell-assets
눌러
그러면 여기로 이동됨
publisher.assetstore.unity3d.com/sales.html
publisher.assetstore.unity3d.com/create.html
만든다
publisher.assetstore.unity3d.com/packages.html
그러면 여기로 가서
세이브를 하면 초안이 완성된다
필수는 아니지만 가능하면 이름까지 만들어주자
나가보면 생긴거 확인 가능
assetstore.unity.com/packages/tools/utilities/asset-store-tools-115
Asset Store Tools 추가
그러면 이렇게 에셋이 생긴다
난 나이트비전 쉐이더를 올릴것
눌러
Tick the box if your content uses "Package Manager" dependencies
이건 체크 안해도 된다
아마 간접적으로 연결된 에셋들도 엮는거 같은데 그러면 불필요한것까지 같이 올라갈수도있을듯
1차완료
다시 메타데이터를 짤때다
Icon Image랑 Card Image는 둘다 아이콘이미지인데 사이즈의 차이
Cover Image는 찍고 들어가면 왼쪽에 뜨는 이미지
셋다 필수고
Social Media Image는 필수는 아닌거 같은데 그래도 넣어주자
다 똑같은 이미지로 해도 된다
스크린샷들을 올리는곳, 많을수록 좋다
커버이미지에 넣었던건 넣지말자
다끝난줄 알았니? 아니다. 호환목록을 작성해주어야 한다
1. 솔직히 쉐이더인데 리눅스는 기대도 안하고, 나머지는 문제없다
2. 2017까지는 확인했는데 이전버전은 몰라서 패스, 어차피 너무 옛날버전이라서
3. 기존 렌더파이프랑 호환되는지, 스탠다드는 유니티 스탠다드를 말하고,
LW는 모바일, HD는 멀티패스같은 고퀄용, Custom RP는 말그대로 커스텀된거
나는 오버레이 방식이 일반 마테리얼이라서 전부 호환된다
4. 다른 패키지를 받아야만 쓸수있는건지, 나는 그없이니 No했다
다했으면 올리삼
무슨 팝업뜨면 그냥 OK하면 된다
VRM 파일 만들기 (0) | 2021.02.25 |
---|---|
캐릭터 포즈 망가졌을때 (0) | 2021.02.06 |
유니티 애니메이터 관련 (0) | 2021.02.05 |
using UnityEngine;
using UnityEditor;
public class AhzkwidToonInspector : ShaderGUI
{
public enum _RM
{
Opaque, Cutout, Transparent
}
public enum _BM
{
None, ext, Body, Hair, Cloth
}
public enum _CM
{
Back, None, Front
}
public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] properties)
{
MaterialProperty _RenderMode
, _BlendMode
, _MainTex
, _ColorTex
, _Color
, _EmissionTex
, _EmissionColor
, _Hue
, _Sat
, _Val
, _Contrast
, _outline_width
, _OutlineTex
, _OutlineMask
, _OutlineColor
, _Metallic
, _ColorRamp
, _CullingMode
, _OutlineSat;
_RenderMode = FindProperty("_RenderMode", properties);
_BlendMode = FindProperty("_BlendMode", properties);
_MainTex = FindProperty("_MainTex", properties);
_ColorTex = FindProperty("_ColorTex", properties);
_Color = FindProperty("_Color", properties);
_EmissionTex = FindProperty("_EmissionTex", properties);
_EmissionColor = FindProperty("_EmissionColor", properties);
_Hue = FindProperty("_Hue", properties);
_Sat = FindProperty("_Sat", properties);
_Val = FindProperty("_Val", properties);
_Contrast = FindProperty("_Contrast", properties);
_outline_width = FindProperty("_outline_width", properties);
_OutlineTex = FindProperty("_OutlineTex", properties);
_OutlineMask = FindProperty("_OutlineMask", properties);
_OutlineColor = FindProperty("_OutlineColor", properties);
_Metallic = FindProperty("_Metallic", properties);
_ColorRamp = FindProperty("_ColorRamp", properties);
_CullingMode = FindProperty("_CullingMode", properties);
_OutlineSat = FindProperty("_OutlineSat", properties);
// render the default gui
Material targetMat = materialEditor.target as Material;
// see if redify is set, and show a checkbox
EditorGUI.BeginChangeCheck();
{
EditorGUIUtility.labelWidth = 0f;//컬러위치
targetMat.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.One);
targetMat.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha);
//targetMat.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.Zero);
materialEditor.ShaderProperty(_RenderMode, new GUIContent("Render Mode"));
//materialEditor.ShaderProperty(_BlendMode, new GUIContent("Blend Mode", "Blend Mode"));
GUILayout.Label("Main Maps", EditorStyles.boldLabel);
materialEditor.TexturePropertySingleLine(new GUIContent("Main Texture", "Blend Color Texture"), _MainTex, _BlendMode);
EditorGUI.indentLevel = 1; //얼마나 오른쪽으로 이동시킬지
switch ((_BM)_BlendMode.floatValue)
{
case _BM.None:
break;
case _BM.ext:
materialEditor.TexturePropertySingleLine(new GUIContent("Blend Color", "Blend Color Texture"), _ColorTex, _Color);
materialEditor.TexturePropertySingleLine(new GUIContent("Emission Color", "Emission Color Texture"), _EmissionTex, _EmissionColor);
break;
case _BM.Body:
break;
case _BM.Hair:
break;
case _BM.Cloth:
break;
default:
break;
}
switch ((_BM)_BlendMode.floatValue)
{
case _BM.None:
break;
default:
materialEditor.ShaderProperty(_Hue, new GUIContent("Hue"));
materialEditor.ShaderProperty(_Sat, new GUIContent("Sat"));
materialEditor.ShaderProperty(_Val, new GUIContent("Val"));
break;
}
switch ((_BM)_BlendMode.floatValue)
{
case _BM.None:
break;
case _BM.ext:
materialEditor.ShaderProperty(_Contrast, new GUIContent("Contrast"));
materialEditor.ShaderProperty(_Metallic, new GUIContent("Metallic"));
materialEditor.ShaderProperty(_ColorRamp, new GUIContent("ColorRamp"));
break;
case _BM.Body:
break;
case _BM.Hair:
break;
case _BM.Cloth:
break;
default:
break;
}
EditorGUI.indentLevel = 0;
EditorGUILayout.Space();
GUILayout.Label("Outline", EditorStyles.boldLabel);
materialEditor.ShaderProperty(_outline_width, new GUIContent("Outline Width"));
if(_outline_width.floatValue>0)
{
EditorGUI.indentLevel = 1; //얼마나 오른쪽으로 이동시킬지
//materialEditor.TexturePropertySingleLine(new GUIContent("Outline Color", "Outline Color Texture"), _OutlineTex, _OutlineColor);
//materialEditor.TexturePropertySingleLine(new GUIContent("Outline Color", "Outline Color Texture"), _OutlineColor);
materialEditor.TexturePropertySingleLine(new GUIContent("Outline Mask", "Outline Mask Texture"), _OutlineMask);
materialEditor.ShaderProperty(_OutlineSat, new GUIContent("Outline Sat"));
EditorGUI.indentLevel = 0; //얼마나 오른쪽으로 이동시킬지
}
switch ((_BM)_BlendMode.floatValue)
{
case _BM.None:
break;
case _BM.ext:
break;
case _BM.Body:
break;
case _BM.Hair:
break;
case _BM.Cloth:
break;
default:
break;
}
switch ((_RM)_RenderMode.floatValue)
{
case _RM.Opaque:
break;
case _RM.Cutout:
break;
case _RM.Transparent:
break;
default:
break;
}
materialEditor.ShaderProperty(_CullingMode,new GUIContent("Culling Mode", "Outline Mask Texture"));
switch ((_CM)_CullingMode.floatValue)
{
case _CM.Back:
break;
case _CM.None:
break;
case _CM.Front:
break;
default:
break;
}
EditorGUILayout.Space();
//materialEditor.RenderQueueField();
//materialEditor.EnableInstancingField();
//materialEditor.DoubleSidedGIField();
//base.OnGUI(materialEditor, properties);
}
}
}
AhzkwidToonShader에 포함된 예제
public enum _RM
{
Default, Overlay
}
public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] properties)
{
//쉐이더 프로퍼티들을 불러옴
MaterialProperty _RenderMode = FindProperty(nameof(_RenderMode), properties);
MaterialProperty _MainTex = FindProperty(nameof(_MainTex), properties);
//인스펙터 변경사항이 있는지 체크하는거, 필수는 아님
EditorGUI.BeginChangeCheck();
{
//해당 변수의 값을 읽어옴
switch ((_RM)_RenderMode.floatValue)
{
case _RM.Default:
//행동1
break;
case _RM.Overlay:
//행동2
break;
default:
break;
}
//일반 인스펙터 (참조변수가 앞에 있는게 특징이다)
materialEditor.ShaderProperty(_RenderRange, "Render Range");
//텍스처 인스펙터 (GuIContent를 써서 설명도 같이 넣고 있다. 그냥 문자열로 넣어도 됨)
materialEditor.TexturePropertySingleLine(new GUIContent("Main Texture", "Default Texture"), _MainTex);
}
}
들여쓰기
EditorGUI.indentLevel = 1; //얼마나 오른쪽으로 이동시킬지
{
var guiContent=new GUIContent("Main Texture(변수명)", "Default Texture(설명)");
materialEditor.TexturePropertySingleLine(guiContent, _MainTex);
}
EditorGUI.indentLevel = 0; //얼마나 오른쪽으로 이동시킬지
헤더+들여쓰기
//헤더
GUILayout.Label("헤더", EditorStyles.boldLabel);
{
//들여쓰기
EditorGUI.indentLevel = 1; //얼마나 오른쪽으로 이동시킬지
{
materialEditor.ShaderProperty(_Value1, "인스펙터1");
materialEditor.ShaderProperty(_Value2, "인스펙터2");
materialEditor.ShaderProperty(_Value3, "인스펙터3");
materialEditor.ShaderProperty(_Value4, "인스펙터4");
}
EditorGUI.indentLevel = 0;
}
렌더큐옵션
EditorGUILayout.Space();
EditorGUILayout.Space();
materialEditor.RenderQueueField();
어스밴스 옵션
EditorGUILayout.Space();
EditorGUILayout.Space();
GUILayout.Label("Advanced Oprions", EditorStyles.boldLabel);
{
materialEditor.EnableInstancingField();
materialEditor.DoubleSidedGIField();
}
쉐이더 코드에 다음과같이 넣어줘야 작동한다
FallBack은 필수는 아니고 쉐이더 미싱일때 작동하는거
SubShader
{
FallBack "Diffuse" //기본마테리얼
CustomEditor "AhzkwidToonInspector" //커스텀인스펙터
}
모션블러 종류 (1) | 2021.03.02 |
---|---|
스텐실 (0) | 2021.01.20 |
자주쓰는 유니티 쉐이더 코드모음 (0) | 2020.11.04 |