본문 바로가기

Workshop Index

Unity for Design Scripting and Visualization

!Unity for Computational Design and Visualization

!Unity for Designers

Realtime Graphics / Visualization / Geometry


Youtube playlist: https://www.youtube.com/playlist?list=PLweNVwGgDKEYSupf2flzpZdT8tmSL8SNo

참조 플레이리스트

NJ's Computational Design Lecture series -http://bit.ly/2SgBRq0

다음 브런치 디자인(Design) & 데이터(Data), 컴퓨테이셔널 디자인 -http://bit.ly/2OCfJ8P

 


강의제목:

디자인 스크립팅과 시각화를 위한 유니티

 

이런 걸 배울 수 있어요:
유니티의 문법 / 사용법

C# 프로그래밍

OOP 프로그래밍


컴퓨테이셔널 사고
파라메트릭 / 제너레이티브 디자인 스크립팅
지오메트리의 생성과 수정

인터액션 


이런 분들에게 추천해요

건축 혹은 3D 디자이너 중, 코딩을 공부하고 싶으신 분들

Unity 시각화를 공부하고 싶으신 분들
컴퓨테이셔널 지오메트리를 공부하고 싶으신 분들
파라메트릭 / 제너레이티브 디자인을 공부하고 싶으신 분들
컴퓨테이셔널 디자인을 공부하고 싶은 신 분들~


선수지식이 필요하다면 무엇인가요?

열정 / 배우고자 하는 욕망! / 포기하고 싶을 때, 지속할 수 있는 의지


카테고리

개발 / 프로그래밍 / 그래픽 / 크리에이티브

 

강의 수준

입문 초급 /중급이상

 


Unity Basic 
DigitalFUTURES Immersive Environmental Information & Visualization

Reference:

Github
Unity

Visual Studio Code

C# Basic in Grasshopper


INTRODUCTION / 소개

1. Unity 소개 / Design Scripting & Visualization

00:21 - 유니티 소개

00:53 - 이 유니티 워크숍 시리즈의 특징

…………………………………………….

01:31 - 유니티의 장점들

02:54 - Metabus / VR / AR

03:13 - Component Centric 프로그래밍 패러다임

04:03 - 라이선스

04:31 - 다양한 영역에서 쓰이는 유니티

…………………………………………….

05:21 - Unity 기초 시리즈 소개

Github: https://github.com/NamjuLee/DigitalFU...

06:35 - Tistory링크 설명 Unity for Design Scripting and Visualization https://computationaldesign.tistory.c...

07:48 - C# 문법(Grasshopper) - https://www.youtube.com/playlist?list...

08:35 - 수업의 중점을 두는 부분들

 

2. Unity 작업물 소개

00:00 - 복습

00:18 - 비디오의 목표.

00:50 - Unity에 대한 예제 소개

01:50 - 자료구조,

그래프 - https://youtu.be/cUEQmPh57MU

픽셀, 복셀 - https://youtu.be/GmwvGd1HZ78

02:59 - Landbox 예제

03:59 - 주요 기능 / 생태계 설명

06:55- 큰 작업의 흐름

07:38 - VR 환경

09:15 - 이 워크숍 시리즈에서 중점을 둘 것은?

10:24 - 정리를 해 보면,

 

 

3. Unity 실행 & Interface 소개

Keyword: Unity란,  installation,  Interface

00:15 - Tistory: https://computationaldesign.tistory.c...

00:49 - Unity 버전 / 다운로드 https://unity3d.com/unity/qa/lts-rele...

01:27 - Visual Studio Code - https://code.visualstudio.com/

01:33 - C# 문법 수업 - https://www.youtube.com/playlist?list...

……………………………………………………………………….

02:33 - 유니티 시작하기

03:16 - 유니티 화면

03:44 - Pulldown 메뉴

04:58 - GameObject / 게임오브젝트

06:47 - Component / 컴포넌트

07:34 - Toolbar / 툴바

08:16 - 중요 창 설명

10:35 - Unity의 Scene의 개념! 중요함!

11:54 - 요약하면

12:19 - 오늘의 과제


GAMEOBJECT & COMPONENT / 컴포넌트

4. Unity GameObject Components & properties

00:00 - 시작하기 전,

00:42 - 공부하는 방법?

01:39 - 자료 Github에서 다운 : https://github.com/NamjuLee/DigitalFU...

03:55 - Unity Interface 바꾸기

05:13 - 오늘의 수업 (Component) 장면 설명 및 불러오기

07:33 - Visual Studio Code 연동 / C# Script 파일 보기

………………………………………………………..

08:54 - Code 설명 시작

11:21 - GameObject의 구조 설명 Ex: this.tga / this.name / Debug.Log() / print() …

13:31 - Transform.position / Transform.localScale / Transform.localRotation

14:15 - 이것이 중요한 이유?

14:59 - .GetComponent() 중요성? 그리고 MeshFilter Component

17:17 - OOP 공부 자료: https://www.youtube.com/playlist?list...

18:59 - MeshFilter의 Vertices의 정보 출력하기

20:20 - Renderer Component / Renderer.Material 그리고 Color

22:33 - 오늘 수업의 중요성!

……………………………………………………..

23:04 - 요약 및 수업 복습 방법

 

5. Unity GameObject & Attach Component

00:00 - 전 강의 요약,

00:19 - GameObject 만들기 / Script 붙이기

01:17 - 오늘의 수업 결과 보기

01:53 - 유니티 파이프라인의 개념 설명

04:18 - 내가 선호하는 구조 그리고 파이프 라인

05:01 - Code 설명 시작: Start() / Updat() 함수

06:00 - GameObject. CreatePrimitive() 함수

07:18 - PrimitiveType Enum

09:13 - Unity 좌표계 Coordinate System

10:20 - Code 설명

12:39 - Transform.Roate() / 회전시키기

13:17 - 숫자 뒤에 f를 쓰는 이유는???

14:11 - .AddComponent()

16:21 - 변수의 범위 / local or global variable

18:49 - Cube에 애니메이션 만들기 / Update()

19:21 - 관계성을 살펴보면!

21:48 - 요약하면

 


6. GameObject & Transform (Position, Scale, Rotation), GameObject lifecycle

00:00 - 전 강의 요약,

00:19 - GameObject 만들기 / Script 붙이기

01:17 - 오늘의 수업 결과 보기

00:07 - 장면 파일

00:35 - 장면 설명

01:54 - 오늘의 수업 Transform Component

03:02 - Parent and Child 관계

03:40 - Ctrl + D 게임 오브젝트 복사하기

04:59 - Code 설명 : float, public …

05:14 - Class의 이름과 파일 이름은 항상 같아야 한다!

07:42 - HideInInspector

09:21 - GameObject.Find()

10:59 - public으로 게임 오브젝트 가져오기

12:58 - Transform Component Doc 살펴보기

15:20 - Transform.localScale

18:52 - Update 함수 / position

20:25 - .Rotate()

……………………………………………………………………………

21:36 - GameObject lifecycle: Awake , Start, Update …

23:28 - FixedUpdate()

26:16 - Event 업데이트 순서

28:29 - Awake를 사용하는 이유?

29:22 - 이런 장치가 있는 이유?

 

 

7. GameObject  & Instantiate &  Destroy & Object Pulling

00:07 - 오늘의 학습 목표

01:43 - 장면 설명

02:42 - Code 설명

04:44 - int t ; t++ 설명

05:43 - Conditional Statement / 조건문

07:00 - GameObject.Instantiate() / 순차적 오브젝트 생성

12:14 - GameObject.Destroy() / 순차적 오브젝트 제거

14:26 - 요약하면,

15:36 - 수정을 해 보면

16:24 - 디자인 스크립팅(Design Scripting)에서는…

17:11 - Object Pooling 개념 설명

19:56 - 마무리

 

 

8. Unity SendMessage & Pipeline & Computational Design

00:00 - 오늘의 수업

00:15 - 장면 설명

01:31 - Code 설명

02:07 - .SandMessage() 설명

03:13 - GameObject.FindGameObjectWithTag() 설명

04:30 - For loop 그리고 SandMessage()

06:28 - string을 수정해 보면

07:33 - 왜 중요한가?

07:37 - [#컴퓨테이셔널디자인 39] 컴퓨테이셔널 사고와 파이프라인의 중요성 (발췌 버전) - https://youtu.be/D9Gi7X6jaIk

08:22 - Pipeline 개념

09:27 - 다른 관점으로는?

………………………………………………………………….

12:10 - 생각의 확장 그리고 컴퓨테이셔널 디자인, Agent-based, Generative, or parametric …

16:42 - 내가 생각하는 컴퓨테이셔널 디자인

19:08 - 일반적인 Unity 사용법과 문제점, 그리고 추천하는 방법론들

21:40 - 요약하면

......................................................................................

23:04 - 추가 공부 자료:

[#컴퓨테이셔널디자인 06] 쉽게 이해하는 클래스(Class) - https://youtu.be/lA3KWQTrToU

[#컴퓨테이셔널디자인 28] SA 7.0 Lecture 2. 디자이너를 위한 컴퓨테이셔널 팅킹 / Computational Thinking For Designer

Medium - https://nj-namju.medium.com/computati...

[한국어] 5. Introduction to Computational Design: Data, Geometry, and Visualization Using Digital Media 

Python Class Example

설명 비디오: - Python For Designers 04 Class/ 디자이너를 위한 파이썬 04 파이썬 클래스 - https://youtu.be/dy575QbFtFg

25:43 - 요약하면,

………………………………………………………………….

26:11 - 마무리

 

 

9. Unity GameObject & Attach Component

00:00 - 지난 수업 복습

00:35 - 오늘의 내용: Debug를 위한 시각화

01:28 - 장면 설명

02:01 - Debug 설명

05:48 - Line과 Ray의 차이점 설명

07:00 - Gizmo 설명: Line , Sphere, Cube, WireMesh

09:51 - Gizmo를 사용하는 이유?

11:00 - GameObject의 WireMesh 시각화, .shardMesh

12:34 - 요약하면

 

 

 


INTERACTION / 인터액션

 

10. Mouse Interaction / Event pipeline / CAD & Design System의 전략과 사고

00:00 - 시작하면서

00:33 - 복습

티스토리: https://computationaldesign.tistory.c...

github: https://github.com/NamjuLee/DigitalFU...

...................

02:17 - 인터액션 / Interaction 예제

03:10 - 장면 설명

04:51 - 코드 설명 : 마우스 이벤트 / Mouse Event / OnMouse

...................

08:04 - 디자인 알고리즘(파이프라인 & 소프트웨어 아키텍처)

10:20 - 이벤트의 중요성과 파이프라인 그리고 컴퓨테이셔널 사고

10:57 - 이벤트와 컨트롤러 그리고 CAD & Design System의 전략과 사고

 

 

11. Mouse Picking Physics.Raycast()

00:00 - 오늘의 수업은?

01:38 - 코드 설명: Camera.main.ScreenPointToRay(), Input.mousePosition

04:13 - 2D 마우스 위치에서 Ray를 투영하는 개념

06:42 - Picking, Physics.Raycast()

09:53 - 컴포넌트 설명 / component: collider

11:48 - 마우스를 따라다니는 큐브

13:54 - 큐브의 방향 / Transform.LookAt() / normal

17:14 - 개념 정리: 오브젝트 픽킹(Picking) 2가지 큰 방법 / 디자인 시스템, 구현, 방법론

 

 

12. Picking Raycast Rigidbody

00:00 - 오늘의 수업

01:38 - 장면 설명

02:22 - 코드 설명: hit.rigidbody.AddForceAtPosition()

04:10 - Input.GetMouseButtonDown()

.................

05:21 - API 학습에 관해

07:32 - 핵심 기초를 이해하는 것의 중요성

08:04 - Rigidbody의 예

09:39 - 무조건 타이핑을 쳐라!

 

 

13. Collision

00:00 - 장면 설명

00:55 - 라이노 매쉬 버텍스 순서 - https://youtu.be/WQgj_gYMOWM

03:22 - 코드 설명: GameObject.Instantiate(), Random.Range()

05:53 - 충돌: OnCollisionEnter: OnCollisionStay: OnCollisionExit

07:56 - 개념 설명: 이벤트를 구현할 때 / 컴퓨테이셔널 사고 파이프 라인

10:13 - 충돌 관계성 시각화: Gizmos.DrawLine()

 

 

14. Keyboard Event / CollisionEvent class

00:16 - 예제 설명: 키보드

02:56 - 파이프라인 개념 설명

04:14 - 코드 설명: Input.GetKey

05:41 - 문서: https://docs.unity3d.com/ScriptRefere...

...................

06:35 - 예제 설명: 키보드 / 충돌 감지

07:04 - 코드 설명: 실행 흐름

08:01 - 충돌 정보 분석

09:00 - 코드 설명: CollisionEvent class

11:09 - 충돌 데이터를 다루기 위한 알고리즘 흐름 설명

...................

14:18 - 이벤트 마무리 요약

15:33 - 과거 수업 복습

 


UI / 유저 인터페이스

15. UI Basic

00:00 - 오늘의 수업: UI

00:39 - 장면 이해

01:35 - Unity Canvas

04:21 - Unity Button

................

07:07 - 코드 설명

07:55 - Button 접근하여 가져오기

10:17 - Button에 OnClick Event 달기

11:41 - 요약: Unity UI 문서 그리고 학습 방법

 

 

16. UI Event

00:00 - 오늘의 수업: Button 그리고 Event, 예제 확인

01:30 - UI UX와 컴퓨테이션 알고리즘

02:33 - 코드 설명

04:05 - Start 함수 설명

04:27 - Text 설명

07:12 - Update 함수 설명

08:29 - Button1 발사 이벤트 설명

11:44 - UpdateUIText 설명

12:30 - Button2 삭제 이벤트 설명

13:01 - NJ 채널 수업은 버젼을 타지 않습니다!!

................

15:12 - 요약 1 - Bottom up 학습 전력

15:41 - 요약 2 - 결국 문제 해결 그리고 프로세스의 코드화

 

 

 

17. UI Image

00:00 - 오늘의 수업: Unity UI, Image & 장면 확인

00:45 - 코드 설명 시작

02:22 - Unity에서 C# 문법 강의: https://youtu.be/tGBvcZiJv8s

02:51 - Start 함수 분석

04:10 - Image GameObject 만들기

06:31 - PNG 파일 불러오기

08:21 - Sprite 만들기

11:15 - 중간 요약

11:59 - Click 이벤트

13:14 - Animation 이벤트

15:12 - Easing Motion / Vector interpolation

17:53 - Linear interpolation

20:25 - 컴퓨테이셔널 도구를 학습 때의 자세

21:09 - 마무리 요약

 


DATA / 데이터

18. CSV / import file by local path

00:00 - Data 챕터 수업 소개

01:41 - 오늘의 수업 / 장면 소개

02:43 - 코드 분석 시작

04:01 - Start 함수 설명

04:11 - 데이터 구조에 대한 설명 Structured, Semi-structured, Unstructured data 그리고 학습 방법과 참조 자료

05:47 - 로컬 데이터 파일 패스 만들기

07:13 - 패스에서 파일을 불러오기

08:17 - CSV 파일에 대해

11:50 - 반복문을 통해 CSV의 데이터 읽어오기

12:20 - min, max 정의

13:20 - 각각의 데이터 row 출력하기

15:26 - try catch 구문 이해하기

15:44 - 버그(Bug)의 종류

17:56 - 데이터 Parsing, .split(), Convert.ToSingle()

21:28 - Center 값 구하기

23:34 - min, max 값 구하기

25:26 - Sphere 오브젝트로 시각화하기

26:51 - Scale 값으로 3번째 차원 값 시각화하기

30:06 - Data 스케일 조정하기, Log 함수 활용

36:40 - 시각화 요약

37:43 - min, max의 활용과 Camera 위치

39:25 - Camera의 위치가 중요한 이

40:52 - 파일을 읽어오는 API의 형식들

41:55 - 마무리: 데이터를 바라보는 디자이너의 자세

43:48 - 마무리: 디자이너를 위한 학습 방법과 전략

 

 

19. CSV / URL

00:00 - 오늘의 수업: CSV from online

00:27 - 장면 설명

01:34 - 코드 설명

02:22 - CSV 파일 설명

04:03 - WebRequest 설명

05:04 - Serial computing과 Async 개념 설명

07:29 - Asynchronous programming with async and await

09:16 - 요약하면

10:58 - 학습 전략 리마인드!

 

20. JSON / URL

00:00 - JSON 데이터와 데이터 구조

01:11 - 오늘의 수업 설명: 제3의 공간 시각화

02:53 - JSON 구조 설명

05:31 - JSONLint의 활용 https://jsonlint.com

06:55 - JSON 파일 불러오

07:54 - JsonUtility

09:29 - 준비된 JSON 데이터 구조 이해하기

[컴퓨테이셔널디자인 26] 곱하기 어떻게 볼까? 추상을 통한 상상? 컴퓨테이션/크리에이티브 코딩-https://youtu.be/h5YphJY54nI

10:09 - JOSN 구조의 시각화, 다이어그램으로 이해하기

13:52 - JSON의 특정 항목 접근하기

14:45 - 코드로 구현해 보면

15:20 - 어렵다면, 정상이다! 그리고 학습 전략

16:04 - class의 구조 설명

16:45 - 요약을 하면,

17:14 - 데이터 접근하여 정보 가져오기

20:57 - Color 만들기

21:37 - 각각의 요소를 시각화하기

23:26 - 시각화 요소에 메타 데이터 적용하기

25:05 - 마무리

 

 

21. RestAPI

 

 

22 OBJ

 

 

23. Image

 

 

24. Video / Cam

 

 

 


MESH / 매쉬

24. Procedural Cube

 

 

25. Procedural Cube Mesh

 

 

26. Mesh Bunny

 

 

 


Design Scripting and Visualization Examples / Scene

 

 

Scene 1. US Map / GeoJSON

GeoJSON

 

 

Scene 2. World Temperature

REST API

 

 

Scene 3 World Globe

Projection

 

 

Scene 4 Solar Simulation

Solar path

 

 

Scene 5 Cannon example

Regression / Regression Vis /  data collection / Prediction


Scene 6 Generative Algorithms for opimization

Optimization



Scene 7 Computational Geometry

Vector / Point / Line / Polyline / Polygon / Mesh

 


C# Basic 

link: https://youtu.be/tGBvcZiJv8s

 

1 Computation / Type / Variables

    Keywords: 4칙 연산 / 변수 / 숫자 / 문자 / 선언 그리고 지정 / 변환(Cast) 
    type: int, string, bool, float, double... ; 세미콜론 

 

2 Scope and Comment

 

3 Conditions and Statements

    Keywords: 변수의 범위, 전역 변수의 노출 / 비교 / 조건 / 다중 조건 / 여러 조건 문법

 

4 loop

 

5 Data Structure

    Keywords: 리스트(List) / 어레이(Array) / Dictionary(사전) / Hashtable / Enum

 

6 Methods

    Keywords:변수 선언 / 인자 값/ 리턴 값

 

7 Classes

    Keywords:클래스(Class) / OOP

 

    public / private // [System.NonSerialized]

 


GLSL Shader for designers 

 

Screen space

 

 

World space