KR101775839B1 - 격자를 스킨웨이트에 적용하기 위한 그래픽 사용자 인터페이스 제공방법 - Google Patents

격자를 스킨웨이트에 적용하기 위한 그래픽 사용자 인터페이스 제공방법 Download PDF

Info

Publication number
KR101775839B1
KR101775839B1 KR1020160097526A KR20160097526A KR101775839B1 KR 101775839 B1 KR101775839 B1 KR 101775839B1 KR 1020160097526 A KR1020160097526 A KR 1020160097526A KR 20160097526 A KR20160097526 A KR 20160097526A KR 101775839 B1 KR101775839 B1 KR 101775839B1
Authority
KR
South Korea
Prior art keywords
lattice
joint
geometry
button
user interface
Prior art date
Application number
KR1020160097526A
Other languages
English (en)
Inventor
송밝음
이현석
Original Assignee
동서대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 동서대학교산학협력단 filed Critical 동서대학교산학협력단
Priority to KR1020160097526A priority Critical patent/KR101775839B1/ko
Application granted granted Critical
Publication of KR101775839B1 publication Critical patent/KR101775839B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2021Shape modification

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Architecture (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Processing Or Creating Images (AREA)

Abstract

본 발명은 가상의 캐릭터를 만들 수 있고 애니메이션 편집 또는 합성이 가능한 소프트웨어 프로그램에서 제작된 모델링에서 수정하고자 하는 부분을 그래픽 사용자 인터페이스를 제공하는 플러그인 프로그램을 통하여 데이터를 변경하여 입력한 후, 상기 입력된 데이터를 기반으로 모델링의 격자(Lattice)를 스크립트를 통해 연산 및 동작 처리하여 모델링의 보다 정교한 동작을 만들기 위한 변형을 최적화하여 모델링에서 스킨웨이트가 적용되기 힘든 부분들에 스킨웨이트를 간단히 적용함으로써 입력한 데이터를 기반으로 최종 생산물(output)을 획득할 수 있는 것으로,
본 발명 격자를 스킨웨이트에 적용하기 위한 그래픽 사용자 인터페이스 제공방법는 조인트(joint)와 기하학구조(geometry)를 선택하여 격자(lattice)을 적용한 후, 스킨웨이트(skinweights)로 변환하기 편리한 그래픽 사용자 인터페이스(GUI, graphical user interface)를 제공하는 플러그인 프로그램을 제공하고, 특히, 상기 그래픽 사용자 인터페이스를 제공하는 플러그인 프로그램을 통해 사용하기 편리하도록 스킨웨이트(skinweights) 생성시 격자(lattice)를 빠르게 적용하여 작업 진행을 효과적으로 하며, 캐릭터 셋업 시 불필요한 시간을 줄이며, 분리된 모델링을 직관적이 되도록 변형하고, 옵션을 활용하여 캐릭터의 특징과 성향에 따라 격자를 다르게 적용 가능한 격자를 스킨웨이트에 적용하기 위한 현저한 효과가 있다.

Description

격자를 스킨웨이트에 적용하기 위한 그래픽 사용자 인터페이스 제공방법 { graphical user interface providing method for applying lattice to a skinweight }
본 발명 격자를 스킨웨이트에 적용하기 위한 그래픽 사용자 인터페이스 제공방법에 관한 것으로, 더욱 상세하게는 조인트(joint)와 기하학구조(geometry)를 선택하여 격자(lattice)을 적용한 후, 스킨웨이트(skinweights)로 변환하기 편리한 그래픽 사용자 인터페이스(GUI, graphical user interface)를 제공하는 플러그인 프로그램을 제공하고, 특히, 상기 그래픽 사용자 인터페이스를 제공하는 플러그인 프로그램을 통해 사용하기 편리하도록 스킨웨이트(skinweights) 생성시 격자(lattice)를 빠르게 적용하여 작업 진행을 효과적으로 하며, 캐릭터 셋업 시 불필요한 시간을 줄이며, 분리된 모델링을 직관적이 되도록 변형하고, 옵션을 활용하여 캐릭터의 특징과 성향에 따라 격자를 다르게 적용 가능한 격자를 스킨웨이트에 적용하기 위한 그래픽 사용자 인터페이스 제공방법에 관한 것이다.
최근에는 3D 산업이 발전하면서 3D 애니메이션 작업을 통한 3D 캐릭터의 색감, 질감, 움직임 등이 자연스러워지고 빨라지고 있다.
상기 3D 애니메이션 작업을 하기 위한 소프트웨어도 꾸준히 개발되어 발전하고는 있지만, 여전히 3D 애니메이션 작업에서 웨이팅 작업은 많은 시간과 노력이 필요하다.
일반적으로 3D 애니메이션은 렌더링 과정을 통해 2차원이 아닌 3차원인 공간에서 3차원 캐릭터의 움직이는 작업 과정들을 촬영하여 제작된다.
상기 렌더링(rendering)이란 2차원의 화상에 광원·위치·색상 등 외부의 정보를 고려하여 사실감을 불어넣어, 3차원 화상을 만드는 과정을 뜻하는 컴퓨터그래픽스 용어이다.
상기 렌더링 과정을 통해 가상의 캐릭터를 만들 수 있고 애니메이션 편집 또는 합성이 가능한 소프트웨어 프로그램에서 3차원 캐릭터를 제작하는 과정을 모델링이라고 한다.
그리고 상기 가상의 캐릭터를 만들 수 있고 애니메이션 편집 또는 합성이 가능한 소프트웨어 프로그램은 주로 오토데스크 마야(autodesk maya)를 사용할 수 있다.
그러나 가상의 캐릭터를 만들 수 있고 애니메이션 편집 또는 합성이 가능한 소프트웨어 프로그램의 특성상 각각의 디포머(deformer)의 데이터 중에서 특정한 디포머(deformer)의 데이터를 변경할 시 연산처리 속도가 느리고, 다수의 디포머를 활용하다 보면 복잡하게 디포머들끼리 문제를 발생시켜 동작을 구현하는데 어려움이 있다.
또한, 상기 3차원 캐릭터의 움직임들을 자연스럽게 표현하기 위하여 꼭짓점(Vertex)들의 수치데이터 조절 비율을 달리하는데, 이를 페인트 디포머 웨이트라고 한다.
상기 3차원 캐릭터의 디포머를 조절하여 어떠한 특정 동작들을 예쁜 형태로 만들어야 하는데, 가상의 캐릭터를 만들 수 있고 애니메이션 편집 또는 합성이 가능한 소프트웨어 프로그램에서는 연산속도가 느려서 작업 과정 진행에 많은 시간을 소요하게 된다.
상기 디포머를 캐릭터에 적용하게 되면, 미러 기능 및 다양한 다른 소프트웨어와의 호환성 문제 등을 고려했을 때 작동하는데 많은 어려움이 있다.
이때, 사용되는 것이 플러그인 프로그램이다.
일반적으로 플러그인 프로그램이란 기존 소프트웨어 프로그램의 기능을 보강하기 위해 설치되어 사용되는 추가 프로그램이다.
상기 가상의 캐릭터를 만들 수 있고 애니메이션 편집 또는 합성이 가능한 소프트웨어 프로그램에서는 다양한 플러그인 프로그램이 제공되고 있다. 그리고 상기 소프트웨어 프로그램에서는 플러그인 프로그램들을 통해 디포머의 데이터를 조건에 맞추어 조절할 수 있다.
그러므로 상기 소프트웨어 프로그램에서는 디포머 웨이트할 시 “웨이팅의 통일화, 단순화”하여 비효율적인 작업시간을 줄일 필요가 있는 플러그인 프로그램을 제공할 필요가 있다.
종래기술로서 등록특허공보 등록번호 제10-1102778호의 리깅 복제를 통한 캐릭터 리깅 자동화 방법 및 장치에 의하면, 원본 캐릭터의 원본 모델 및 원본 리깅과 대상 캐릭터의 대상 모델을 제공하는 단계; 상기 원본 모델의 메시와 상기 대상 모델의 메시 각각에 대해, 상기 원본 모델의 메시로부터 상기 대상 모델의 메시로의 모핑(morphing)을 위한 대응점들을 선택하는 단계; 상기 대응점들에 기초한 상기 메시들의 공통 파라미터화(cross-mesh parameterization)를 통해, 상기 원본 모델의 메시와 상기 대상 모델의 메시 사이의 표면 상관관계를 계산하고 모핑 케이지를 생성하는 단계; 상기 표면 상관관계 및 모핑 케이지에 기초한 케이지 기반 변형(cage-based deformation) 연산을 통해, 상기 원본 모델의 메시 내부의 공간들의 3차원 위치와 대상 모델의 메시 내부의 공간들의 3차원 위치 사이의 공간 상관관계를 계산하는 단계; 상기 원본 모델과 대상 모델 사이의 공간 상관관계 및 표면 상관관계를 이용하여, 원본 리깅의 리깅 요소의 3차원 위치 및 속성에 대응하는 대상 모델 내의 3차원 위치 및 속성을 계산하는 단계; 및 상기 대상 모델 내의 상기 계산된 리깅 요소의 3차원 위치 및 속성에 기초하여 대상 리깅을 생성하는 단계를 포함하는 복제 기반 리깅 자동화 방법이라고 기재되어 있다.
다른 종래기술로서 공개특허공보 공개번호 제10-2008-0018394호의 마야용 군중 시뮬레이터 소프트웨어를 기록한 기록매체에 의하면 마야용 군중 시뮬레이터 소프트웨어를 기록한 기록매체에 있어서, 군중의 표현에 사용되는 애니메이션 데이터를 반복되는 사이클 동작으로 한정하고, 상기 사이클 동작에 속하는 모든 자세들을 지오메트리 데이터로 생성하여 각각의 파티클에 각각의 지오메트리 데이터를 인스탄스시키고, 프레임이 증가함에 따라 인스탄스된 상기 지오메트리 데이터를 상기 사이클 동작 안에서 다음 자세로 치환하며, 상기 군중을 2차원 배치 또는 3차원 배치하는 기능을 제공하는 군중 데이터 생성/배치 툴 모듈; 상기 군중의 초기 분포, 초기 방향을 지정하고, 각 사이클에 해당하는 상기 군중의 상기 지오메트리 데이터를 지정하며, 상기 각 사이클에서의 상기 군중의 이동 속도, 방향, 타깃 오브젝트를 포함하는 특성을 지정하는 군중 컨트롤 UI(User Interface) 모듈; 상기 지오메트리 데이터와 사용자가 UI를 통해 입력한 동작 단계 변경 정보를 이용해 상기 프레임마다 각 개체에 고유한 동작 시퀀스를 지정하는 동작 결정 기능, 각 개체간 상호 탐지 기능으로 충돌 회피 및 다양한 동작으로 변환하는 개체 감지 기능, 장애물에 따라 진로 변경 등을 수행하는 장애물 탐지 기능, 주어진 이벤트에 따라 지정된 동작으로 변환하는 이벤트 반응 기능, 다른 군중 노드의 radialField를 적 리스트에 등록함으로써 적 군중과의 조우를 감지하는 적 감지 기능 및 주어진 지형에 반응하며 동작하는 지형 감지 기능을 구현하는 개체 동작 결정 시스템 모듈; 및 상기 사용자의 입력으로 주어진 3D 좌표에 가장 가까운 미리 지정된 NURBS 오브젝트의 UV 정보를 제공하는 UV 정보 플러그 인 모듈을 포함하는 것을 특징으로 하는 마야용 군중 시뮬레이터 소프트웨어를 기록한 기록매체라고 기재되어 있다.
그러나 상기와 같은 종래의 방법은 스킨웨이트를 생성할 시 가상의 모델링을 만들 수 있고 애니메이션 편집 또는 합성이 가능한 소프트웨어 프로그램를 통해 직접적으로 각각의 작업을 하나씩 따로 해야함으로써 단순 반복 작업들로 인해 불필요한 시간을 투자해야 하며, 스킨 작업 또는 페인트 스킨웨이트 작업하는 것이 불편하고 어려운 문제점이 있었다.
따라서 본 발명 격자를 스킨웨이트에 적용하기 위한 그래픽 사용자 인터페이스 제공방법을 통하여, 조인트(joint)와 기하학구조(geometry)를 선택하여 격자(lattice)을 적용한 후, 스킨웨이트(skinweights)로 변환하기 편리한 그래픽 사용자 인터페이스(GUI, graphical user interface)를 제공하는 플러그인 프로그램을 제공하고, 특히, 상기 그래픽 사용자 인터페이스를 제공하는 플러그인 프로그램을 통해 사용하기 편리하도록 스킨웨이트(skinweights) 생성시 격자(lattice)를 빠르게 적용하여 작업 진행을 효과적으로 하며, 캐릭터 셋업 시 불필요한 시간을 줄이며, 분리된 모델링을 직관적이 되도록 변형하고, 옵션을 활용하여 캐릭터의 특징과 성향에 따라 격자를 다르게 적용 가능한 격자를 스킨웨이트에 적용하기 위한 그래픽 사용자 인터페이스 제공방법을 제공하고자 한다.
본 발명은 가상의 캐릭터를 만들 수 있고 애니메이션 편집 또는 합성이 가능한 소프트웨어 프로그램에서 제작된 모델링에서 수정하고자 하는 부분을 그래픽 사용자 인터페이스를 제공하는 플러그인 프로그램을 통하여 데이터를 변경하여 입력한 후, 상기 입력된 데이터를 기반으로 모델링의 격자(Lattice)를 스크립트를 통해 연산 및 동작 처리하여 모델링의 보다 정교한 동작을 만들기 위한 변형을 최적화하여 모델링에서 스킨웨이트가 적용되기 힘든 부분들에 스킨웨이트를 간단히 적용함으로써 입력한 데이터를 기반으로 최종 생산물(output)을 획득할 수 있는 것을 특징으로 한다.
본 발명 격자를 스킨웨이트에 적용하기 위한 그래픽 사용자 인터페이스 제공방법는 조인트(joint)와 기하학구조(geometry)를 선택하여 격자(lattice)을 적용한 후, 스킨웨이트(skinweights)로 변환하기 편리한 그래픽 사용자 인터페이스(GUI, graphical user interface)를 제공하는 플러그인 프로그램을 제공하고, 특히, 상기 그래픽 사용자 인터페이스를 제공하는 플러그인 프로그램을 통해 사용하기 편리하도록 스킨웨이트(skinweights) 생성시 격자(lattice)를 빠르게 적용하여 작업 진행을 효과적으로 하며, 캐릭터 셋업 시 불필요한 시간을 줄이며, 분리된 모델링을 직관적이 되도록 변형하고, 옵션을 활용하여 캐릭터의 특징과 성향에 따라 격자를 다르게 적용 가능한 격자를 스킨웨이트에 적용하기 위한 현저한 효과가 있다.
도 1은 본 발명의 GUI 구성도
도 2는 본 발명의 파이선 스크립트를 적용하는 순서도
도 3은 본 발명과 종래발명의 차이를 나타내는 개념도
도 4는 본 발명의 GUI를 이용한 모델링 적용 개념도
도 5는 본 발명의 조인트(joint)가 조인트 리스트뷰에 추가된 개념도
도 6은 본 발명의 기하학구조(geometry)가 기하학구조 리스트뷰에 추가된 개념도
도 7은 본 발명의 격자의 수를 조절하는 Number 입력부를 통해 격자가 적용된 개념도
도 8은 본 발명의 모델링에 적용되는 격자의 수에 따른 실시도
도 9는 본 발명의 Quick test를 할 시 모델링을 회전시키는 개념도
도 10은 본 발명의 모델링의 격자를 조절하는 개념도
도 11은 본 발명의 스킨웨이트에 격자를 적용하는 개념도
도 12는 본 발명의 격자(littice) 디포머 없이 스킨웨이트만 존재하는 개념도
도 13은 본 발명의 결과물을 나타내는 개념도
본 발명은 가상의 캐릭터를 만들 수 있고 애니메이션 편집 또는 합성이 가능한 소프트웨어 프로그램에서 제작된 모델링에서 수정하고자 하는 부분을 그래픽 사용자 인터페이스를 제공하는 플러그인 프로그램을 통하여 데이터를 변경하여 입력한 후, 상기 입력된 데이터를 기반으로 모델링의 격자(Lattice)를 스크립트를 통해 연산 및 동작 처리하여 모델링의 보다 정교한 동작을 만들기 위한 변형을 최적화하여 모델링에서 스킨웨이트가 적용되기 힘든 부분들에 스킨웨이트를 간단히 적용함으로써 입력한 데이터를 기반으로 최종 생산물(output)을 획득할 수 있는 것을 특징으로 한다.
또한, 상기 플러그인 프로그램에서 제공하는 그래픽 사용자 인터페이스의 스크립트는 파이선 스크립트(python script)를 사용하는 것으로, 상기 스크립트가 적용된 그래픽 사용자 인터페이스를 사용자의 선택에 의해 각 기능을 실행하면 가상의 캐릭터를 만들 수 있고 애니메이션 편집 또는 합성이 가능한 소프트웨어 프로그램에 즉시 적용되는 것을 특징으로 한다.
또한, 상기 플러그인 프로그램에서 제공하는 그래픽 사용자 인터페이스는 스킨웨이트(skinweights)를 적용할 조인트(joint)와 기하학구조(geometry)를 입력하기 위한 입력공간과, 격자(Lattice)를 활용하여 스킨 웨이트 결과 값을 추출하기 위한 추출공간으로 나누어지는 것을 특징으로 한다.
또한, 상기 입력공간은 조인트(joint)를 확인, 추가, 및 삭제할 수 있는 조인트(joint) 레이아웃과, 기하학구조(geometry)를 확인, 추가, 및 삭제할 수 있는 기하학구조(geometry) 레이아웃으로 이루어지는 것을 특징으로 한다.
또한, 상기 추출공간은 선택한 조인트(joint)에 격자(lattice)를 생성하는 Create Lattice on selected Joints 버튼과, 생성되는 격자의 수를 결정하는 Number 입력부와, 격자가 생성된 조인트에 기하학 구조(geometry)를 확인할 수 있도록 하는 퀵 테스트(quick test) 버튼과, 선택한 격자(lattice)의 기하학 구조(geometry)가 적용된 모양을 변경하는 Select LatticeGrp 버튼과, 상기 조인트(joint)에 적용된 격자(lattice)를 삭제하는 delete lattice 버튼과, 격자의 웨이팅 값을 추출하여 스킨웨이트로 전환하는 Convert lattice to joint weights 버튼으로 이루어지는 것을 특징으로 한다.
본 발명을 첨부 도면에 의해 상세히 설명하면 다음과 같다.
도 1은 본 발명의 GUI 구성도, 도 2는 본 발명의 파이선 스크립트를 적용하는 순서도, 도 3은 본 발명과 종래발명의 차이를 나타내는 개념도, 도 4는 본 발명의 GUI를 이용한 모델링 적용 개념도, 도 5는 본 발명의 조인트(joint)가 조인트 리스트뷰에 추가된 개념도, 도 6은 본 발명의 기하학구조(geometry)가 기하학구조 리스트뷰에 추가된 개념도, 도 7은 본 발명의 격자의 수를 조절하는 Number 입력부를 통해 격자가 적용된 개념도, 도 8은 본 발명의 모델링에 적용되는 격자의 수에 따른 실시도, 도 9는 본 발명의 Quick test를 할 시 모델링을 회전시키는 개념도, 도 10은 본 발명의 모델링의 격자를 조절하는 개념도, 도 11은 본 발명의 스킨웨이트에 격자를 적용하는 개념도, 도 12는 본 발명의 격자(littice) 디포머 없이 스킨웨이트만 존재하는 개념도, 도 13은 본 발명의 결과물을 나타내는 개념도이다.
본 발명에 대해 구체적으로 기술하면, 본 발명은 가상의 캐릭터를 만들 수 있고 애니메이션 편집 또는 합성이 가능한 소프트웨어 프로그램에서 제작된 모델링에서 수정하고자 하는 부분을 그래픽 사용자 인터페이스를 제공하는 플러그인 프로그램을 통하여 데이터를 변경하여 입력한 후, 상기 입력된 데이터를 기반으로 모델링의 격자(Lattice)를 스크립트를 통해 연산 및 동작 처리하여 모델링의 보다 정교한 동작을 만들기 위한 변형을 최적화하여 모델링에서 스킨웨이트가 적용되기 힘든 부분들에 스킨웨이트를 간단히 적용함으로써 입력한 데이터를 기반으로 최종 생산물(output)을 획득할 수 있는 것이다.
상기 소프트웨어 프로그램은 주로 오토데스크 마야를 사용한다.
상기 소프트웨어 프로그램은 캐릭터에서 각각의 디포머의 데이터들을 각각 다양한 방법으로 변형하여, 디포머가 변형된 캐릭터의 형태를 변형한다.
이때, 상기 캐릭터의 각각의 디포머의 데이터를 통해 이동거리를 추출하고, 스킨클러스터(SkinCluster)에 추가한다.
그리고 캐릭터에서 디포머들을 삭제하여 컴퓨터 처리속도를 증가시킨다.
그리고 상기 스킨클러스터(SkinCluster)에 적용된 이동거리를 3D 캐릭터에 적용함으로써 3D 캐릭터에 움직임이 구현되는 것이다.
상기 컴퓨터에 설치된 가상의 캐릭터를 만들 수 있고 애니메이션 편집 또는 합성이 가능한 소프트웨어 프로그램이 실행되고, 컴퓨터에 연결된 컨트롤러를 조작하면 조작에 따라 상기 플러그인 프로그램은 각각의 디포머의 데이터를 수정하고, 상기 플러그인 프로그램은 수정된 각각의 디포머의 데이터를 통해 3차원 캐릭터의 움직임을 변환하게 되어 3차원 캐릭터의 동작을 구현하는 것이다.
상기 그래픽 사용자 인터페이스에는 사용자가 쉽고 직관적으로 실행이 필요한 순서대로 사용할 수 있도록 각 구성을 순차적으로 배치한다.
상기 디포머는 변형될 시 점, 선, 면들로 결합되어 캐릭터 및 다양한 기하학구조(Geometry)들을 포함하는 형태로 만들어지게 되는 것이다.
즉, 다수 개의 디포머를 활용하여 캐릭터 모델링의 모양을 필요한 동작이나 움직임에 따라 변형시킬 수 있는 것이다.
상기 기하학구조(Geometry)들을 포함하는 형태를 변형시키기 위해서는 각각의 디포머를 이용하여 변형한다.
다만, 최종적으로 나온 변형된 모형을 보고 변형하기 전과 변형 이후 각 형태의 꼭짓점(Vertex)이 이동거리를 추출하여 하나로 통일된 스킨웨이트(Skin weight)에 적용한다.
도 1에 도시된 바와 같이, 상기 그래픽 사용자 인터페이스를 통해 작업자들에게 복잡하고 시간이 많이 소요되는 원하는 결과물인 스킨웨이트(skinweights)를 간단하게 획득하는 것이다.
상기 플러그인 프로그램에서 제공하는 그래픽 사용자 인터페이스는 그래픽을 통해 사용자가 작업할 수 있는 환경으로, 크게 상기 그래픽 사용자 인터페이스에는 사용자가 쉽고 직관적으로 실행이 필요한 순서대로 사용할 수 있도록 각 구성을 순차적으로 배치한다.
상기 플러그인 프로그램에서 제공하는 그래픽 사용자 인터페이스는 스킨웨이트(skinweights)를 적용할 조인트(joint)와 기하학구조(geometry)를 입력하기 위한 입력공간과, 격자(Lattice)를 활용하여 스킨 웨이트 결과 값을 추출하기 위한 추출공간으로 나누어진다.
상기 플러그인 프로그램에서 제공하는 그래픽 사용자 인터페이스는 레이아웃(layout), 텍스트뷰(textview), 리스트뷰(listview), 버튼(button), 시크바(seekbar) 등으로 이루어진다.
상기 입력공간은 조인트(joint)를 확인, 추가, 및 삭제할 수 있는 조인트(joint) 레이아웃과, 기하학구조(geometry)를 확인, 추가, 및 삭제할 수 있는 기하학구조(geometry) 레이아웃으로 이루어진다.
상기 조인트 레이아웃에는 추가된 조인트의 목록(list)을 출력하고 선택할 수 있도록 하는 조인트 리스트뷰와, 상기 조인트 리스트뷰에 모델링에서 선택한 하나 이상의 조인트를 한 번에 추가하는 Select Joints 버튼과, 상기 조인트 리스트뷰에 추가된 조인트를 모두 제거하는 Clear Joints 버튼과, 상기 조인트 리스트뷰에 하나의 조인트를 추가하는 Add 버튼과, 상기 조인트 리스트뷰에 선택된 하나를 제거하는 remove 버튼으로 이루어진다.
상기 기하학구조 레이아웃에는 추가된 기하학구조(geometry)의 목록(list)을 출력하고 선택할 수 있도록 하는 기하학구조(geometry) 리스트뷰와, 상기 기하학구조(geometry) 리스트뷰에 모델링에서 선택한 하나 이상의 기하학구조를 한 번에 추가하는 Select Geos 버튼과, 상기 기하학구조(geometry) 리스트뷰에 추가된 기하학구조를 모두 제거하는 Clear Geos 버튼과, 상기 기하학구조(geometry) 리스트뷰에 하나의 기하학구조를 추가하는 Add 버튼과, 상기 기하학구조(geometry) 리스트뷰에 선택된 하나를 제거하는 remove 버튼으로 이루어진다.
상기 플러그인 프로그램에서 제공하는 그래픽 사용자 인터페이스의 스크립트는 파이선 스크립트(python script)를 사용하는 것으로, 상기 스크립트가 적용된 그래픽 사용자 인터페이스를 사용자의 선택에 의해 각 기능을 실행하면 가상의 캐릭터를 만들 수 있고 애니메이션 편집 또는 합성이 가능한 소프트웨어 프로그램에 즉시 적용되는 것이다.
도 5에 도시된 바와 같이, 상기 모델링에서 붉은 원에서처럼 웨이팅할 조인트를 선택한 후, 입력공간의 조인트 레이아웃에서 Select Joints 버튼을 누르면, 선택된 조인트와 관련된 조인트들이 빈칸에 입력된다.
이때, 상기 조인트 이외에 사용자가 실수로 다른 오브젝트(object)를 선택하여 입력하는 것을 방지하기 위해 조인트만 선택이 되도록 파이선 스크립트(python script)에 적용했다.
상기 플러그인 프로그램에서 제공하는 그래픽 사용자 인터페이스에 적용되는 파이선 스크립트는 다음 명령어를 포함한다.
lSel=cmds.ls(sl=1, type="joint");
cmds.textScrollList("selectJoints_convertWeightsTSL", e=1, ra=1);
[cmds.textScrollList("selectJoints_convertWeightsTSL", e=1, a=sel) for sel in lSel]
상기 lSel은 값을 담을 수 있는 변수이다.
상기 cmds.ls는 리스트에 있는 것을 선택 또는 선택해제를 결정하는 함수이다.
상기 cmds.ls함수 안의 sl=1은 선택하라는 의미이며, 반대로 sl=0은 선택해제하라는 의미로 사용되고, type="joint"는 joint 타입을 가진 것을 말한다.
즉, 상기 모델링에서 조인트(joint) 타입을 가진 부분만 선택이 가능하도록 하는 것이다.
그리고 상기 cmds.textScrollList는 플러그인 프로그램에서 소프트웨어 프로그램에 해당 변경데이터를 적용시키기 위한 것으로, 조인트(joint) 선택을 즉시 소프트웨어 프로그램에서 적용시킬 수 있는 것이다.
상기 조인트 레이아웃의 Clear Joints 버튼에는 입력된 조인트 리스트들이 잘못 입력이 됐을 경우 모두 지우도록 하는 명령어가 적용되며. Add 버튼에는 선택한 조인트를 추가하는 명령어가 적용되며, Remove 버튼에는 선택한 조인트를 지우는 명령어가 적용된다.
그리고 상기 추출공간은 선택한 조인트(joint)에 격자(lattice)를 생성하는 Create Lattice on selected Joints 버튼과, 생성되는 격자의 수를 결정하는 Number 입력부와, 격자가 생성된 조인트에 기하학 구조(geometry)를 확인할 수 있도록 하는 퀵 테스트(quick test) 버튼과, 선택한 격자(lattice)의 기하학 구조(geometry)가 적용된 모양을 변경하는 Select LatticeGrp 버튼과, 상기 조인트(joint)에 적용된 격자(lattice)를 삭제하는 delete lattice 버튼과, 격자의 웨이팅 값을 추출하여 스킨웨이트로 전환하는 Convert lattice to joint weights 버튼으로 이루어진다.
도 6에 도시된 바와 같이, 상기 추출공간의 Create Lattice on selected Joints 버튼을 누르면 입력공간에 입력된 조인트와 기하학구조(Geometry) 위치에 격자(Lattice)가 생성된다.
이때, 상기 격자(Lattice)로 인한 기하학구조의 변형 없이 위치를 옮기기 위해서 상기 파이선 스크립트(python script)의 그룹화를 시켜주는 함수 commonParent(cp)를 활용하여 격자(lattice)와 ffdbase를 그룹화하였다.
도 7에 도시된 바와 같이, 상기 모델링인 신발 앞 부분을 상부로 회전시 도 7-a, 도 7-b, 도 7-c는 각각 추출구간의 Number 입력부의 숫자를 달리 입력함으로써 격자의 수를 달리하였다.
더욱 상세하게는 상기 도 7-a는 격자의 수를 5로 하였을 때의 변형 정도이며, 상기 도 7-b는 격자의 수를 17로 하였을 때의 변형 정도이며, 상기 도 7-c는 격자의 수를 62로 하였을 때의 변형 정도를 도시하고 있다.
상기 모델링에 맞는 변형 정도를 파악하여 Number 입력부에 숫자를 입력한다.
이때, 상기 Number 입력부는 모델링의 격자분할(Lattice division) 데이터와 연결하기 위해서 하기와 같이 파이썬 connectControl을 적용하였다.
cmds.connectControl('convertWeightNumberISG', lLat[1]+'.sDivisions'); cmds.setAttr(lLat[1]+'.sDivisions', num)
상기 connectControl는 Number 입력부의 숫자가 변경될 시에 즉시 해당 숫자에 맞는 조작을 소프트웨어 프로그램에 적용하는 것이다.
그러므로 상기 Number 입력부를 통해 캐릭터의 특징 및 성향에 맞게 격자의 수를 설정하면 소프트웨어 프로그램에 격자가 즉시 적용되는 것으로, 상기 격자의 수가 설정되면 즉시 모델링에 적용되는 격자의 수도 변경되어 직관적으로 확인할 수 있는 것이다.
도 8에 도시된 바와 같이, 상기 모델링에 적용되는 격자의 수를 결정한 다음에는 Quick Test버튼을 누르게 되면, 직접 조인트나 컨트롤러를 이용하여 기하학구조를 변경할 수 있게 되어 상기 모델링을 격자분할에 따라 형태가 잘 변형이 되는지 확인할 수 있게 된다.
그러므로 상기 Quick Test 버튼을 누른 이후에 모델링인 신발의 앞부분을 회전시킬 수 있는 것이다.
도 9에 도시된 바와 같이, 상기 Quick Test 버튼을 누른 후 모델링의 기하학구조를 변경함으로써, 상기 모델링 회전이 된 상태에서 그래픽 사용자 인터페이스에 있는 Select LatticeGrp 버튼을 눌러 격자(Lattice)를 선택한다.
상기 선택된 격자를 움직이게 되면 동시에 모델링과 매칭되는 격자가 변경되게 되어 변경되는 범위가 커지거나 작아지는 모습을 볼 수 있다.
예를 들면, 상기 선택된 격자를 좌측으로 움직이면 격자와 매칭된 모델링의 회전될 수 있는 범위가 줄어들어 신발의 앞부분 조금만 들리게 되며, 우측으로 움직이면 격자와 매칭된 모델링의 회전될 수 있는 범위가 많아지게 되어 회전되는 범위도 늘어나서 신발이 거의 전체적으로 들려질 수 있게 되는 것이다.
즉, 상기 선택된 격자를 좌우로 움직여 조작하면 회전되는 모델링의 point를 결정할 수 있다.
도 10에 도시된 바와 같이, 최종 마무리 단계로서, 상기 Convert lattice to joint weights 버튼을 누르게 되면, Number 입력부에서 입력된 격자의 수를 스킨웨이트에 적용한다.
그리고 상기 스킨웨이트에 격자의 수를 적용한 후, 더 이상 필요 없는 격자(Lattice)를 자동으로 지우는 것이다.
도 11에 도시된 바와 같이, 상기 Convert lattice to joint weights 버튼을 눌러 확인된 이후에는 더 이상 격자(Lattice) 디포머(deformer) 없이 스킨웨이트만 존재하는 상태가 된다.
도 12에 도시된 바와 같이, 상기 스킨웨이팅에 잘 적용었는지 Paint Skin Weights Tool을 열어 확인할 수 있다.
상기 본 발명을 통해 그래픽 사용자 인터페이스를 활용하면 수작업으로 스킨 웨이팅 하는 것에 비해 진행 처리 속도가 빠르며 결과물의 완성도도 높은 것을 확인 할 수 있다.
그러므로 상기 본 발명의 GUI를 통해 웨이팅의 효율성 증대하고, 비효율적인 시간 줄이고, 캐릭터의 특징에 따라 GUI를 통하여 빠르고 효율적으로 웨이팅 분배하고, 각각 떨어진 두 개 이상의 기하학구조(Geometry)를 연결하여 deform 함으로써 복잡하고 변형이 힘든 부분에 쉽고 빠르며 수작업으로 스킨웨이팅 작업 한 것 이상의 완성도를 보인다.
그리고 상기 본 발명은 스킨웨이트에 각각의 디포머의 이동거리를 적용함으로써, 스킨웨이트는 다양한 디포머들을 하나로 묶어주는 수단이 되며, Unity, 3ds Max 등의 다른 소프트웨어에 적용되지 않는 다수 개의 디포머를 변환하여 적용됨으로 호환성을 높여준다.
상기 스킨웨이트에 각각의 디포머의 이동거리를 적용하여 캐릭터 모델링의 모양을 필요한 동작이나 움직임에 따라 변형시킬 수 있는 것이다.
특히 상기 다수 개의 디포머 중 Wire, Lattice, 및 Cluster를 활용하여 변형된 모양을 조인트를 이용한 스킨클러스터 웨이트에 대입한다.
그리고 각각의 디포머의 이동거리를 추출하여 스킨클러스터에 적용시킨 후, 각각의 디포머 이동거리가 적용된 스킨클러스터는 각각의 디포머를 적용한 모양과 동일한 모양을 가진다.
따라서 본 발명 격자를 스킨웨이트에 적용하기 위한 그래픽 사용자 인터페이스 제공방법는 조인트(joint)와 기하학구조(geometry)를 선택하여 격자(lattice)을 적용한 후, 스킨웨이트(skinweights)로 변환하기 편리한 그래픽 사용자 인터페이스(GUI, graphical user interface)를 제공하는 플러그인 프로그램을 제공하고, 특히, 상기 그래픽 사용자 인터페이스를 제공하는 플러그인 프로그램을 통해 사용하기 편리하도록 스킨웨이트(skinweights) 생성시 격자(lattice)를 빠르게 적용하여 작업 진행을 효과적으로 하며, 캐릭터 셋업 시 불필요한 시간을 줄이며, 분리된 모델링을 직관적이 되도록 변형하고, 옵션을 활용하여 캐릭터의 특징과 성향에 따라 격자를 다르게 적용 가능한 격자를 스킨웨이트에 적용하기 위한 현저한 효과가 있다.

Claims (4)

  1. 가상의 캐릭터를 만들 수 있고 애니메이션 편집 또는 합성이 가능한 소프트웨어 프로그램에서 제작된 모델링에서 수정하고자 하는 부분을 그래픽 사용자 인터페이스를 제공하는 플러그인 프로그램을 통하여 데이터를 변경하여 입력한 후, 상기 입력된 데이터를 기반으로 모델링의 격자(Lattice)를 스크립트를 통해 연산 및 동작 처리하여 모델링의 보다 정교한 동작을 만들기 위한 변형을 최적화하여 모델링에서 스킨웨이트가 적용되기 힘든 부분들에 스킨웨이트를 간단히 적용함으로써 입력한 데이터를 기반으로 최종 생산물(output)을 획득할 수 있는 격자를 스킨웨이트에 적용하기 위한 그래픽 사용자 인터페이스 제공방법에 있어서,
    상기 플러그인 프로그램에서 제공하는 그래픽 사용자 인터페이스의 스크립트는 파이선 스크립트(python script)를 사용하는 것으로, 상기 스크립트가 적용된 그래픽 사용자 인터페이스를 사용자의 선택에 의해 각 기능을 실행하면 가상의 캐릭터를 만들 수 있고 애니메이션 편집 또는 합성이 가능한 소프트웨어 프로그램에 즉시 적용되는 것이며,
    상기 플러그인 프로그램에서 제공하는 그래픽 사용자 인터페이스는 스킨웨이트(skinweights)를 적용할 조인트(joint)와 기하학구조(geometry)를 입력하기 위한 입력공간과, 격자(Lattice)를 활용하여 스킨 웨이트 결과 값을 추출하기 위한 추출공간으로 나누어지는 것이며,
    상기 입력공간은 조인트(joint)를 확인, 추가, 및 삭제할 수 있는 조인트(joint) 레이아웃과, 기하학구조(geometry)를 확인, 추가, 및 삭제할 수 있는 기하학구조(geometry) 레이아웃으로 이루어지되,
    상기 조인트 레이아웃에는 추가된 조인트의 목록(list)을 출력하고 선택할 수 있도록 하는 조인트 리스트뷰와, 상기 조인트 리스트뷰에 모델링에서 선택한 하나 이상의 조인트를 한 번에 추가하는 Select Joints 버튼과, 상기 조인트 리스트뷰에 추가된 조인트를 모두 제거하는 Clear Joints 버튼과, 상기 조인트 리스트뷰에 하나의 조인트를 추가하는 Add 버튼과, 상기 조인트 리스트뷰에 선택된 하나를 제거하는 remove 버튼으로 이루어지는 것이며,
    상기 기하학구조 레이아웃에는 추가된 기하학구조(geometry)의 목록(list)을 출력하고 선택할 수 있도록 하는 기하학구조(geometry) 리스트뷰와, 상기 기하학구조(geometry) 리스트뷰에 모델링에서 선택한 하나 이상의 기하학구조를 한 번에 추가하는 Select Geos 버튼과, 상기 기하학구조(geometry) 리스트뷰에 추가된 기하학구조를 모두 제거하는 Clear Geos 버튼과, 상기 기하학구조(geometry) 리스트뷰에 하나의 기하학구조를 추가하는 Add 버튼과, 상기 기하학구조(geometry) 리스트뷰에 선택된 하나를 제거하는 remove 버튼으로 이루어지고,
    상기 추출공간은 선택한 조인트(joint)에 격자(lattice)를 생성하는 Create Lattice on selected Joints 버튼과, 생성되는 격자의 수를 결정하는 Number 입력부와, 격자가 생성된 조인트에 기하학 구조(geometry)를 확인할 수 있도록 하는 퀵 테스트(quick test) 버튼과, 선택한 격자(lattice)의 기하학 구조(geometry)가 적용된 모양을 변경하는 Select LatticeGrp 버튼과, 상기 조인트(joint)에 적용된 격자(lattice)를 삭제하는 delete lattice 버튼과, 격자의 웨이팅 값을 추출하여 스킨웨이트로 전환하는 Convert lattice to joint weights 버튼으로 이루어지는 것을 특징으로 하는 격자를 스킨웨이트에 적용하기 위한 그래픽 사용자 인터페이스 제공방법
  2. 삭제
  3. 삭제
  4. 삭제
KR1020160097526A 2016-07-29 2016-07-29 격자를 스킨웨이트에 적용하기 위한 그래픽 사용자 인터페이스 제공방법 KR101775839B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160097526A KR101775839B1 (ko) 2016-07-29 2016-07-29 격자를 스킨웨이트에 적용하기 위한 그래픽 사용자 인터페이스 제공방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160097526A KR101775839B1 (ko) 2016-07-29 2016-07-29 격자를 스킨웨이트에 적용하기 위한 그래픽 사용자 인터페이스 제공방법

Publications (1)

Publication Number Publication Date
KR101775839B1 true KR101775839B1 (ko) 2017-09-06

Family

ID=59925144

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160097526A KR101775839B1 (ko) 2016-07-29 2016-07-29 격자를 스킨웨이트에 적용하기 위한 그래픽 사용자 인터페이스 제공방법

Country Status (1)

Country Link
KR (1) KR101775839B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190048507A (ko) * 2017-10-31 2019-05-09 에스케이텔레콤 주식회사 3차원 메쉬 데이터 간소화 방법 및 장치
KR20220000191A (ko) * 2020-06-25 2022-01-03 동서대학교 산학협력단 Proxy Modeling과 DeltaMush 기법을 이용한 Cage Weight 방법
WO2022020746A1 (en) * 2020-07-24 2022-01-27 Kitestring, Inc. Systems and methods for computer animation using an order of operations deformation engine

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002092641A (ja) * 2000-09-19 2002-03-29 Dream Publishing:Kk 外殻による3dモデルアニメーション生成方法及びその装置並びにそのプログラムを記録した記録媒体

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002092641A (ja) * 2000-09-19 2002-03-29 Dream Publishing:Kk 外殻による3dモデルアニメーション生成方法及びその装置並びにそのプログラムを記録した記録媒体

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190048507A (ko) * 2017-10-31 2019-05-09 에스케이텔레콤 주식회사 3차원 메쉬 데이터 간소화 방법 및 장치
KR102005492B1 (ko) 2017-10-31 2019-07-30 에스케이텔레콤 주식회사 3차원 메쉬 데이터 간소화 방법 및 장치
KR20220000191A (ko) * 2020-06-25 2022-01-03 동서대학교 산학협력단 Proxy Modeling과 DeltaMush 기법을 이용한 Cage Weight 방법
KR102366693B1 (ko) 2020-06-25 2022-02-22 동서대학교 산학협력단 Proxy Modeling과 DeltaMush 기법을 이용한 Cage Weight 방법
WO2022020746A1 (en) * 2020-07-24 2022-01-27 Kitestring, Inc. Systems and methods for computer animation using an order of operations deformation engine
US11631209B2 (en) 2020-07-24 2023-04-18 Kitestring, Inc. Systems and methods for computer animation using an order of operations deformation engine
US11948240B2 (en) 2020-07-24 2024-04-02 O3 Story Technologies, Inc. Systems and methods for computer animation using an order of operations deformation engine

Similar Documents

Publication Publication Date Title
CN104484522B (zh) 一种基于现实场景的机器人模拟演练系统的构建方法
KR100707841B1 (ko) 3차원 목표곡선을 이용한 곡면 변형 장치 및 그 방법
EP3038060B1 (en) 3D modeled object defined by a grid of control points
KR101775836B1 (ko) 3차원 캐릭터 움직임을 변환하는 플러그인 프로그램을 이용한 3차원 캐릭터 동작 구현방법
KR20120089707A (ko) 기계가공 시뮬레이션과 그 시뮬레이션을 시각적으로 제공하기 위한 방법, 컴퓨터 시스템, 그리고 컴퓨터 프로그램 제품
KR101775839B1 (ko) 격자를 스킨웨이트에 적용하기 위한 그래픽 사용자 인터페이스 제공방법
JP2023071722A (ja) 画像を入力とする関数を学習するためのデータセット
US9519988B2 (en) Subspace clothing simulation using adaptive bases
US20190287288A1 (en) Automatically generating quadruped locomotion controllers
CN103150416B (zh) 设计由深度元素表示的建模体
US9892485B2 (en) System and method for mesh distance based geometry deformation
CN104778736A (zh) 单视频内容驱动的服装三维动画生成方法
Zhang et al. An interactive product customization framework for freeform shapes
CN110176063B (zh) 一种基于人体拉普拉斯变形的服装变形方法
Wang et al. From designing products to fabricating them from planar materials
US10482646B1 (en) Directable cloth animation
KR101782269B1 (ko) 플러그인 프로그램을 사용하여 넙스 및 폴리클을 생성 및 적용하는 방법
Li et al. Computer-aided 3D human modeling for portrait-based product development using point-and curve-based deformation
US9639992B2 (en) Methods and systems for multilevel editing of subdivided polygonal data
JP2023071137A (ja) 顔表情を生成するための方法及びそれを利用する3次元グラフィックインターフェース装置
KR101530895B1 (ko) 3차원 캐드로부터 2차원 캐드를 위한 오브젝트 데이터 추출 방법 및 2차원 캐드로부터 3차원 캐드를 위한 오브젝트 데이터 추출 방법
JP2023512129A (ja) スキンアニメーションの微細詳細を推測する方法
Fukusato et al. View-dependent formulation of 2.5 d cartoon models
Yap et al. Development of an augmented reality-based G-code generator in a virtual Cnc milling simulation
KR20170096400A (ko) 기계가공 시뮬레이션을 시각적으로 제공하기 위한 프로그램 제품

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant