2012年12月27日木曜日

Tool : ToolBag : 環境光を設定する

簡単にリアルタイムの画像をビューイング出来る、
Toolbagを購入、これもクリスマスセールで3,000弱

環境光の設定の仕方を調べる

ライティングの環境光について調べてみた
代表的なHDRImageは dds,pfm

pfmはHDRShopのフォーマット形式らしい、
なのでパス

DDS
普通に32bit保存できますな・・・

ということで、撮りためた
自作HDR全周囲画像の出番です
やっとSkyDomeフォルダが活きてくるのね orz


撮影用のフルサイズですので、
Photoshopで32bitのHDR画像を、
リアルタイム用に1024x512にリサイズし、
dds形式で保存します(nVidiaPlugin)

Latitude/Longitude Panorama対応と書いてあったので、
そのままToolbagで読み込みます。
画像は勝手にCubeMapに変換されるようですね。

ね、簡単でしょ
ってぐらい簡単に出来ました



これをいったん.env独自形式で保存します、
一度書き出さないと駄目みたいですね。


.env中身はただのファイルのパスみたいです
メモパッドで開いてみるとなかなかに興味深いです

そのほかにpfm,ddsが
・background.pfm
・diff.dds
・skin.dds
・spec.dds
っと出来てました。
おそらく、それぞのれMapなのでしょうね-ふむー。


で、Toolbagで今一度先ほどのenvデータを
読み込みライトの設定を完了

viewメニューの Draw skyboxで背景の表示です。

お疲れ様でした

Blog : Program : FrontPage

Blogではないけれど、
Programについて、かなりまとめられてあるWiki
C++,OpenMP,Cuda,OpenGL,SPHまで!

わかるようになるとイイねぇ
FrontPage

nDo2 : dDo : PhotoshopPlugin

テクスチャを作っていると
ノーマルマップを直接手書きできればいい
と思うときがあります。

特にローポリで製作する
背景は顕著だと思います
(わざわざハイポリを作るのも面倒だし)

あと、ビルボードの植物とか

そういったときにPhotoshopの
PlugInではありますがnDo2と
いった選択肢がありました

以前から欲しく、予定をしてたのですが
ちょうどクリスマスセールが始まったので25%Offで購入


と、サイトを良く見ると
dDoなんてツールがあるではないですか。


dDo


これもPhotosopのPluginではありますが
テクスチャをほぼ自動で製作する機能のようです

コレぐらい自分で作れば?
 と、いわれそうですが

現在は速度と、物量と、
品質の均一化から、必要かもしれません
というか、むっちゃほしいっすね

クリスマスセールかー。悩むわー
機能紹介動画など

サイトを覗けばいろいろと動画があるようです

Quixel


近況
HDDの容量がずっと赤だったので、
やっとこ3THDDを3台購入
2T + 1T > 3Tにバックアップしてたんですが
3T > 3T, 3T >3Tに変更
ただ、たまにHDDをWIndows7 64bit が見失う事態に遭遇
現在 ハードディスク構成の再スキャンで見つけたんだが、
ちょっと不安な状態に
あと2年はがんばってクレー

2012年12月25日火曜日

Blog : C++ :C++プログラミング日記

C++プログラミング日記

速さを求める男?のブログ、まだまだ、参考にならないけどメモ


猫Windows


SoftimageのPPGは
Iconボタンが使えない orz


いろいろやってみたんだけど、
(Changeイベントでボタンを模倣したり)
UNDOにもChangeイベントが反応してしまうとか
上手く行かなかった

ということで、
諦めてWindowsAPIを勉強する事に
猫Windowsを読む

いま、流行のQTとかと、思ったけど、
大きく道をそれるし、やはり基本から・・・


なんか、ドラゴンを倒すのに剣が必要で、
剣を作る為に素材
はたまた、かまどまで作り始めるしまつ

ぐぎぎぎ・・・。
最近の猫は高度じゃのう

たぶんドラゴンスレイヤー"Modo"を
買った方が幸せになれる

2012年12月21日金曜日

Color : ノンデザイナーのための配色理論

センスは知識で補う。知識の足りない物は先人に頼る。

他力本願寺

ノンデザイナーのための配色理論
Webアプリ

Modeling : Topology : Anatomy : Human Experiments

3D人の中で紹介されていた人なんですが、

人体のトポロジーがあまりにもきれいだったのでメモ

Human Experiments

これは美しいなぁ


近況
やっとマスターアップ終了しました〜。
今回は作業以外のトラブルが多く、マジしんどかったーーー。

2012年12月10日月曜日

Blog : ペパクラ

仮設製作日記
おおーペパクラとローポリ!
よいね〜


■近況
絶賛修羅場中!!!
周りが全く見えないーーーエヴァみたいー、選挙わかんねー

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


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

2012年10月29日月曜日

2012年10月25日木曜日

雑記

背景の仕事の傍ら、進めている事


Softimage Plugin 開発


お昼休みC++
昼休みを使ってぼちぼち開発

まだ、エッジの距離による分割と格闘中


C++でのボタンイベントをやっと理解

あとのタスク
・追加されたカスタムプロパティの自動削除
コレができればベータとして公開できるかも


カメラ パノラマ撮影

Tokina 10-17mm FishEyeレンズを購入

パノラマ撮影を練習するも、光軸のずれなど、考慮すべき問題が多々あり
合成ツールPTGuiでも上手くいかなかったりする
日が短くなって撮影回数が減った orz


というわけで、いろいろ進めてはいるんですが、
成果が出てないです

アヒャ!

2DPaint : INEI Concept Art Tutorial 01

INEI Concept Art Tutorial 01


メモ

2012年10月23日火曜日

MAC OSX : サーバーにコピー中にエラーで止まる ".AppleDouble"

DTPではMACを使ってます

NASサーバーにバックアップをするんですが、
まれに".AppleDouble"があって、コピーで来ません
なんて警告がでてコピーが止まります

これで以前やらかした事があるので
不可視ファイルを削除しようと思います


Rootになる

".AppleDouble" なんですが不可視フォルダで
通常ではアクセスできない設定になってます

Root,SuperUserの権限が必要になります

これは管理者権限より上のユーザーなのでさくっとなりましょう

Macでルートユーザ(root user)を有効にしてログインする方法
自分はこれがわからずに PassWord を聞かれてチンプンカンプンでした


ターミナルを利用してコマンドで削除する

次に、ターミナルを利用して、ファイルを削除します
ファイルをもどせない。。 [Netatalk]

その際、フォルダのPathを取得しなければなりませんが、
標準ではこの方法が一番簡単なようです

※Pathを取得する
Macでアイテムのパスを簡単に入力する方法

Pathの記述ですが、
スペース等入っていると正常に認識しません
"hogehoge" でくくる事にしましょう


まとめ

どうでしょう、他力本願なこのブログ orz

UnixベースのMAC OSX なので、ユーザー権限にウルサいですが、
最近のOS自体、ユーザーに触らせない仕様になっているようです

まあ、システム関係をいじってしまうので ご利用は計画的に

しかし、MACめんどくせぇ orz

2012年10月22日月曜日

Camera : WiFi内蔵のSDカード

遅いWiFi内蔵SDカードにサヨナラ!デジタル一眼レフのWiFi化なら絶対コレ!PQI Air Card

WiFi内蔵のSDカードですね。
カメラのバッテリーを消費するので、敬遠してますけど
D90に対応してるので メモ

2012年10月11日木曜日

Blog : 3DModeling : Got Wires ?

GotWires ?

最近TLに良く流れてきてる、
モデルのワイヤーフレームを集めたブログ

ローポリが多く△無双状態なので、
こういったモデリングをした事がほぼ無いのが正直なところ


モデリング、テクスチャリング、コーディングはある程度取得しておきたいスキル

3D Tool : SpeedTree Architect 最下位 Ver登場

SpeedTreeのサイトを覗いたら、
SpeedTree Architect なんて物が登場してました。
今までのStudioの下位Verにあたるようです。

機能比較を見ると
・アニメーション関係に必要なボーン
・フリーハンドでの描画
などの機能が削られてます。

静止画に特化した感じでしょうか?

値段もその分抑えられております


自然物の作成は当たり前でありながら
製作コストが高いですねー
パターンも必要だし

悩めるねぇ

2012年10月7日日曜日

3DMaxPlugin : 3pTools

3PointStudio


初めて知りましたが、そのToolが、すばらしかったので紹介

四角ポリを縦横無尽に描画してます。

ポリゴンモデリングはどのツールでも
同じようなことは出来るようになりましたが

まだまだ進化の余地はあるようですね~

SoftimagePlugin : meshPaint Source

sicommunity

Sourceが公開されてルーーー
即DL


■Plugin開発近況

距離による分割をずっと開発してるのですが、
とりあえず、動くところまで行きました

あとはC++でのPPGのボタンイベントなんですが
ちょっと難しいかも~

2012年9月28日金曜日

3DPrinter : THE FORM 1

THE FORM 1

いや、コレ欲しいでしょ
光造形なら、複雑な構造も問題無し
インターナショナルは3000ドル弱

KickStaterですね。最近熱いな〜

あとは製作するデータだけ・・・。そのデータが無い orz

2012年9月25日火曜日

3D Tool : FlowMap Painter

FlowMap Painter ベクトルマップをペイントできるツール。

まだ詳しく見てないけど、
テクスチャの移動も出来るの?
リピートしてるみたいだけど

コレガできるとUVアニメーション楽になりそうだな〜

Softimage ICE : Math : MATH FOR ARTISTS

MATH FOR ARTISTS

良く来日されているToddさんかな?

Softimage ICEで、数学を利用し操作する方法を、 簡潔にまとめられたPDFがあります。


メモメモ

2012年9月20日木曜日

PhotoshopScript : レイヤーをとびとびに選択

たこなぐりの日々さんから

Psで飛び飛びでレイヤーを複数選択するってスクリプトじゃ出来ないみたいだけどなんとかしてみた。

Photoshopで、スクリプトログを書き出すツールがあるみたい!

これで、開発楽になるかもしれませんな〜

ただ、正直Photoshopのスクリプトは面倒で触りたくないのデスー
開発者に優しくない環境。

Softimageさんの親切さが身にしみるぐらい
英語、日本語の問題もあるし・・・。


と言う事ですが効率化を狙うなら避けては通れないよね!!!


近況
社員旅行で鹿児島行ってきました。
最初の電車が落石警報で止まったり、
台風が直撃したりで、

なかなかハードな旅行でした orz

2012年9月8日土曜日

ペパクラ : さんけい(ミニチュア会社)



トラス構造かっけー。写真に意味はありません。

仕事でペパクラを作る機会があったのですが、
調べ物をしてる最中模型屋さんのペパクラを発見

さんけい


ペーパーに厚みがある・・・
ジブリの建物がたくさんあり、見てるだけでウットリです。


というわけで、驚きのメモでした。

紙に印刷を前提とする自分だと、
こんなの作れないよな〜 orz
日本は広いぜ


近況

現在撮影の勉強中。HDR天球撮影だけどね。

あとiPhoneを手に入れたので、おどろき とまどってます(w
ちょっと、やる事が多くて浮き足立ってる感じ

SIのプラグイン開発に身が入りません orz

2012年8月24日金曜日

Camera : Nodal Ninja はじめました

NodalNinjaがやってきた〜


大阪の関税で何日か足止めを食らいましたが、
1週間ほどで届きました(喜

税金、送料で+7000円ぐらいだけど。
日本に無いならしょうがないよね orz

※代理店があるのを知ったのは買った後だったけど
 同じ値段でPTGui PROが買えたので良しとします


早速、早起きをして、撮影テストに

広角,魚眼レンズが無いので、
D90に標準でついてたレンズで一番広角な18mmのほうで
横10x縦3xブラケット3で90枚です
汗だくです orz


画像は一緒に出力されるJpegを補正したもの
(ブラケットの -補正の物が出力されたみたい)

PTGui、VerUPしてたみたいで、
整列状態の物を合成できるようになってました

HDRのため、補正は無し、
リニア状態にしてからの加工になります。
20k x10kのHDR画像が出来ました

撮影は往復含めて40分圏内なのでw
積極的に練習して行こうかと思います

2012年8月23日木曜日

Camera : Panorama

次のステップに
アクセサリー Nodal Ninjaを調査してるのですが、
日本のサイトで、撮影の仕方など詳しく解説してるサイトがありました。メモ

写真道場
 ふむーん。カメラ側からパノラマに行った口ですな〜。書籍も出しているようです


旅用動画三脚考-2
 あと、旅行用の三脚にこういった物があると教えてもらいました
 調べれば中国製ばかり。中国もメーカーとしてしっかりとしてる物を作ってきてるようです
 日本にはカメラ用アクセサリは少ないですよね〜
 非常に勿体ない orz



夜景の天球画像



今回の仕事でビル街の天球が必要だったのだが、
よいパノラマ画像が見つかりませんでした

関西に旅行する機会があったので
ろくな機材がないものの、三脚とカメラだけでがんばってみました


それが上の写真というわけ、ビルの上部も取れてないけど orz

問題点
・バッテリー  どこを写しているか確認する為にビューを多用するので、すぐにバッテリーが上がる
・露光時間が長くなる
・どこを写しているかわからなくなる
・暗くて、作業が難航
・不審者に間違われそうw


対策
・バッテリー はパックの予備、表示に頼らない撮影
・露光時間 魚眼レンズを導入する事によって枚数を減らす
・どこを写しているかわからない。Nordal Ninjyaの導入
・暗い 懐中電灯
・不審者(どうする?)


などが反省点
うーん、夜間撮影は難しいぞ。
思った以上に、問題がもりだくさんだ〜

あと時間帯は9-10時が最もビル、マンションの電気がついてるかも!?

2012年8月22日水曜日

Camera : SmartTrigger

スマートフォンでリモート撮影できるというもの
SmartTrigger
対応にD90が無かった
名機だとは思うんだけど、多分に外されやすいんかな orz

コレ系の開発に支援金できる試みはいいよなぁ。

しかし、リモート系には多々不満が
電子工学学んでおくんだった〜

2012年8月14日火曜日

Camera : 三脚買った

三脚買ったー
D90用のリモートコントローラー買ったー
SDカードの32Gbかったー

借金で o... rz



実験


というわけで、実験してみました。
子供のキャッチボールに付き合うという前提でしたので、
まえをうろちょろしている足の短いのが自分ですw


ほとんど補正して無いのでくすんで見えますな。



タイムラプス見本


機材も段違いですが、かっこいいっすな~。

T-RECS - Night Skies from T-RECS (Timelapse Recordings) on Vimeo.












パノラマ

三脚を利用しているので、パノラマはかなり正確に撮れるようになりました。
いままで、なかったほうがどうかしてるのですが orz

あと、Microsoft ICEのVerが上がり16BitTiffまで、使用可能になってました。
実際コレぐらい簡単で綺麗につないでくれるソフトは無いと思います、無料だしな

2012年7月25日水曜日

宣伝 : 公開されました〜

正式に発売が決まりましたので告知です〜

やっと本発売です!


公式サイト

引き続き背景製作として参加させてもらってます


走行性能が調整されてドリフトが
可能になりました

最終コーナーを滑らせ、
エアロモード>ブーストときれいに繋がると脳汁がでます

レース好き、サイバー好きな人は手に取ってもらえたらうれしいです。

2012年7月12日木曜日

Sculptris : AutoHotkey - SculptrisIO

スカルプトリスとPS,SAIの連携ツールです。



Link

ちょっとした下準備が必要ですが、なかなか便利そう!
AutoHotKeyを利用されてるようです。
少し調べてみる必要がありそう。

開発されてるのは FlightUnitさんのモデラーさんです。
あそこは何でもするなぁ

2012年7月7日土曜日

2012年7月4日水曜日

2012年6月30日土曜日

Shader : シェーダーしよっ☆

最近Shaderの話しが多い気がする

現在の所では、プログラマーさんが組んでるので、
直接かまう事は無いのだけど

Unityなどのツールを見ると、
アーティストサイドで
シェーダーを触る環境が増えてきた

また、SIのプラグインを作るのに当たっても、OpenGLを使う必要があったり、
SIの表示を、Gameにあわせる必要があったりと、
Shaderの知識がある程度必要になってきた気がする

と、いうわけで、Shaderのスライドを公開された方があったのでチェック

シェーダーしよっ★
前半数ページしかわかんなかったけど。かなり良くまとまってる印象です

2012年6月27日水曜日

ZBrush : ZBrush 一分でリアルな地形を作る方法 -How to use geo data in ZBrush

ZBrush 一分でリアルな地形を作る方法 -How to use geo data in ZBrush

い、いそが しぃ orz、が・・・はげしくメモ




2012年6月26日火曜日

Modeling Tutorial : Evermotion Tip of the Week

家のモデリングチュートリアル

cgrecordよりメモ

http://www.cgrecord.net/2012/01/evermotion-tip-of-week-1.html
http://www.cgrecord.net/2012/02/evermotion-tipoftheweek-2-3d-building.html
http://www.cgrecord.net/2012/02/evermotion-tipoftheweek-3-3d-building.html


2012年6月25日月曜日

TA : Game Community Summit 2012 TA JAM

こういったのに参加したいのだけど、遠方+多忙でムリポ


でも最近は公開してくださるのが多いのでうれしい限りです

GCS2012 TA JAM 2012年6月16日


激しくメモ

2012年6月20日水曜日

Camera : カメラの話をしよう!・基礎編

カメラの話をしよう!・基礎編

すんごい良くまとめてあったのでメモ


レンズの話しはとても深くて難しいのですが、
この本が良いと言う事で読んでます

図解入門 よくわかる最新レンズの基本と仕組み―身近な現象と機器に学ぶ
検索して下さいw

まだ、ざっくりとしか読めてませんが
簡単な所から計算式まで、読みやすくまとめてあります。


カメラやるなら、コレ位知っておけってことなんでしょうが。

今更でもないよね!?

ちなみにF値っていわれても、即答できませんw

2012年6月15日金曜日

VC++ : パフォーマンスの計測 QueryPerformanceCounter

メモ : プログラムのパフォーマンスの計測

スクリプトの実行は時間がかかるモンだと諦めてたけど、
C++では諦める訳には行かないので実行時間の計り方を調べた

ここが一番シンプルでわかりやすかった
QueryPerformanceCounterの使い方

ちなみに、コレを調べるのに30分かかった。
昼休みが無くなってた orz

2012年6月13日水曜日

GUI Coad : ThreeNodes.jp

ちょっとコレはヤバい。

なんというか、WEBって、一つ下に見て多感があるけど、思い知らされたー

ThreeNodes.jp

git Hub
にコードもある、多分見てる時間ないだろーなー、と思いながらメモ

2012年6月11日月曜日

Softimage SDK : ToolContext 02.1 IsActiveView

メモ
SIでアクティブなビューを取得できずに困ってたんですが

C++APIだとIsActiveView()で、
取得できるという話を聞きました

忘れないようにチェックしてみると、確かにありました




・・・あるぇ? あったっけぇとおもったのですが

この間から調べていた、ToolContextにあったんですね(汗 
灯台下暗し orz


2012から、採用されたやつですなぁ。ということは3DConnexion
のプラグインも対応してくれるかな?

Lighting : 【撮影講座】 玉ちゃんのライティング話

【撮影講座】 玉ちゃんのライティング話 | Shuffle by COMMERCIAL PHOTO

最近は、リアル化がすすんで、かなり現実的になってきました。
いやあ、最近のエンジンスゴいね!


と言う事で、基本に戻って、
カメラもCGにも共通するライティング講座です。


いや、読めてないですがメモ〜〜〜


近況
背景の作業ですが、最近やっと、
やってる事について理解してきました(汗

キャラモデルに比べて情報量の少ない背景ですが、
仕様によって、作業内容が違うので、しょうがないかも、と思う所あったり。

あと、すぐに情報が古くなるのもあるかもしれませんね〜
とはいえ、大詰めです。頑張れ俺

2012年6月8日金曜日

Softimage plugin : XSI Tab Menu

ICEを使ってて、get data とか set data を取り出すのがめんどくさいのです。
インクリメントサーチから、簡単に呼び出せればいいのになと。

たとえば

[enter], "get data", [enter]
でそのまま取りたい。

ダイアログまで、マウスを持って行くのが面倒なんだよな〜と、
つぶやいた所

検索なら、標準でシュートカットがあるよとの返事が

[ctrl] + f で行けました。
シラナカッタヨー orz

まあ、Toolを作っててその過程を調べるうちに
標準でも出来てたなんて、良くある事です(調査不足) orz


デモ、配置までは出来ないんだよねぇ。
今度はドラッグがメンドクサイ

もうハシを持つのもメンドクサイお年頃です。

と、Softimage公式さんが、こんなPlugInを教えてくれました



XSI Tab Menu


XSI Tab Menu from Andy Nicholas on Vimeo.

XSI Tab Menu


コレダΣ(°□°;)



というわけで早速DL > インストール


[Tab] , "get data" ,[enter] で取り出せる。
しかもICEだけでなく、コマンドなら何でもOKのようです。


ざっくりコードを眺めたところ
コード自体はPythonで書いてありました

キーイベントで、プラグインを呼び出してるようです
pythonでインクリメントサーチなんて出来るんすね

300行ほどなので、がんばれば解析できるかもしれません


コマンド自体は別テキストとして用意し、
実行するタイプのようです。

一つ一つ自分で追加する必要性がありそうですが、
プラグインなども自分で追加できます


ということでQuick Primitiveを追加してみました
構文は下記のようです。




行けました、コレは便利!!!

自分でルールを作って、登録していけば、便利そうですね
View関係は vで始まるとか!

ただ問題はキーには自分のツールパレットを仕込んでありまして、
それが使えなくなるということでしょうか orz

いや、キーアサインをかえればいいだけなんですけどね

良いもの紹介してもらった。ありがとうございます(ペコリ

2012年6月7日木曜日

TUTORIAL : UDK : LevelDesign

メモ : UDKの背景製作に関するチュートリアル
PDFがあります


UDKチュートリアル

2012年6月4日月曜日

bug : dds

NVidiaのToolで、DDS化を使ううえで、
アルファ無しで保存したつもりがアルファ付きになってしまうバグ


nvdxt v8.0 dxt1a

忘れないようにもう一度メモだ!!!

2012年6月3日日曜日

Modeling Tools : Shapemith


Shapesmith

WebGLで動いてるToolらしい。

オブジェクトの操作がやりやすそうなので参考にメモ

ZBrush Tutorials : BadKing’s Free Tutorials

BatKing

基本的なチュートリアル集、
でも、良く出来てるっぽい。

基本が出来てない自分にはぴったり。

しかし、ZBrushは優先順位が低めに設定されちゃうので、
全く時間がとれないねぇ。

2012年6月1日金曜日

Modeling Tutorial : LowPolyTrees

LowPolyでの 木のモデリングチュートリアルを集めてみました

Blenderです
基本は一緒なので応用でOK

ミドルポリー




ローポリー

レースゲームはとことんローポリ
コレでもポリゴン数多く感じるぐらい



Script (ハイポリ)

こちらはBlenderのスクリプト
Pythonで組んであるようです


こちらはちと重そう



自然物は簡単なようで、難しいっす。

2012年5月31日木曜日

Softimage Plugin : sIBL4

全周囲のHDR画像を
ライティングとして使う、IBLを
簡単に設定してくれるのが smart IBLことsIBLです。

ですが、HDRの画像をそのまま利用すると
非常にデーターサイズが大きくなります

これをsIBLは、バック、反射の素材、環境マップ
と適切なデータサイズで設定可能で
データーベース化できます

コレを主要なDCCツールにインポートできるよう、
スクリプトを書き出してくれます


また、ハードルは高めですが、機材さえあれば
自分でHDR MAPを作成する事も出来ます


この sIBL の Ver が4になってました
新機能はいろいろありマスが、
ざっくりとしか使わない身としては、
データの管理、検索の向上でしょうか


sIBL4

ただ、sIBLから直接Softimageに送ることは出来ませんでした。
どうやら、プラグインがC#で書いてあり、Verが合致しなかったようです

まあ、sIBL > 書き出し si > 読み込みで問題ないです。

※現在、XSIBaseでPluginが対応されたようです。
TCPServer For Softimage



うーん、HDR画像をまじめに撮ろうと思うとあと10万ぐらいかかりそうなんだよなぁ orz


あと、こんなツール見かけました。割といいんじゃね?

DSLA Camera Remote

2012年5月30日水曜日

Softimage Plugin : quick Primitive v0.91

quickPrimitiveのVerが0.91になってますね。
プリミティブの初期値がPrefarenceで
指定可能になってました

いままで、分割数の多い初期のGridは使い勝手が悪かったので
活用してませんでしたが、これはイイ!

si-Community

2012年5月24日木曜日

Softimage Plugin : Editable Motion Path[未公開]

Editable Motion Path si-Communityより

2012から、APIにContextToolsが開放されたのですが
それを利用したプラグインのようです。

SI2012の紹介で公式のを見かけた覚えがあります
AutoDeskは、出してくれてませんが orz

それを個人で作られてるのかな?

たしかMAYAとかには標準搭載されてるはず
軌跡で、スピードなどをつめることが出来ますので非常に重宝しそうなTool

まだ製作途中のようで公開には至ってませんが、なんでも初のC++とか
ソレにしては超高度!?

ほかのプログラムの経験はあるのかな〜

とりあえず。メモメモ

2012年5月23日水曜日

ZBrush,Softimage Plugin : GoZ for Softimage

GoZ for Softimage
ZBrush と Softimageの行き来を簡単にするプラグイン
まだ試してない


XSI男w

2012年5月22日火曜日

Softimage ICE Compound: Motion Tools v0.3 (alpha)

Motionグラフィックに 使えそうなICEコンパウンド


おなじノード型のツールにHoudiniがあるのですが、
そこから派生したToolにライブモーションが可能な
TouchDesigne
というツールがあります。

最近リアルタイムが強くなってますので

OpenGL挿画も強くなってくれば
そういった使い道もあるかもしれませんね<夢想>

おされ動画とか作ってみたいよね
(センス無いから育てないとな orz

2012年5月21日月曜日

ZBrush : Getting Started with ZBrush

Getting Started with ZBrush
ゆっくり見てみたい(英語だからな)


よく、Toolの教則を収入としている形体も見受けられますが、
Pixologicは新規参入だけで、運営をまわせるのでしょうか
いらぬ心配をしてしまいます


仕事の方はあいかわらず修羅場ってます。
最近はモデリングよりもデータの整理、
Toolによる、ワークフローの整備
出力データーの作成に注力中

他人様が作ったデータをあつかうなど
細やかな対応が求められます

実データの書き出しにこぎつくまでが大変_(:p) ∠)_

2012年5月16日水曜日

PC Hard : x58チップセットマザーボードの延命 8Gメモリ

最近のソフトは、マシン固有のMACアドレスを利用していて
マザーボードを交換する事が非常に厄介になってきました
とくに、海外のソフトを利用してると手続きがおっくうです


ということで、なるべくマザーボードを延命させる組み合わせで、
PCを自作するようにしてます。

現在のPCは組んで2年目ぐらいです

当時、6コアCPUは高価でしたので
4コアを購入したのですが
現在、規格が2代わりと新型のCPUが市場に投入されました

そのため、自分が使用している
LGA1366ソケット用 CPUが
市場よりつぎつぎと消滅してます


値段も下げ止まりですし、
品不足で価格が高騰する事もあり得ますから
6コアの、i7 980Xを(借金で)購入しておきました orz

あまり4コアで不便する事は少なかったのですが、
延命の為なら仕方ありません


このようにPCの構成を少し換えるにあたって、
ひとつ、試してみたいことがありました



X58チップセットに 8Gモジュールは認識できるのか?

マザーボードはAsusの P6X58D-E 利用してるのです。

X58チップセットは原則メモリモジュールは4Gまでです。
上位のマザーボードでのスロットは6本ですから

4G x 6 = 24Gが最大です


ただ、同じX58を使ってるDellのワークステーションが
8Gモジュールが使えたとの話しを聞きました。

・・・。

ちょっとヒトバシラって見ました。

メモリは新しいマシンを購入した際にも
流用が効くはずなので
(借金で) 先行投資(病気)です


結果8Gモジュールが問題なく認識できたようです。

8G x 6 = 48G


これで、6コア+48Gメモリの、マシンが出来上がりました。
あと2年は頑張ってもらおうかと思います_(:p) ∠)_



まあ、何があるかはわかりませんので、
ヒトバシラーの人は試されてみると良いかもしれません
決して推奨はしませんが


記事自体は、連休中に書いたものを加筆したものです。
10日たってますが安定して動作してます。

2012年5月15日火曜日

Softimage Script Tips : PPGLayoutのサイズ指定(変則)

プラグインを作るとき
ボタン、パラメーターの配置は気を使うものです


しかし、SIのプラグインを作るときに、カンバスに当たる
PPG.Layoutのサイズ指定ができません

配置は、このサイズに依存しますし
位置を指定して開きたい事もあります。

最近、サイズなど変更できるようになりましたが、
モートルダムPPGのみの対応となってます

このモートルダムPPGは
Windowsの側が出来るので非常に見苦しい orz


上記の理由により
サイズ、位置の変更は出来ないものとして
ずっとあきらめてました

しかし、最近某プラグインをインストールしたところ、
どうやら、SIの基本のViewに
直接カスタムプロパティを埋め込んでるような気配が・・・


Viewだと、その位置、サイズを変更することが可能です


そのプラグインの表示部分を抜き出し
ちょっと、改造してみました



ぬう、出来てる。
oNewView = oActiveLayout.CreateView("Property Panel")
oNewView.SetAttributeVale("tagetcontent",cp.FullName)

でいけるようです・・・。

えええーこんなのSDKに書いてないよ!
と、思ったら、サンプルにそれらしき記述が orz


なんだか、いろいろありましたが、新しい発見でした orz

引数で、文字列を渡す場合があるのですが、
SDKには "String" と書いてあるだけで、
文字列の説明に飛んじゃうんですよね orz

その種類と、内容が知りたいんですが
何か一覧で出す方法などは無いもんでしょうか?

2012年5月11日金曜日

Softimage Plugin : SoftTransform



si-community

piotrek marczakのプラグインです。

ソース付きだー
研究しよう


あと、まだ、公開されてないですが、MeshPaintとか



コレが欲しかった (≧▽≦)ゞ

氏のプラグインが、ほぼ自分の要望と同じなのでw
SIの不満点が、がんがん解消されてますね
非常に喜ばしい事です


自分もがんばらねば orz
C++なかなかに迷走してますw

2012年5月9日水曜日

Softimage ICE : 平面に投影する

上手くモデリングできない件があって、
平面上に任意のベクトルで
頂点を揃えるのが必要になった





グローバルに依存してるけど、
なんとかそれっぽくできた。



簡単に説明すると、
・点と平面のキョリを出す
・平面の法線と移動ベクトルの内積で比を出す
・比の分任意のベクトルにむけて移動する
・・・あってる自信はないよ!
ってことでした。



スクリプトでプラグイン化

スクリプト化してみた。

PythonのPPGLogicが上手くいかなくて、
1月ぐらいほったらかし

スミマセン、この記事もほったらかしてました。


再着手したら、何とか動いた。

PythonLogicメモ
・日本語コメントはNG
・PPGのParameter範囲外の数値をセットしようとすると怒られる(あたりまえ)

うーん、これ前にも引っかかったんだよなぁ orz

ツイッターで、コレを教えてもらいました

PPG作成時のLogicを外部参照してみた。
コレならコメントOKかな?

今回はそんな大仰なLogicじゃないから、
内部でまとめちゃったけど


余談
同じ機能のプラグインはすでにありますし、
高機能だと思いますw

jjTools
勉強がてらの車輪の再開発なのですよ
・・・

ぐっは、C++で書いてあるかと思ったら、同じPythonやん!(吐血

2012年4月27日金曜日

Softimage : ワークグループを読み込まずに起動する

Softimage 2013 なんですが、ワークグループを接続すると
起動時に落ちる用になってしまいました。


何かのプラグインがVer2013に対応してないのが
原因かと思うのですが、
起動時に落ちてしまうので、
どのプラグインが問題なのかがわかりません

安易に名前の変更、
フォルダの移動は避けたかったので、
回避方法を聞いてみました。


Atroposさんが調査してくださったようです。
A-s-C-e-n-S-i-o-N
ありがとうございます~



ワークグループの設定の削除

・C:\Users\[User]\Autodesk\Softimage_2013\Data\Preferences\default.xsipref
をメモ帳などで開く

data_management.workgroup_appl_pathで、
自分のワークグループを削除して保存


でした。良かったよかったw

2012年4月23日月曜日

Softimage ICE : ICE City Generation Preview

うぃーいそがしい。
2012SAP使ってたんですが。
マージでUVがぶっ飛びました。俺だけっすかね orz



ICE City Ganeration


精力的にICEで開発しておられます
都市建築
と言う事でメモ

うお、コレすげぇんじゃね?

2012年4月13日金曜日

Softimage 2013 : RenderTree HQV

Softimage 2013がやってきましたね。

HQV High Quality View が搭載されました。

で、どうしても欲してやまない機能があるか確認してみました
リアルタイムビューでテクスチャブレンドを確認できるかどうかです

これ、いままでSIはView上で確認できず、
レンダリングしてみるか
カスタムシェーダを作成するしか方法はありませんでした。



頂点カラーでのマスク

リアルタイム用の地形の製作で、
マルチテクスチャを使用し、
Vertex Colorでマスクをします。

オブジェクト、マテリアルは同一なもの、
左が頂点Color, 中央が従来のテクスチャビュー 右がHQVです。

結果、望むプレビューができました。これは非常にうれしーーー


さて、実際のところ、頂点カラーで利用するとなると、
その分ポリゴンメッシュが密になる必要があります。

それはそうですよねぇ。
よって、あまりメッシュを細かく出来ない背景では、
頂点カラーではなく、画像を利用してマスクを
作ることが多くなってます

これの確認もHQVで可能かと思われます。(まだ試してないけど


・・・となると、確認だけでなく、
VertexColorのように、直接テクスチャを調整したくなりますよね!
というわけで、次回は3DPaint機能をつけてくださいませ > SI様
※今度要望だそう。

2012年4月11日水曜日

Softimage RenderTree Tips : Set Data : ICE Heightmap

ICEで、ちょと大きな発見があったのでメモ。

結論から言うと、
RenderTreeのパラメータにICEの値を直接入れるというもの


いままで、RenderTreeから、ICEAttributeで
データーを拾う事しか出来ないと思ってたので
大きな収穫。



ICE Heightmap

HeightMapを簡単に作る


というわけで、手順を記します

・オブジェクトのマテリアルにグラディエントをセット
・オブジェクトにICETreeをセット
・ICETreeはモデリング以上のコンストラクタに
・ICETreeで、BBoxを設置(※現状ではローカルです)
・BBoxの最大値、最小値をSetDataにつなぐ
・ICETreeのSetDataで、セット先をマテリアルのパラメータに

マテリアルのパラメーターとか調べるのが句かもしれませんが。
Expressionなどで、表記されますので調べてちょ

というわけで。こんな感じでつながりました。



ICETreeのSetDataって、ソレ自体のパラメータを操るだけじゃなくて、
他のデーターにも介入できるのか。

いやはや、こんな大事な事知らんかった orz
というわけで、今更、ICEすげーの発見です

※想定外の使い方かもしれませんので、バグがあるかも〜しれません。
緑の四角の表示が変化しないんだよね〜。
ICEのSetDataでコントロールされてる事がわかれば良いんだけど



Attributeを使えばいいんじゃね?

と、ツイッターで聞きました。
ICEのデータ取得できるんじゃン orz


知りませんでした orz

2012年4月10日火曜日

SoftimageScript PPGLayout : 小数点以下

UVのPluguinを作っているのですが
PPGにパラメータを追加します

UVは基本0-1間に収めるものですから
その扱いは小数点以下になります

しかし、標準での表示は少数点以下、3位までしか表示です

仮に解像度ぶんUVを移動させようとしたとき
その値は1/1024
小数点以下、3位では足りませんね

うーん、どうしたものかと思ったのですが、
junkiさんに教えてもらいました。

友愛その10。 小数点以下。

こういったオプションがあるのですね〜。
知りませんでした


小数点以下の指定

#Python
oItem = ly.AddItem( "offset" )
oItem.SetAttribute(c.siUIDecimals,5)




できた~
junkiさん、ありがとうございます


ttUVTools
 いろいろボタンは用意してますが
 まだまだあふぉなところが、
 多くて公開にはいたりません orz

2012年4月7日土曜日

C++ : イテレーター その2

※自分の備忘録として記載してますので適当かつ概念のみです〜

本当は最初から少しずつ勉強して行けば良いのでしょうが
とりあえず使えるようになるのが優先ですので、逆引き形式で調べて行きます


さて、イテレータを知る為の前提条件

リスト構造は前回なんとなく把握(ぉ

次は、vector,list,mapを理解しておりません
上記3つはC++の標準ライブラリーに存在します。

標準ライブラリーは、C++の便利ツールの集まりだと認識。
必要にかられて出てきた物でしょうから。使えるようになりたい物です。

2012年4月6日金曜日

C++ : イテレーターとか、テンプレートとか 1

Pythonのスピードについての話しから
イテレータと言う話題が出た

oyagさんから、覚えていた方が良いよと言われた事は覚えてるw

※いい加減なブログな自覚はあります。
 間違ってたら指摘してくださるとうれしいです。


2012年4月4日水曜日

Softimage Script : Pythonは遅い

Softimageのスクリプトは代表的な所で
VB,JS,Python と一般的な言語を使えます。

MayaのMel,3ds MaxのMaxScriptと異なり
独自言語を覚える必要がないのが、
アドバンテージの一つだと思います

が、結果として、SDKマニュアルにある
サンプルを読むために、すべての言語を、
解析しなければならないという、
本末転倒な所はあるのですがwww

で、同じスクリプトなのだから、
スピードの違いはさほど無い物かと思い込んでおりました。

ただ、オブジェクトを回す事の出来る、Pythonのループだけは特殊だなぁ。
となんとなく考えておりました。
※Pythonが便利な理由の一つなんですけどね

それがコレだけの速度差があるとは思いませんでした。


スクリプト処理速度比較「VBS・JS・Python・C++」

ゲームの花園さんより

おお、C++のサンプルがある ドンドンドン!


そして、Pythonダントツに遅いw

メモ : SIのコレクションをループした時に、その遅さが顕著になるらしいです。


実際、UVのサンプルコンポーネントを扱うスクリプトを作った時
とんでもない遅さで、とても使える状態ではありませんでした。

まあ、この遅さのおかげでC++を覚える事になった訳ですが(w


しかし、Pythonは手軽に開発できます、
この手軽さは何者にも代え難い。
ループが遅いと言っても、
手作業より圧倒的に早いのは変わりません


まあ、ケースバイケースで使い分けでしょうね〜

作り始めはPython
どうしてもスピードが必要な物に限り、
他言語を使う程度で良いのではないかと思います。

正直C++は奥深過ぎて、良くわかってません。
最悪完成しませんし(ぇ!!!

とりあえず動くのが優先◎

2012年4月3日火曜日

ICE Compound : Scatter tools v1.1 - scatter at nulls



地形のオブジェクト製作に便利そうなTool
超大規模の町ならば、プロシージャル系の製作が望ましいけど
データー量、見栄え等を意識しながら製作するリアルタイム系だと、
直感的に配置できるツールが望ましい。


というわけで、素晴らしげに見えるのでチェック。


メッシュの表面に選択したオブジェクトを貼付ける
プラグインを作りたいのだけど
まだまだ、スキル足らず
スプレーツール欲しいよねぇ


メッシュの表面に選択したオブジェクトを貼付ける(標準機能)

そういえば、標準機能でも出来てた。
複製したいオブジェクトを選択し
"d"キーで Duplicateのモードに移行
スナップの目標をFaceにすれば、簡単にできるんだった

これをランダムにする事が出来ればスプレーツールになるかもなぁ。(夢想)

2012年4月2日月曜日

2012年3月29日木曜日

Making : The Making of 'Gathering'

The Gnomon
なんてサイトがあるんですね。知りませんでした

チュートリアル販売のサイトですが。そのなかの一つが無料になっております

The Making of 'Gathering'

2時間強ありますので長いですが。とても参考になります。
お勧めです

このサイトの中で、SIのモデリングのチュートリアルのサンプルを見たのですが
これはすばらしい
ちょっと欲しいですよ
3D Design for Production

どうやら、年間500ドル弱で、全部見れるっぽいです。
月に一つ買うつもりで、いったら高くはないか・・・。

でも、買って満足しちゃいそうなのでw
ひとつひとつ買うべきですなwww

2012年3月21日水曜日

Anatomy : Zygotebody

わかりやすいUI
内側の筋肉、外側の筋肉が、スライダーで確認しやすい
背中の筋肉がわかりやすいっす

Zygotebody

2012年3月17日土曜日

Modeling

これは参考になりすぎる!@AItoiIさんによるモデリングテクニック講座!
戦艦とかSFものの建築物の為にメモメモ
使い回しのパーツを用意しておくと良いかもね


結局、作りたいんで、新規に作っちゃうんだけどねw

2012年3月14日水曜日

Softimage Script : PostScript : ExportUV2EPS V0.1

プリンターに出力するときに送られるファイルを
psファイルというのです。

まあ、説明はいろいろ省いてw
イラストレターに使われるベクターデータも記述できるファイルと思ってOKだと思う。
ベクターだけだと、写真張れないジャン、ってことで、
画像を埋め込めるようになった拡張がepsファイル。
ちょっと昔のPhotoshop Illustrator共通の保存形式ですな。
※現在はさらに拡張されて、おなじみのPDFとなっております。


Softimage StampUV

SoftimageのUVの画像書き出しStampUVなのですが
チェック模様のバックから書き出そうとすると
グレーで選択、出力出来ませんでした

これ、既存のテクスチャがないと、
UV描けない仕様なんだよね~弱


PostScript 記述

最近UVのプラグインを続けてたので、UVの座標が扱える
ならば、そのポストスクリプトを直接書き出せればいいんじゃね?
と思い立ち調べてみた。DTPの仕事と重なるので、損はなかろう

ということでサンプル

ポストスクリプトはこんな記述みたい


newpath
0 0 moveto
200 0 lineto
100 200 lineto
closepath
fill



コレをポリゴンごとにやれば出来るかもね~
※急にめんどくさくなったので、PrintScreenでOKってことでw

以下後記

実作業をやっていてやはり、UVが簡単に書き出せないのは痛い。
めんどくさい。
メンドクサイがメンドクサイを上回ったときがToolを作る時w
ちょっと昼休みにPythonで組んでみた
多少制限があるものの,思った以上にすんなりできた


ExportUV2EPS


プラグインにするには、まだ足りないのだけど
いろいろ多忙になり、拡張する暇がなさそうなので
コードをさらしておきます

思ったより反響があったので折を見て、
プラグイン化するかもしれません

それまでに使いたい人がありましたら、ご自身の責任でどぞ~。


ExportUV2EPS v0.1


※現状の制限
・書き出しは固定 R:\ExportUV.eps
・解像度は1024、アスペクト比は固定(ベクターデーターなので依存するのは塗りだし)
・塗りだしサイズは 2pix (解像度、アスペクト比に依存)
・マテリアル周りの検証が不完全だと思われる


#ExportUV2EPS
#
#UVをEPSファイルで書き出します
#

#グローバル変数 解像度と、出力先を指定
pictSize = 1024
path = "R:\ExportUV.eps"

app = Application; log = app.LogMessage
import re


#-------------------------------------------------
# getCurrentTextureEditer
#-------------------------------------------------
def getCurrentTextureEditer():
 ly = app.Desktop.ActiveLayout
 views = ly.Views

 TextureEditerView = False

 #vmだった場合の処理
 for view in views:
  if view.name == "vm":
   for vmView in view.views:
    if vmView.Type == "Texture Editor":
     TextureEditerView = vmView

 #フローティングパレットを精査 上書き
 for view in views:
  if view.Type == "Texture Editor":
   TextureEditerView = view

 return TextureEditerView


#-------------------------------------------------
# x() 倍率設定
#-------------------------------------------------
def x(var):
 return pictSize * var


#-------------------------------------------------
# writeHeader() epsのヘッダー
#------------------------------------------------- 
def writeHeader(f):
 f.write(
  "%!PS-Adobe-3.0 EPSF-3.0\n" +
  "%%BoundingBox: 0 0 " + str(pictSize) + " " + str(pictSize) + "\n\n" +
  "newpath" + "\n" +
  str(x(0)) + " " + str(x(0)) + " " + "moveto" + "\n" +
  str(x(1)) + " " + str(x(0)) + " " + "lineto" + "\n" +
  str(x(1)) + " " + str(x(1)) + " " + "lineto" + "\n" +
  str(x(0)) + " " + str(x(1)) + " " + "lineto" + "\n" +
  "closepath 0.0 setlinewidth stroke\n\n"
 )
 return


#-------------------------------------------------
# writeLine() 通常の lineto
#-------------------------------------------------
def writeLine(u,v):
 return  str(x(u)) + " " + str(x(v)) + " " + "lineto" + "\n"


#-------------------------------------------------
# fwriteLine() 最初の書き込み moveto
#-------------------------------------------------
def fwriteLine(u,v):
 return  str(x(u)) + " " + str(x(v)) + " " + "moveto" + "\n" 


#-------------------------------------------------
# writePS(inPolygon,in_aUV,f)
#-------------------------------------------------
def writePS(inPolygon,in_aUV,f,oColor):
 
 #始まり
 f.write("\n" + "newpath\n")
 
 #サンプルの数だけ繰り返す
 oSamples = inPolygon.Samples
 oSampleCount = oSamples.Count
 u = in_aUV[0][oSamples[0].Index]
 v = in_aUV[1][oSamples[0].Index]
 f.write(fwriteLine(u,v))
  
 for i in range(oSampleCount):
  if (i != 0):
   u = in_aUV[0][oSamples[i].Index]
   v = in_aUV[1][oSamples[i].Index]
   f.write(writeLine(u,v)) 

 #Color
 if oColor != None:
  r = oColor.Parameters("red").Value
  g = oColor.Parameters("green").Value
  b = oColor.Parameters("blue").Value
 else :
  r = g = b = 0

 f.write(str(r) + " " + str(g) + " " + str(b) + " setrgbcolor\n" )
 f.write("closepath\n")
 f.write("gsave\n") 
 f.write("fill\n")
 f.write("grestore\n")
 f.write("4.0 setlinewidth stroke\n")
 
 return
 

#-------------------------------------------------
# main()
#-------------------------------------------------
def main():
 f = open( path ,"w")
 writeHeader(f)
 
 #TextureEditerを取得
 TE = getCurrentTextureEditer() 
 if TE == False:
  log("Not Found TextureEditer")
  return
  
 #プロジェクション名を取得
 aStrProjection = TE.GetAttributeValue("allprojectionnames")
 if (aStrProjection == None):
  log("Not Found UV")
  return
  
 lStrProjection = aStrProjection.split(",")
 for strProjection in lStrProjection:
  oProjection = app.Dictionary.GetObject(strProjection)
  aUV = oProjection.Elements.Array
  oObj = oProjection.Parent3DObject
  oGeo = oObj.ActivePrimitive.Geometry
  oPolys = oGeo.Polygons
  oMat = oObj.Material
  oShaders = oMat.GetAllShaders()
  for oShader in oShaders:
   #log(oShader.ProgID)
   if oShader.ProgID == "Softimage.material-phong.1.0":
    oColor = oShader.parameters("Diffuse")
   elif oShader.ProgID == "Softimage.material-lambert.1.0":
    oColor = oShader.parameters("Diffuse")
   elif oShader.ProgID == "Softimage.material-blinn.1.0":
    oColor = oShader.parameters("Diffuse")
   elif oShader.ProgID == "Softimage.material-constant.1.0":  
    oColor = oShader.parameters("Color")
   elif oShader.ProgID == "Softimage.sitoon_paint.1.0":  
    oColor = oShader.parameters("Color")
   else:
    oColor = None

  
  for oPoly in oPolys:
   writePS(oPoly,aUV,f,oColor)


 f.close()
 log("----- Export Eps!!! -----")

main()


今後の拡張

・PPGに対応
・出力先のダイアログの設定
・線の描画のON OFF
・オフセットのON OFF
・Plugin化 ・0-1以上に対応するかの ON OFF
・アスペクト比の対応

うお、けっこうありやがりますよ !

2012年3月6日火曜日

3dTool : Substance Special Offers

Substanceが安売りしてるーー。 690ドル!! これはお買い得かも〜 お金があればネーーー

2012年3月2日金曜日

2012年2月24日金曜日

Softimage Original Plugin Dev : ttSelectSimilarAngle

UVを塊で整列させようとして、はや一年近くたってるのですが、
なかなか上手くいきません


プログラマーさんにとりあえずIslandの処理を教えてもらいましたので
解析 & 勉強中です。

といっても昼休みに1時間ずつしかしてませんので
進捗も微々たる物です


とりあえず難易度を下げて、
隣接するポリゴンで角度の少ないものを選択するプラグインを作ってみました

アルゴリズムとしては、
近接したポリゴンを算出、角度を比較、
一定以内だと選択するグループに追加、
と簡単なものですが、C++で組むのには骨が折れます




手探りで作ったものなのでコードもひどいものです orz
もう少し整理したら 後悔w しようかと思います


画面のような製作法だと、
無駄なラインが増えてしまうのが難点です
それをクリーンナップするために
コレはコレで欲しかったツールなので、
良かったかもしれません



メモ

・ttSelectSimilarAngle
・DissolveComponent
・CleanUP2Point
のコンボで、高速にポリゴンを綺麗にできる


うーん、これも、グループごとにClusterとして分けられれば、
便利かもなぁ。

とりあえずグループ分けのアルゴリズムはどこでも必要そうです

2012年2月21日火曜日

Softimage C++ : Select Polygons

C++でインデックスからポリゴンの選択が
できてない事に気づいたΣ(°□°;)


というわけで、ここ1週間、ポリゴンの選択について悩んでました

なかなかにC++楽しませてくれます orz
結果として一度テキストデーターにしてます。

もっとスマートな方法があるかも

他の方法があれば教えてやってください。


Select Polygons

以下コードの抜粋

 Application app;

 //選択したオブジェクト
 Selection oSel(app.GetSelection());

 //X3DObject‚にキャスト
 X3DObject oObj(oSel[0]);
 app.LogMessage(L"SelectObject = " + CValue(oObj.GetFullName()).GetAsText());

 //メッシュを取得
 PolygonMesh oMesh( oObj.GetActivePrimitive().GetGeometry() );
 CPolygonFaceRefArray oPolygons(oMesh.GetPolygons());

 //選択を解除
 oSel.Clear();

//--------------------------------------------------------------
//
//選択する頂点のアレイを用意
//
//--------------------------------------------------------------

 //とりあえず、頂点のアレイを作成‚ [0,1,3]
 int const alength = 3;
 long IndexArray[alength];
 IndexArray[0] = 0;
 IndexArray[1] = 1;
 IndexArray[2] = 3;


//--------------------------------------------------------------
//
//選択する文字列を作成
//
//--------------------------------------------------------------

A.CLongArrayで頂点の配列から、テキストデーターを取得
 CLongArray aIndex;
 for (int i = 0; i < alength; i++){
  CRef ref(oPolygons[IndexArray[i]]);
  aIndex.Add(PolygonFace(ref).GetIndex());
 }
 app.LogMessage(CString(aIndex.GetAsText()));
 CString strSelect(aIndex.GetAsText());


B.テキストを直接作成する方法
 CString strSelect = L"";
 for (int i = 0; i < alength; i++){
  //最後の "," が不要なので場合分け
  if(i == alength - 1)
   strSelect += CString( (CValue(IndexArray[i]).GetAsText() )       );
  else
   strSelect += CString( (CValue(IndexArray[i]).GetAsText() ) + L",");
 }


//--------------------------------------------------------------
//
//文字列からポリゴンを選択
//
//--------------------------------------------------------------

A.新規選択の場合SetAsText‚でOK
 oSel.SetAsText(CString(oObj.GetFullName()) + L".poly[ " + strSelect + L"]");


B.追加選択等の場合はStringsを CRefに設定する必要がある
 CRef ref;
 ref.Set(CString(oObj.GetFullName()) + L".poly[ " + strSelect + L"]");

 //選択
 oSel.Add(ref);


うーん、一度SubComponentとかにすればいい気もするけど、
それを作るなら、結局の所、テキストデーターで直打ちでも・・・

なにかしら、定石があれば知りたいです


追記

選択はB.の一度CRefに変換した方が良いみたい。
(選択状態がポリゴンに変更された)

また、[0,1,2,3,3]などで、3が重複した場合は、
選択が解除されるので注意が必要、
選択>選択解除 のトグルなのかな?
地味にハマりました orz

2012年2月17日金曜日

Softimage Script : SeparateSelCluster

ツイッターで、クラスターを分離するスクリプトの話題が上がったので、
以前作った物をUPしてみたのですが、
人に見せるコードではないですね orz
自分ですらわかりません。

最近は、自スクリプトのメンテもするようになってきましたので
これは意識して修正をして行かねばなりませんね


SelarateSelCluster


選択したクラスターを分離して新しいオブジェクトにするスクリプト

#-----------------------------------------------------------------------
#SeparateSelCluster
#選択したクラスタを分離、マテリアルを適用

#使用法
#クラスタを選択実行

#履歴
# v1.0 完成

from win32com.client import constants as c
app = Application;log = app.Logmessage
import re
  
#-----------------------------------------------------------------------
# Main
#-----------------------------------------------------------------------
def main():

 #クラスターを確認
 oSel = app.Selection(0)
 if oSel.Type != "poly":
  log("Select Poly Cluster")
  return 0


 oCls = oSel
 oObj = oSel.Parent3DObject
 oGeo = oObj.ActivePrimitive.Geometry
 
 #ポリゴンのインデックスを-1で初期化[-1,-1,-1]
 aIndex = oGeo.Polygons.IndexArray  
 a = []
 for i in aIndex:
  a.append(-1)

 for i,v in enumerate(oCls.FindIndices(aIndex)):
  if v != -1:
   a[i] = 1
 extIndex = []

 for i,v in enumerate(a):
  if v == 1:
   extIndex.append(i)

 subset = extIndex
 oSub = oGeo.Polygons.SubComponent
 oSub.ElementArray = subset
 app.SelectObj(oSub)

 op = app.ExtractFromComponents("ExtractPolygonsOp", oSub, oObj.Name + "_" + oSel.Name, True, "siImmediateOperation", "siKeepGenOpInputs", "")
 newObj = op(0)(0)
 app.DeleteObj(oCls)

 oCls = newObj.ActivePrimitive.Geometry.Clusters
 for i in oCls:
  if i.Type == "polygon":
   newObj.SetMaterial(oCls.Material)
   app.DeleteObj(oCls)

 #親子付けをする
 #バグ報告アリガトウございますです。ちょっとOffっておきます〜
 #app.ParentObj(oObj.Parent3DObject,newObj)
 
 return 1

main()
#-----------------------------------------------------------------------


使用の際の不具合の責は負いませんぜ
バグ報告は歓迎します (≧▽≦)ゞ

2012年2月15日水曜日

Memo : MayaPlugin : DiamantTools for Maya

DiamantTools for Maya

SoftimageじゃないですがToolとしてメモ
ディアブロで有名なBlizzard社
RichDiamant 氏の Tool らしいです。

なんで公開したのΣ(°□°;)


ざっと機能を拝見。
ツールとしてはModo,3DCoatの機能を、MAYAに移植と言う感じです


他のToolで、安く補えば良い、
と言う考え方もありだとは思うのですが、
やはり、Import,Export の手間、
Tool間の使い方の覚え直し、の手間を考えると
メインの Tool 単体ですませてしまいたい物です。

というか、うらやましい〜www

Softimage Plugin : QuickPrimitive



自分が個人的に尊敬してるプラグイン制作者 piotrek 氏の新しい Plugin です。

任意の場所から、法線を参照しつつ、プリミティブを作成できます
これはすごいいい!

SIのモデリングツールが一番弱いと感じられるのは、
新しいプリミティブが、任意の位置に出てこない事が一番だと思います
グローバルのセンターにしか出ないんですよね orz

これ、背景には辛い仕様だったりするんです。
だって、センターから遥か離れた所にどうやってプリミティブを置くの、
窓とかどうするの?
と言う所でいつもぐんにゃりする訳です。

一つ出しておいてコピーとかしますけどね、
作業自体は直感で勧めたいじゃないですか

それが一気に解決!!!


というか、コレが欲しくてC++とOpenGLを勉強してたんだけど(滝汗 
いつ出来るかもわからないし(泣

というわけで、使わせてもらうっす〜

si-community


勉強用にソースもくれないかしら_(:p) ∠)_
(以前のツールはソースも公開してくれた)

2012年2月14日火曜日

ZBrush : Anatomy : ZBrushWorkshops w Ryan




Ryan氏のYoutubeチャンネルから、解剖学



筋肉がどのように収縮し、複雑な人間の動きを作るかは、
調べれば調べるほど、良く出来ている構造に感動します。

正に神の領域、造形ですな〜。


観察眼のレベル


海外に留学しておられる人と話して気づいたのですが、
やはり、解剖学を学んだ方のレベルは、差が大きいと思ったり

なんというか、専門性のレベルが違うんですよね〜。
観察眼が、一つか、二つ上のレベルです。

多分日本でも美術を習ってる人が、ZBrushとか使うと凄いんだろうなぁと思うんですが。


自分もう少し取り組んで、
背筋と骨盤のアタリのエロ肉と、
尻えくぼを研究したいと思います

2012年2月9日木曜日

Anatomy : TEAMLAB BODY bata

うぉおおおおおー、チェックだぜ。
TEAMLAB BODY bata
 だいぶ筋肉は勉強したんだけど、絵に落とし込めてない。
それどころかデッサンも続けられてない。


C++である程度SIのToolが作れるようになったら、
お絵描き再会するんだ!(希望
でもUnityで作ってあるんだなコレ_(:p) ∠)_

SoftimagePlugin : ZBrush FiberMesh to strands compound

ZBrushが大人になった(毛が生えた)訳ですが、その毛をSIにインポート可能になりました。
・・・普通にMeshとしては以前から読み込めるんですね(汗

SI-Communityより
ZBrush FiberMesh to strands compound

FiberMeshの使い方

OrkさんのNewsで確認
Ork News


Softimage へ Import


ZBrush から Obj 形式で FiberMesh を Export


Softimage に Import


空のPointCloudを作成
ICETreeを適用し、DownLoad したコンパウンドを接続
うまー


そもそも FiberMeshって、板ポリがベースなのね~
コレはコレで使い道はあるかもしれませんな

その板ポリからICEでセグメントを発生させてるみたい
ですので、ZBrushで指定したセグメントと数をそろえないと爆発します

2012年2月2日木曜日

Softimage tips : CameraProjection Moderlng

どうも、また忙しくなってきたので更新の頻度が落ちてます。

昼休みなど空いた時間を使って実験を行うのですが、
最近はC++でプラグインを作るために四苦八苦してます。

時間の割には成果の少ないC++ orz

で、最近思いついたネタなんですが、ちょっと紹介


CameraProjection Modeling

よく写真を元にモデリングをするのに、ロトスコープを使ってたのですが、
なかなか制御できないし、いろいろ面倒
かといって、通常のプロジェクションだとオブジェクトをフリーズできない。
(swimはあるけど)

ということでプロジェクション用のカメラを追加して、
それで操作しちゃえばいいことに気づいた
慣れたカメラなら、操作は楽だし、
マテリアルとカメラプロジェクションを同じカメラで設定すれば
ほかのオブジェクトも追加可能、
画角も設定できるし、かんたんじゃない?


というわけで、簡単に設定できて、破棄できる、
最近お気に入りの手法です。

カメラプロジェクションを使ったことある人はすぐ気づくんだろうけどなーーー orz

2012年1月26日木曜日

3ds Max ECSP 2012 : Substanceが認識しない問題

※解決しました

Max2012には Substanceというプロシージャルシェーダーが付属してます。
通常インストールではプリセットを選ぶだけですが、
インストーラーから、Toolで選択し、別途インストールする事によって、
Substanceの拡張が行えます。




Substance Install

早速インストールしてみました
インストールは問題なく出来たのですが、
なぜか、MAXで認識されてません

プログラムメニューより、インストールされた SubstanceDesginer を立ち上げると、
なぜかライセンスを聞かれます ?
※SubstanceDesginerは、トライアル版だそうです


Substance Playerは、BItMapとかに書き出せるそうなので、
SIのテクスチャ作成が強化できると思ったのですが・・・。
なかなか上手く行かない物です。

もう少しチャレンジしてみます


SubstansDesginer はトライアル版だった

トライアル版だったようです、プリセットのみの販売でした orz

 ちなみに本家にアクセスしますと、
 SubstanceDesginer 990 ドル
 SubstanceDesginerLite 350ドルとってます


過去記事

Substanceについて調べ物をしてたら自分の過去記事に・・・。
全く記憶にございませんでした orz

 過去無料で公開してたMapZoneが前身だとしますと、
 一度挫折した覚えがあります(www

 プロシージャル系にありがちなことなのですが、
 仕込むのに圧倒的な時間を必要とし、
 その作業を行うならば Photoshop に慣れた方が有益だと判断しましたw
 MapZone がまだ開発途中だったせいもあり、ラスター系の作業も出来なかったですし
 プリセットも少なかったことも原因だと思いますがががw

 うーん、少し残念だったかなw


 解決法

 どうしてもインストールできなかったために、
 代理店さんに問い合わせてみました。

 何度かやり取りをして、確認を取ってもらったところ、
 インストール時にAllegorithmic Substance Extra Contentが必要になるのですが
 なぜか、3dsMax ECSP 2012ではインストーラーが無いという結果でした
 
 とりあえず代理店さんには別途 Max 単体のインストーラーを用意してもらいました(w

無事インストールが完了

 というわけで、解決は代理店さんに頼むが正解ですのようです orz
 AutoDeskさんには報告しておきますとの事です。

2012年1月25日水曜日

SoftimagePlugin : GDT RealTimeShaders

3D人さんのサイトより
GDT Realtime Shaders - これぞ全部入り!!究極の背景向けリアルタイムシェーダー!Softimage用

Softimage用のリアルタイムシェーダーです


というか、凄いねコレ。

開発者 : Mslaf 氏
HP
HP休業中みたいだから、直接ページリンク


GDT RealTimeShaders

・インストール
File > Addon > Install...でワークグループにインストール

・サンプルシーンを開く
 (テクスチャのパスが通ってないので再設定)

・SIを再起動
 (OpenGL系は再起動しないと駄目みたい)

ウマー


まだ、詳細はわからないけどいい感じ!?

Softimage Plugin : Exocortex Species

Exocortex Species 1.0 Official Release Video from Exocortex Species on Vimeo.



Exocortex
おや、これって、有償開発だったんですね。
便利そうだものなぁ
ノードロックで300ドル、素材集として買えば安いんじゃないでしょうか?

方式は基本の体系にボーンでメッシュをデフォーム
そこから、モデリング、変形、フリーズ
元になったボーンからあらためてRigとボーンを形成だとお思います。

違ってたら笑ってーーー

2012年1月19日木曜日

Softimage Plugin : Essential Geo for Softimage


 このような良さげなツールが
 Link >> BOUNDING BOX GAMES
 メモメモ

他、Plugin

 Material系
  MaxShaders
  ・ワークグループにインストールしたらToolBarからのパスが通ってなかった。
   絶対パスにしてみたが、今度はテクスチャのパスが通らなかった
   おとなしくUserにインストールした方がいいかも

2012年1月16日月曜日

Softimage Script : Python でショートカット入力

SI の TextureEditer は SDK で用意されてないらしく
スクリプト上からの操作は、むりなようです
※(扱えると言う情報がありましたら下さい〜)

しかし TextureEditer でショートカットキーが
設定してあるものについては
ショートカットをScriptで入力してやればよいと思われます

Pythonを利用し、キー入力の送り方を調査します


Pythonでのキーの送信

#Python
import win32com.client
shell = win32com.client.Dispatch("WScript.shell")
shell.SendKeys("{F6}",0)


この状態でキー入力を行う事が出来ました

参考サイト

しかし、製作中のツールでは反応しませんでした。なんでじゃろ?


修正

myaraさんの指摘で以下を修正しました

Despatch > Dispatch //スペルミス
"F6" > "{F6}" //{}が抜けてました!(なぜか不要と決め付けてました orz)

以上を修正したら、TextureEditerで更新ができるようになりました!!!
バグだしは終わってないですけどスクリプトが動いたー


安定動作したら公開しま~す
そのほか、スクリプトの中でスクリプトを呼び出してますね、
ふむり~、参考になります

myara さん、ありがとうございましたーーー。


備考
myaraさんが、キーをスクリプトで送る件に関して記事を書かれたようですよ!
参考になることばかりです

キーをスクリプトで打つ

しかし、こういうときこそトラックバックとか使うんじゃなかったっけ?
使い方がわからん orz

2012年1月15日日曜日

Softimage SDK : ToolContext 02

とりあえずコンパイルが通りました
やはりインクルードの設定が間違っていただけのようでした



というわけで、サンプルをコンパイルしていざ実行



マウスがオーバーなオブジェクトの名前が表示されます。

しかもキャプチャー時、アイコンが消えますので、
この画像だと、名前が表示されてるだけです。

本当に、どうもありがとうございました。

2012年1月12日木曜日

Softimage Script memo : Logicメゾットの使用方法とか

Logicメゾットの使用方法とか
たこなぐりの日々さんより

こんな使い方あったのか!!! 知りませんでした。
ファイルの位置を指定してやらないといけないのが、
自分の作り方ではちょっと難しいかな〜。

2012年1月11日水曜日

3DTool : Maide Control - 3D CAD Control with your iPad

Maide Control - プレゼンテーションに最適?!多彩な3Dツールに対応したiPad用ナビゲーションアプリ!

3D人さんのブログより

コレが欲しかったんですよね~
しかし、残念ながらSIはありません。

SIのフローティングパネルはSDKが開放されてないらしく、
特定できないので、プラグインの開発も出来ないのです
いや、無念ですよ orz


メインの4つに分けれる、Viewに限定すれば開発も可能ですが・・・


でもIPadのToolを開発するにはMACがいるのよね~ orz

2012年1月7日土曜日

Softimage SDK : ToolContext 01

Softimage2012 より ToolContext APIが使えるようになりました。
OpenGLの描画を利用してToolを作れるようになります。


このようなToolをつくりたいのです
というわけで、何が必要かというと

・VC++
・OpenGL

の二つが必要になります。ハードル高いッス


VC++ と OpenGL


いろいろやってOpenGL開発環境を64bitで整えてみました
で、はしょりますがOpenGLで、ここまでできるようになりました(コードはコピペw)


Softimage SDK とエラー


続いてはSoftimageSDKのマニュアルよりToolContextのサンプルをコピペします
で、ビルドするのですが盛大なエラーの数々を
どうやら PickInfoTool がエラーの原因のようです
サンプルを良く見てみると MyPickInfoToolPickInfoTool が混在してます。

Softimage SDKマニュアル

PickInfoToolMyPickInfoTool これって同じものを指すんじゃね? サンプル間違ってんじゃね?
素人まるだしですが、PickInfoToolMyPickInfoTool に変更したら、エラーは出なくなりました
どこか間違ってるかもしれませんが(汗 


もう一度ビルドをするのですが、今度は次のエラーが
1>ToolContext.obj : error LNK2019: 未解決の外部シンボル __imp_glRasterPos2i が関数 "public: class XSI::CStatus __cdecl MyPickInfoTool::Draw(class XSI::ToolContext &)" (?Draw@MyPickInfoTool@@QEAA?AVCStatus@XSI@@AEAVToolContext@3@@Z) で参照されました。
1>ToolContext.obj : error LNK2019: 未解決の外部シンボル __imp_glColor3d が関数 "public: class XSI::CStatus __cdecl MyPickInfoTool::Draw(class XSI::ToolContext &)" (?Draw@MyPickInfoTool@@QEAA?AVCStatus@XSI@@AEAVToolContext@3@@Z) で参照されました。

どうやら、 OpenGL のライブラリーを正しく参照できてないのかな?
しかし、OpenGL のサンプルでは、あらためてインクルードフォルダを指定する必要はなかったのですが。

いろいろやってみたのですが、解決しませんでした、というわけで、現在停滞中です orz


正月の間に何とかしたかったんだけど無理ーーー


Memo


OpenGL環境の構築
OpenGL(GLUT)サンプルプログラム on Windows7
 このサイトのやり方でVC++2010で64Bit用にビルドした

OpenGLのサンプル
GLUTによる「手抜き」OpenGL入門
 このサイトでサンプルを作成

以下、調査予定のサイト
OpenGLおよびシェーダ言語試用記(Visual C++ 2010 Expressの場合)
Visual C++ 2010でOpenGLを使う
VC++2010でOpenGL使ったりしたい(Windows7で)ベジエ曲線を整数の加減算だけで描画する方法

2012年1月6日金曜日

RIG : [CEDEC 2011]次世代キャラクターアニメーションの基本? フルボディIKエンジンで自然なモーションを実現する

[CEDEC 2011]次世代キャラクターアニメーションの基本?

4Gamerさんのまとめ記事より


ちょ、高度すぎる

・ヤコビ行列
・ヤコビアンの逆行列は通常存在しないために、擬似的にもとめ、最適なものを導出する
(擬似的に設けるときは、転置行列をかけ、正規直行行列に整形し、計算する)

・・・いかん、頭がパプーだw

これに、移動・回転制限、重心を加えたものが、フルボディIKって事ですかね orz


ロボット工学で盛んに研究されてるそうだから、
そっちからアプローチするのも手かも

昔アニマニウムというツールがあって、
それもロボット工学からの応用でした。

重かった理由が、この多重の行列式なんだろうなぁ。


いずれ、RIGなども製作したいから、とりあえずメモだけしておきます。

あー今年の抱負に数学も入れておくべきか orz


 やっぱりアニマニウムに戻るのねw

2012年1月5日木曜日

遅い謹賀新年

あけましておめでとうございます
さて、今年の抱負のまえに、去年の抱負を振り返る事から始めます

ダメだった事 orz


・今年はお小遣い位稼ぐ(夏に液晶タブレットが欲しいぞー
 無理でした〜

・レンタルサバを借りたのでブログ等移転したい〜〜〜。
 サバやデーターベース、CSSの知識が足りなかったので、結局Blogerに


少しずつ進んでる事


・パイソン
 多少なれてきたような
・C++
 とりあえず、64bitでの開発は出来るように、プラグイン一つは出来た!


 と、こんな感じです。達成率は60%ぐらいですかね〜



今年の抱負


・やっぱり稼ぐ
・C++のレベルUP
・OpenGL
・英語(マニュアルを読むぐらい)

 でしょうか、あと仕事では関係ない所で

・ダイエットw
・そば打の練習です
 が追加されました〜w

 本年も、マイペースで進んで行こうかと思います。
 よろしくお願いします〜