ba_Fractal4D 기본형

 

위에는 Age% 로 파티클 텍스쳐의 Distortion 을 조절해준 것이다. 하지만 약간 패턴이 보이긴한다.

아래와 같은 예제 도 있다.

파티클 덴시티의 Particle Color 에 BA Fractal 4D 를 쓰고, Distort 에 넣는 경우도 있다.

baFluid 기본형

Wind Force + Turbulize Around Value 이용한 연기 움직임

Digital Tutors 에 Softimage 2011 Essentials Learning 의 3번 파일 내용은 연기를 자연스럽게 살랑살랑 움직이게 하는 것을 보여주고 있다.

의외로 단순하고 간단한 방법으로 예쁘게 움직이도록 했었다.
나도 작업을 하면서 자꾸 파티클의 움직임을 시뮬레이션 스럽게 만들려고 노력했는데, 이것을 한번에 해결해주는 방법이기도 한 것 같다.

Wind Force 의 Wind Speed 에 Turbulize Around Value 를 넣는 것이다.
물론 바람이 한방향(한 축 기준)으로만 움직일테고, 공기압의 변화 같은 것은 표현이 안되겠지만, 다른 Force 로 그것은 충분이 커버 할 수 있을 거라 생각된다. (바람 방향도 Turbulize 시키면 되겠지.)

어떻게 생각하면 너무나 간단한 것인데 난 왜 항상 어렵게 생각했나 모르겠다.

어쨌던, Turbulize Around Value 값을 이용하면 이쁘장하게 나오는데, 아래 처럼 나온다.

 

Images -?? Digital Tutors – Softimage 2011 Essentials Learning

파티클 볼륨 렌더링 연구

파티클 한개 가지고 여러가지 테스트를 하면서 얻은 생각이 있다.

Density 에 Fractal 이나 Cell 을 넣고 볼륨 렌더링을 하는 것은 뭉개 구름 같은 볼륨이 큰곳에나 어울릴 것 같다는 것이다.

얇은 연기, 연속적인 연기효과 같은 것은 최대한 파티클을 연기처럼 움직이게 하고 파티클에 Density를 Limit 을 하여 연기를 표현하고, 부가적으로

파티클 텍스쳐에 Fractal 이나 Cell 같은 것을 넣는 게 맞는 것 같다.

또한 파티클 덴시티 셰이더의 Shape and Rotation 탭에 Alignment – Type 은 None 으로 해야,

파티클 Fractal 과 Cell 등의 재질이 파티클 회전에 따라 같이 회전이 된다. ?이때 Rotaion 은 모두 0 값이더라도 회전에 영향이 안미친다.

Aligment 는 파티클이 회전을 안한다고 쳤을 때 덴시티 자체를 회전시키고 싶을때 쓰면 될 듯하다.

  1. 파티클을 작고 많이 하여서 덴시티를 Limit 해준 테스트 ( 이전에 올린바 있음)

  2. 파티클이 하나지만 Fractal 을 걸고 파티클에 직접 회전을 해준 테스트

Volume Cloud Shader 의 Distort Texture 예제

Particle Volume Cloud 셰이더
- Rayleigh 를 이용하고, Normal Shading 을 켜서 셰잎을 더욱 잘 보이게 했다.
- Fractal 노드의 칼라를 Distort Texture 에 넣어 인텟시티를 조절해줬다.

Particle Density 노드
- Metaball Shape 에 값을 주고
- Desity Limit 에 값을 낮춰줬다. 이값은 연기같이 만들때 필요하기도 하다.

PointCloud 와 Instance Mesh 재질 우선순위에 대해..

Mentalray 와 Arnold Render에서
PointCloud 에 Instance Mesh 로 준다고 했을 때, 재질은 Mesh 의 재질이 우선순위가 된다.

그러므로 두개 모두 재질을 가지고 있더라도 Mesh의 재질을 만져주면 된다.

하지만 파티클을 바로 재질을 주는 경우가 아니라면, 헷갈리므로 PointCloud 에는 셰이더를 완전히 끊어주도록 한다.

 

 

 

 

복수 파라미터 제어를 위한 반복문 예제

import win32com.client
from win32com.client import constants
 
app = Application
 
oSel = app.Selection
 
for i in range( 0, oSel.Count ) :
 
	#app.SIAddCustomParameter( oSel(i), "ICE_Mode", "siBool", 0, 0, 1, "", 2053, 0, 1, "", "" )
	#app.SetValue( str( oSel(i) ) + ".ICE_Mode", False, "")
	#app.ExportModel(oSel(i), "\\\\10.132.19.196\\ibrix\\drama_team\\Library\\Character\\XSI_Model\\People_7080\\" + str( oSel(i).Name ) + ".emdl", "", "")
	app.AddClip( oSel(i), "Sources.Animation_Clip_Sets.Walk_01_Loop_eani", "", str( oSel(i) ) + ".Mixer.Mixer_Anim_Track", 1, "", "", "", "")

J스크립트에서 Application 얻는 방법

J스크립트로 Application 을 얻어서 짧게 프로그래밍하려면
XSIFactory 오브젝트 모델을 이용해서 CreateObject 메소드로 XSI.Application 을 만들어주면 된다.

var app = XSIFactory.CreateObject( "XSI.Application" );
var oRoot = app.ActiveSceneRoot;
var obj = oRoot.FindChild2( "crvlist2" );
 
app.LogMessage( obj.FullName );

New Start in MBC

2011년 10월 4일..
일산 MBC, CG팀으로 이직했습니다.
실무경험을 쌓아야한다는 생각에 결정한 일이죠.
바쁘고 정신없는 일정으로 온라인 커뮤니티 활동은 잘 못하겠지만, 수시로 블로그를 통해 좋은 내용과 결과를 올리도록 할께요.

From. 강병철

Custom ICE 노드 – Normalized Curve 소스

얼마전에 Normalized Curve 라는 이름의 커스텀 ICE 노드를 만들었었어요.
필요하신분은 프로그래밍 공부 겸 사용해보세요.

당연히 소스는 C++ 입니다. ICE 노드 개발은 C++ 밖에 안되거든요.

소스를 컴파일하고 dll 을 플러그인 파일에 위치해도 ICE 노드 상에서는 안나올겁니다.
왜냐면 소스 중간에 카테고리 넣는 부분을 주석처리했어요.

그 이유는 이 노드는 그냥 사용하는게 아니고 가공해서 컴파운드로 만들 목적이었거든요.

질문은 메일로 부탁할께요.

CnD_Normalized_Curve_Plugins_Source

겹치는 파티클 제거하는 방법

캐릭터 Velocity 를 자유롭게 회전시키기

 

예전에 상당히 헷갈렸었다. 그래서 기록을 해둔다.

파티클을 Velocity 를 다른 곳에 보게 하고 파티클 Orientation 을 돌려 군중무리의 시전을 돌리곤 했는데, 그렇게 되면 Velocity 방향과 시선의 방향이 다르다.

결국 Velocity 를 조절함으로서 Velocity 만으로 초기 방향과 시선을 결정해야 되는 것이다.

위에 대로 Axis and Angle to Rotation 으로 0,1,0 로컬축을 돌려주고, 캐릭터의 앞이 0,0,1 축이 되므로 이것을 회전 시켜주면된다. 그럼 깔끔하게 Align on velocity 컴파운드를 연결하여 시선이나 몸을 돌려줄 수 있다.

Orientation 과 Velocity 는 엄연히 다른것이고, 서로 연관은 없다.

Normalized Curve Data

xsiaddon 플러그인 (x64 전용)

CnD_NormalizedCurve

Alembic for Softimage 1.0 by Helge

 

Helge Mathee 가 새로운 플러그인을 만들었어요.
알렘빅(Alembic)이라는 이 플러그인은 메쉬를 프레임별로 캐쉬로 저장하는 것입니다.
알렘빅은 소니픽쳐스가 오픈 소스 용도로 개발한 것으로 알고 있습니다.
이를 이용해 Helge 가 소프트이미지용 Alembic 용 플러그인을 만든것이죠.

애니메이션 되어있는 메쉬는 캐쉬로 소프트이미지, 마야, 맥스 등 간으로 서로 보낼 수 있을 것이에요.
확인은 안해봣지만 emPolygonizer 같은 것도 캐쉬로 뽑아서 마야에서 사용할 수 있기를 기대해봅니다.

 

 

ICE Particle Retiming

ICE 파티클을 만들고, 재생 타이밍을 마음대로 조절하기 위해 생각 좀 해봤다.

리타이밍을 하기 위해서는 정교한 움직임의 캐쉬가 필요한데,

ICE 트리 패널에 Simulation Setting 이라고 있다. 그곳에서 샘플을 올리면 된다.

동영상으로 두가지 버전을 만들어 봤다.