アクセスカウンター
アメリカンイーグルスズキ自動車http://www.e-creditcard.info/アクセスカウンターネオサイトワンデー

1月26日

プラグインを勉強するにあたって、C言語も使えるようにならないとだめよね〜と思ってC言語C++)の勉強を始めようと思います。
やっぱり最初から難しいのは続かないので、わかりやすい解説を重点にやってみようと思います。

●初心者のためのポイント学習C言語
http://www9.plala.or.jp/sgwr-t/

OpenGL
http://kaworu.jpn.org/doc/FreeBSD/xjman/man3/glPushAttrib.3x.php
色の情報なら
GL_CURRENT_BIT

線の太さなら
GL_LINE_BIT

個別に指定するの面倒なら全部やってくれる
GL_ALL_ATTRIB_BITS

文字コード
スクリプトを書いたら最初に以下の文を追加しないと、
何の文字コードを利用しているかわからないので、必ず定義してあげること。定義していない場合エンコードエラーがでる場合もある。
# coding:UTF-8

正規表現
http://www.python.jp/doc/nightly/howto/regex.html
http://psyto.s26.xrea.com/python/PQR2.4/PQR2.4.ja.html#reModule

●string型のsetAttr
ストリング型のsetAttrは配列は入れることが出来ないので、配列になっているものはjoinで繋げ、ひとつにしてsetAttrしないと出来ない。

alp = ['a', 'b', 'c']
a = ','.join( alp )
結果 a,b,c

cmds.setAttr( 'アトリビュート名', a )

また、ストリング型に入っている文字を使用する時はgetAttrでアトリビュートに入っている文字列を取り、splitで分けて配列にし直すといい。

●ディレクトリの呼び出し
import sys
fld = 'H:cohshiro\python'

if fld not in sys.path:
sys.path.insert(0, fld)
print '# Add python path "%s"' % fld

import mytools
reload(mytools)
mytools.UI()

●配列番号の指定
配列の中に複数のものを入れてあるときに欲しい部分を指定し、代入できる。

たとえば
shortName = i.split( '|' )
だと、iに入っている文字列をsplitし、分かれたものすべてをshortNameに代入している。
shortName = i.split( '|' )[:-1]
だと、splitして配列の最後のものをshortNameに代入している。

[3:]
配列の3番目から最後まで
変数に1〜10の配列が入っているとすると
3,4,5,6,7,8,9,10
[2:8]
配列の2番目から、8番目まで
変数に1〜10の配列が入っているとすると
2,3,4,5,6,7,8
[:-1]
配列の最初から最後のひとつ前
変数に1〜10の配列が入っているとすると
1,2,3,4,5,6,7,8,9

●エクスプレッション
f *1
translateRopeBA_drv.translateY = 0.156*4;

この式は73以上96以下の式

●エクスプレッション文をpythonを使って書く
エクスプレッションなどの一部以外(対象となるものの名前や数字)を繰り返しで書き、名前や数字を式を使って書き換える方法

num = 181
for i in cmds.ls(sl=True):
vis = i.replace('_geo','_jtVis')
print 'if(display_param.displayNumber>=%d)' % num
print ' %s.visibility = 0;' %vis
print 'else'
print ' %s.visibility = 1;' %vis
print ''
num = num +1

この式は選択した順にエクスプレッションを作成する式。
1、num = 181 を代入
2、選択した順にfor文を一回づつまわす。
3、numに入ってる数字が%dの場所に入る。
%s→文字列
%d→数字

5、numに1を足してnumに代入する。
はじめたときは181からだけど、次は182になる。

同じ感じで変えたい部分をうまく数式を使ってfor文をまわすといい。

*1:display_param.displayNumber >= 73) && (display_param.displayNumber <= 96