2012年11月28日水曜日

Softimage Script : 背面のポリゴンを作成

やっとネット復帰しました。


背面のポリゴンを作成

旗を作るんですが、ポリゴンが両面必要な仕様でした

違いを作るためにUVでパターンを作ります
最初から両面で作るとUVが面倒ですので
片面ですすめてあとで両面化します

10パターン以上を1000個以上

作業中・・・1000本以上を配置完了

両面化、忘れてた orz < イマココ

そんな時のスクリプトです


Script


#Python
#1128 2012
#選択したオブジェクトの BACKPolyを作成

app = Application; log = app.Logmessage
from win32com.client import constants as c

#ログの表示を消す
cmdLog = app.Dictionary.GetObject( "preferences.scripting" )
cmdLog.cmdlog.value = False

#クラスターを削除するか選択
deleteCluster = Flase #Trueにした場合クラスターは削除されるが、距離が無効になる

#背面ポリゴンの距離
backPolyDistance = -0.02

#裏面ポリゴンの作成ルーチン
def createBackPoly(outCluster):
 oObj = app.Selection(0)
 if oObj.Type != "polymsh":
  return 
 oGeo = oObj.ActivePrimitive.Geometry
 oSub = oGeo.Polygons.SubComponent
 op = app.DuplicateMeshComponent(oSub, "siPersistentOperation", "", "", "", "", "", "", "", "", "", "", "", "", True)
 op = app.ApplyOp("Push", oSub, 3, "siPersistentOperation", "", 0)
 op(0).ampl = backPolyDistance
 nSub = oGeo.Clusters("Polygon_Auto").CreateSubComponent()
 oGeo.Clusters("Polygon_Auto").Name = "BackFace"
 app.ApplyTopoOp(u"InvertPolygon", nSub, "siUnspecified", "siPersistentOperation", "")
 outCluster.Add(oGeo.Clusters("BackFace"))


def getMeshs():
 oColl = XSIFactory.CreateObject("XSI.Collection")
 oColl.Unique = True
 oColl.Items = app.Selection
 return app.SIFilter(oColl.Expand(),c.siPolyMeshFilter)


def main():
 oMeshs = getMeshs()
 oClusterColl = XSIFactory.CreateObject("XSI.Collection")

 #オブジェクトの数繰り返す
 for oMesh in oMeshs:
  app.SelectObj(oMesh)
  createBackPoly(oClusterColl)
  
 #選択しなおし 
 app.SelectObj(oMeshs)
 
 #BackFaceクラスターをを削除
 if(deleteCluster):
  app.DeleteObj(oClusterColl)
  
main()


高速化にあたって

コマンドモデルを多用してるため、
ログの非表示など高速化とかしてます

VBS - JScript の For Loop Performance について
myaraさんのこの記事を参考にしてます、ありがたいこってす。

コマンダーは必見デス

2012年11月12日月曜日

Math : UVの面積を求める

いやー、ウチのネットワークが繋がらなくなって、はや1週間です。
清い生活をしております。

UVTools

最近はUVのプラグインを2013にあわせて再開発しております。
一応、再活用できるように、ヘッダを使ってみたり、cppをわけてみたり、
少しずつ出来る事を増やして行ってます

そのなかで、UVの面積を出す必要が出そうなので、
以前からチェックしてたサイトをメモしてみました。

多角形の面積
うほ、こんなに簡単で良いの!?
スバラシイ (≧▽≦)ゞ

2012年11月2日金曜日

Camera ? : 全周囲動画

You need to watch this ViewCam 360 vid of a Red Bull F1 car


昔ディズニーランドでみた事あるー的な動画
素晴らしー、コレとヘッドマウントで完璧だ