3DCG屋さんの活動記録

PROFILE ★★こんな人です

映像制作会社でクリエイティブの修行中。日ごろはMaya&AEを中心にいろんなCGソフトを触りながら、TD寄りの作業が好きで、インタラクティブな体験型空間演出をやりたいと模索中。面白いこと新しいこと大好きな『素直』でいつづける

2019年12月26日木曜日

MayaでRedshiftのコマンドラインレンダー 更新版


以前の記事で

Mayaの標準では対応してないから
cinema4d のコマンドラインツールを使う
方法を書きましたが

C4Dのライセンス管理が変わった?からか
使えなくなってしまったので
検索し直したら

どうやらMayaで標準対応してたみたいです!!
やったね。


というわけで以下の文
"C:\Program Files\Autodesk\Maya2018\bin\render.exe" -r redshift -gpu {0} <mayaファイル名をフルパスで>


ちなみに、末尾のフルパスはそのまま記入。
" " で囲わなくて大丈夫です。

GPUを複数搭載してるハイスペックPC遣いさんは、GPU指定できるようです。



あーよかった。

Commandline render 最高!

----------------------------------------------

参考サイトはこちら。
ありがとうございます。




2019年12月21日土曜日

Windows で Qt designer を使ったGUIを作成するための PyQt5インストール(Python3.7のインストールから)


■Python3.7インストール
https://www.python.org/downloads/release/python-376/


■環境変数にPython3を追加
python37フォルダ
python37/scriptsフォルダ
※python2が環境変数のPathにあるときは、python3が2の上にくるように

■PyQt5使うためインストール
コマンドプロンプトで実行

pip install SIP
pip install PyQt5

ここでPyQt5のインストールが、pipのバージョン低いという理由でストッぷ!

■pipの更新

py -m pip install --upgrade pip

※pythonにするとpython2が実行されるのでpyで実行

更新されたら、PyQt5もインストールしましょう。

ちなみに。
python -m pip install PyQt5 とするとpython2にインストールされるみたい。


以上でQtが使えるようになる!
------------------------------------------

Qt desinger使いたい人は以下の作業も。
■Qt desingerのインストール

と思ったら、、ん?

・Qt designer
・Qt Creater
・Qt design studio

3つある!?
https://stackoverflow.com/questions/25559332/qt-designer-vs-qt-quick-designer-vs-qt-creator

まぁよくわからないけど
Qt design studio community版 無償版を試してみることに。
https://www.qt.io/blog/qt-design-studio-1.3-released

。。。検証したところ、私のやりたいGUIメインの開発はQt designerで十分。
あとはpythonで書くから。
ということで

Qtのインストール
https://qiita.com/yasumodev/items/399ec89b7205e3c0bab1



---------------------------

僕がやろうとしてることのチュートリアル

PythonのUIをQtで
https://resources.qt.io/development-topic-getting-started-with-qt/creating-user-interfaces-with-qt-for-python-on-demand-webinar


あれ?
いまいち立ち位置がわからないので、もう少し調べよう。
Python用Qt ん?w
https://www.qt.io/qt-for-python




2019年11月19日火曜日

色温度(K)をRGB値に変換


MayaのVray PhysicalCameraにあるWhiteBallance(ホワイトバランス)がRGB指定だったので
変換できないかなーと思ってたら
解説サイトがあった!!!


http://www.tannerhelland.com/4435/convert-temperature-rgb-algorithm-code/
ありがとうございます!!!!


アルゴリズムをそのままに、日本語メモ添えたものにした。
K(ケルビン) → RGB 変換、最後にPrint出力。


自分用メモ。



2019年10月25日金曜日

2019年10月24日木曜日

Movie file out でファイル名のパスをPythonで指定


備忘録
-------------------------------

Movie file out で 書き出し(プリレンダー)


project.folder でプロジェクトのフォルダパス取得

../ で親階層に移動

me.name でノード名取得

me.curSeqIndex でタイムラインのフレーム取得


--------------------
以下サンプル


MovieFileInのFileに以下をPythonで入力
project.folder+'/../render/'+str(me.name)+'/'+str(me.name) +  '.' + str(me.curSeqIndex) + '.png'

2019年10月21日月曜日

全フレームを正確にレンダリングする


Touchdesigner で プリレンダーするとき
フレーム欠けせずにレンダリングする方法
https://station.backspace.tokyo/satoruhiga/TDWS_2018/post/day13/


こちらで解説してもらってました。

基本的に


Movie file out

につなげて、

record を ONにしたら書き出し開始。

再生して、終わったら、recordをOFFに。


フレーム落ちしないように

Realtime を オフにして

タイムラインは Onceに変更しておくこと。


ちなみに、PCスペックが低いと
動画書き出しではフレーム落ちしてるので

画像シーケンスで保存することをお勧め



2019年7月26日金曜日

Redshift をコマンドラインレンダリングする Mayaで


※この記事は 2019年12月26日に更新しました。
新しい記事はこちらへどうぞ



以下、古い記事です。
ーーーーーーーーーーーーーーーーーーーー-------------------------------------------------
いつも通りではエラーがでたので、調べた羅ここに書いてあった



ちなみにいつもは

"C:\Program Files\Autodesk\Maya2018\bin\render.exe" -rd <Mayaシーンファイルのフルパス>


以上。めちゃ簡単。
これで、レンダー設定の通りできる。
複数のシーン書き出したいときは、


"C:\Program Files\Autodesk\Maya2018\bin\render.exe" -rd <Mayaシーンファイル1のフルパス>
"C:\Program Files\Autodesk\Maya2018\bin\render.exe" -rd <Mayaシーンファイル2のフルパス>
"C:\Program Files\Autodesk\Maya2018\bin\render.exe" -rd <Mayaシーンファイル3のフルパス>

てするだけで、順番にレンダリングしてくれる。


ただ、Redshiftではうまくいかなくて困ってた。
で、↑の記事。
どうやらCinema4Dのツールがいるらしい。
ということで体験版はこちら。


・・・


出来た!

おしまい

2019年7月23日火曜日

ライブ配信やってみる


Touchdesigner
NDI output(TOP)  commercial版
OBJS(plugins NDI install)
Youtube live


以上を組み合わせて配信までできた。
ただ、YoutubeとOBSとの遅延が1分ほどある。


MacBookProだったけど、ファンうるさいくらいずっと稼働!
ということで、高性能PCが欲しいっす。


一眼とか高画質カメラをHDMIでキャプチャして繋げれば
さらになんかハイレベルなものが作れそうかも



OBSはYoutubeに最終的に配信するソフト、って感じかな。
NDIは、今回は1つのPC内で完結しましたが
他のPCで処理を分散したいときに活用できる。





例えば、
PC1でUE4の映像リアルタイム描画
↓NDI通信
PC2でTouchdesignerでリアルタイムエフェクトと合成
↓NDI通信
OBS
Youtube





参考
OBSとNDI
Touchdesigner NDI  TOPs


2019年6月6日木曜日

Googleスプレッドシートに画像を一括で挿入(IMAGE関数)


ほぼこちらのスクリプトです!笑
https://www.katsushikatech.net/entry/create-file-list-with-google-apps-script


ありがとうございます!


そして、IMAGE関数に貼り付けるのはファイルIDなので、
URLではなくIDを取得する内容に変更します。

用参考
https://developers.google.com/apps-script/reference/drive/file


list.push([file.getName(), file.getUrl()]);//名前とURLを表示します

変更(ID取得)
list.push([file.getName(), file.getId()]);//名前とIDを表示します★

さらに変更(IMAGE関数に)
list.push([file.getName(), '=IMAGE("http://drive.google.com/uc?
export=view&id='+file.getId()+'")']);//名前とIMAGE関数式を表示します★


以上。

2019年6月4日火曜日

TD memo


Python  scriptでパラメータ変更


TextDAT でシンプルに処理したい。
地味に時間かかった。

色々お作法があるみたいですね。



参考サイト

チップチューンとか面白そう。
音に関する記載が多いので、改めて参考にさせていただきたい!


2019年5月23日木曜日

Arduino Unoでキーボードとして文字入力!その1


まずこれで
L地下、ボタンでLED点灯テスト
よしよし


次にキーボード入力するぞ!
http://eucalyn.hatenadiary.jp/entry/original-keyboard-05  
が、keyboardのコマンドがつかえない・・






あ!UnoはUSBデバイスで認識されないからキーボードにできない!だと!?

まじかぁ。







でもファームウェアを書き換えることでUSB HIDデバイスとして認識されるようになるらしい。
・・・色々調べた僕の理解




キーボードとしてArduino使いたい
<必要なこと>
ボタンを押したらキーボードの挙動をするスケッチをArduinoに書き込み
Arduino自体がPC側でUSB HIDデバイスとして認識される必要がある

①は普通にIDEで書き込めばいいけど
②が問題。UnoはUSB HIDで認識されないファームウェアである。

諦めるな!USB HIDで認識されるファームウェアに書き換えればOK!
(え?ファームウェアって勝手に書き変えれるの?そうみたいです)

書き換え用のファームウェア(USB HID認識されるやつ)をダウンロード  
Atmel FLIPというソフトダウンロード&起動して③で書き換え。(Arduinoの指定の端子を短絡しながら書き換え!)




以上!



ファームウェア書き換え完了したので、
USB HIDで認識されるようになった
=書き込んだスケッチの通りキーボードとして機能する!




イエーーイ!^^





※ここで注意
ファームウェアの書き換えはせいぜい100回ほど・・・(非推奨な行為のため)
しかも、スケッチを書き換えるためには元のファームウェアに書き換え戻す必要あり






え?





おいおい、それはつまり、、、



キーボードとしてのスケッチの書き換え&検証のたびにファームウェアを書き変える必要ありってこと?
あっというまに100回とかいくでしょ。。





つまり、実際はやめとこう!ってことじゃん。



USB HIDとして認識させたい(=キーボードとして使いたい)なら、最初からファームウェアが対応しているものを使いましょうってこと!
Arduino Leonald か Micro 


なるほどー









私も手持ちがUnoでどうしてもキーボードとして使いたかったので
ファームウェアの書き換え作業を進めてましたが、
ギリギリのところで「※注意 スケッチの書き換えには、元のファームウェアに戻す必要あり」を知り、中断しました!!!


といことで Microで試しましょう。


<補足>
・③はArduino-keyboard-0.3.hex
・④はFLIP 3.4.7 for Windows (Java Runtime Environement included)

・Flipの起動でエラー出たときはJavaインストールしたら解決した

順を追ってキャプチャ画像貼ります。

Flipのインストール画面



Flipの起動画面・・・なんとエラー!?



落ち着いてエラーメッセージ見て、Javaをインストールすることに。




 そうしたらFlip起動できた^^





まぁ、結局使わなかったんですけどね。






------------------------------------------------------------------------------------------------------


参考サイト

2019年5月19日日曜日

激安DVDプレーヤー、ツインモニターで再生可能な動画形式検証


はい。


ポータブルDVDプレーヤーとして買ったら
SDカードさせて、動画みれるとのことでいろいろ検証。


説明書はこれ

720x576 avi/vob/flv/mpeg2/mpeg4 まで大丈夫

とのことでした。


検証開始。
ひたすら動画変換してSDカードに入れて、実機検証。

まず圧縮率高いmp4!・・・だめまじか


ここから4時間・・・

結論だけいうと、AEのMPEG2の設定でした。
ビットレートがMAX5Mだとフレームレート落ちることなく何とか再生。





以上、自分用のメモでした。
あー疲れた。

ちなみに、480x360で10分動画が500MB未満。
720x540で2分動画が100MBほどでした。

今回買った端末が128GBまでのSDカード対応らしいので
映画なら10~20本入りそう!

おーし。


て、128GBのSDカードほしいな。うちのはまだ8GB。。。

2019年5月14日火曜日

2019年4月17日水曜日

Aftereeffects のエクスプレッションのseedRandom固定させる Script


エクスプレッションで

Random
Wiggle

などランダムな数を使用するとき
レイヤーの順番変えたら動き変わって困るときは
seedRandom()をつかってseed固定します。



まぁ、エクスプレッションの先頭に1行入れるだけですが
今回挿入するプロパティが多かったので自動化Script作りました。



使い方は
プロパティ選択して、Script実行するだけ。
自動でエクスプレッションの先頭に、1文が挿入されます。








参考サイト!!

https://www.cg-method.com/entry/expression-to-script/
http://aejsx.hiroshisaito.net/layer-object/attributes/index

2019年4月12日金曜日

Arduinoと超音波センサーとProcessingで簡易モニター 検証


検証備忘録


仕事でAftereffecstのモーショングラフィック作業してるとき
ふと「キーで気持ち良いボヨヨンとかの動きをさっと作りたいので、PysicalUI作りたい。USB繋げてすぐセンシングして、テキストファイル書き出しして、AEにコピペして」みたいな完全オリジナルPUI作りたいと思って

帰ってから検証して見たのメモ。


実験
Arduino UNO + 超音波センサー
Processing + 可視化グラフ(まずは)

手を自由に動かしてインタラクティブにグラフ確認と、テキスト出力までしたい


結果
全然ダメ

超音波センサーは手のひらでセンシングすると20〜30cmくらいでもうノイズ目立ってくる。
まぁノイズなら調整で正せるかもだけど、反応性が悪い気がする。ついてこない。
(スケッチの問題だと思われる。時間かかるのでまた今度)



次のチャレンジ
MIDIコントローラのスライダーと
Processingを繋げてインタラクティブなUIとテキスト出力
したい!
➡️ここを参考にしてやりたい



とりあえず、今回試したスケッチはこちら。


Arduino



//********************************************************************
//*超音波センサを使って距離を表示するプログラム
//********************************************************************
//********************************************************************
//*超音波センサを使って距離を表示するプログラム
//********************************************************************
#define echoPin 3 // Echo Pin
#define trigPin 5 // Trigger Pin


double Duration = 0; //受信した間隔
double Distance = 0; //距離
void setup() {
Serial.begin( 9600 );
pinMode( echoPin, INPUT );
pinMode( trigPin, OUTPUT );
}
void loop() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite( trigPin, HIGH ); //超音波を出力
  delayMicroseconds( 10 ); //
  digitalWrite( trigPin, LOW );
  Duration = pulseIn( echoPin, HIGH ); //センサからの入力
  if (Duration > 0) {
    Duration = Duration/2; //往復距離を半分にする
    Distance = Duration*340*100/1000000; // 音速を340m/sに設定
    Serial.print(Distance);
    Serial.write("\n");
  }
  delay(1); //シリアルモニタで確認するときは100
}




Processing
/*
 * Arduino - Processingシリアル通信
 * センサーの値をグラフにプロット
 * Processing側サンプル
 */
import processing.serial.*;


int NUM = 1; //センサー個数。今回は1個。「ショックセンサーの例」では2個
Serial myPort; // シリアルポート


float sensors = 2; //センサーの値を格納する配列
int cnt; //カウンター


// グラフの線の色を格納
color[] col = new color[6];
int pSize = 2;  //異なる2つのプロットサイズで


void setup() {
  //画面設定
  size(1600, 400);
  frameRate(240);


  // シリアルポートのリスト取得
  //println(Serial.list());
  // ポート番号とスピードを指定してシリアルポートをオープン
  String portName = Serial.list()[1];
//  myPort = new Serial(this, portName, 9600); //Win
  myPort = new Serial(this,"/dev/cu.usbmodem1421",9600); //Mac
  // 改行コード(\n)が受信されるまで、シリアルメッセージを受けつづける
  myPort.bufferUntil('\n');
  //グラフ初期化
  initGraph();
}


void draw() {
  // センサーの数だけ、グラフをプロット 。今回は1個。複数個のときは「ショックセンサーのプログラム参照」
  fill(col[1]);
  float tx = map(cnt, 0, width, 10, width); //左に余白10
  float ty = map(sensors, 0, 100,height-10,10); //上端がy=0のため、下端をベースに描画するにはこのリマップ← ※上下余白 100
  ellipse(tx, ty, pSize, pSize);
  if (cnt &gt; width) {
  initGraph();
  }
  //カウンタアップ
  cnt++;
}


//グラフの初期化
void initGraph() { 
  background(47);
  noStroke();
  cnt = 0;
  // グラフ描画の線の色を定義
  col[0] = color(255, 127, 31);
  col[1] = color(31, 255, 127);
  col[2] = color(127, 31, 255);
  col[3] = color(31, 127, 255);
  col[4] = color(127, 255, 31);
  col[5] = color(127);
}


void serialEvent(Serial myPort) {
  // シリアルバッファーを読込み
  String myString = myPort.readStringUntil('\n');
  // 読み込んだ文字列を 小数(数字)に変換して、関数に代入
  sensors = float(myString);
}





-----------

参考サイト
今後「Arduinoからのシリアル通信結果をProcessingでテキスト出力」はこれまんま
https://kenyu-life.com/2018/11/24/pulsesensortxtdata/




2019年4月9日火曜日

batチャレンジ! フォルダ内のファイル名から、文字列変換テキスト作成


ファイルをドラッグ&ドロップしたらリスト取得、のbatはよくあるんですが・・・

「フォルダ(ディレクトリ)」をドラッグ&ドロップして、求める結果が得られなかったので、今回自分が調べた内容を記録に残します。



<目的>
フォルダをドラッグ&ドロップ(以降D&D)して、そのフォルダ内のファイルをリストにしてテキストファイルに書き出す。


調べてすぐ出てくるのは、D&Dしたフォルダ・ファイルのカレントディレクトリのリストが取得されるっていうこと。
中身(下位層)のリストが取得できない!

シンプルなこういうの



・・・


で作ったのがこれ。

使い方は、
以下コマンドをbatにして保存。
フォルダをD&Dすると、batと同じフォルダにtxtファイルが保存されます。


@echo off
rem フォルダをbatにD&Dしてフォルダ内のリスト取得
rem コマンドプロンプトに表示
rem forfiles /p  %~p1 /c "cmd /c echo @fname @ext"
rem テキストファイルに書き出し(batのある場所にtmp.txt一時作成)
forfiles /p  %1 /c "cmd /c echo @fname@ext>> %~p0\tmp0.txt"
setlocal enabledelayedexpansion
for /f "delims=" %%a in (%~p0\tmp0.txt) do (
  set line0=%%a
  set line1=!line0:""=.!
  set line1=!line1:"=!
  echo !line1!>>%~p0\tmp1.txt
)
rem type %~p0\tmp0.txt > %~p0\rawlist_%~n1.txt
type %~p0\tmp1.txt > %~p0\FILELIST01_%~n1.txt
del %~p0\tmp0.txt
del %~p0\tmp1.txt
endlocal


---------------
以上。

D&Dするフォルダと同じドライブにbatを保存して使用してください!




<参考サイト>



--------------------------------------------
ちなみに、かなり特殊だけどカスタマイズしたのがこちら。
【テキスト1】ファイル名(拡張子なし)取得して、前後に文字列挿入&連番
【テキスト1】ファイルのフルパス名取得して、前後に文字列挿入&連番











2019年4月8日月曜日

コマンドプロンプトでテキストファイルの先頭・末尾に文字列挿入


備忘録

簡単かと思ったら時間かかったのでメモ。
Batにして時短に活用。



rem test1.txtの各行の先頭と末尾に文字列挿入してtest1_edit.txtとしてファイル作成




rem ドラッグ&ドロップしたテキストファイルの中身に対して、各行の先頭と末尾に文字列挿入してaddText.txtとしてファイル作成
rem  ドラッグしたファイルは %1、ちなみにこのバッチファイル自体は%0、で取得できる
@echo off
SETLOCAL enabledelayedexpansion

set PRE=pre_
set SUF=_suf
set LINE =

for /f  "delims=" %%a in (%1) do (
set LINE=!PRE!%%a!SUF!
echo !LINE! >> tmp.txt
)
type tmp.txt > test1_edit.txt
del tmp.txt

endlocal


2019年4月3日水曜日

末端のフォルダ名だけ抽出取得 AE Script メモ


Aftereffects  Script  Javascript

フォルダ選択ダイアログで、末端のフォルダ名だけ抽出して取得する


//フォルダ選択ダイアログ

var prjPath = "S:/19001MB_CaptainTusbasa/06_afx/footage/zz_CH_Material/sp011"

var defaltDir = new Folder(prjPath);
dirObj = defaltDir.selectDlg("フォルダを選択してください");

dirPath = dirObj.fsName; // フォルダのパス名取得
fileList = dirObj.getFiles(); // フォルダ内のファイルリスト化

alert (dirPath);
dirName = dirPath.split("\\").slice(-1)[0]; //末尾のフォルダ名だけ取得
alert (dirName);


------------------
参考
http://nakatoji.lolipop.jp/index.php/extendscript/fileaccess/fileaccess-list/374-2014-06-04-20-42-9

http://aejsx.hiroshisaito.net/propertygroup-object/methods/property


https://sites.google.com/site/annamillersclub/script-menu/gyakubikiscript/%E3%82%A2%E3%82%A4%E3%83%86%E3%83%A0%E3%81%AE%E7%A8%AE%E9%A1%9E%E3%82%92%E5%88%A4%E5%88%A5%E3%81%99%E3%82%8B

http://xirasaya.com/?m=detail&hid=176


文字列入力ボックス
http://www.openspc2.org/book/AfterEffectsCS6/easy/dialog/003/index.html


バックスラッシュを文字列に使うときは2回連続で(\\とか)
https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Regular_Expressions



配列の末尾を抽出する方法  .slice(-1)[0]
https://qiita.com/kerupani129/items/64ce1e80eb8efb4c2b21

2019年4月1日月曜日

AEで時短Scriptいろいろ検証


■複数のフッテージ名をクリップボードにコピー

//★フッテージ名をリストで取得したいとき★
//Projectパネルで複数選択してScript実行
//あとはエクセルに貼り付け、データ/テキストから列へ/カンマONでOK/コピーして形式を選択して貼り付け/列と行の入れ替え。

var myItems = app.project.selection;
var myItemName = new Array(app.project.selection.length);

for (var i=0; i <myItems.length; i++){
    myItemName[i] = myItems[i].name;
}

//alert(myItemName);
prompt("test",myItemName);

----
参考
http://www.openspc2.org/reibun/AfterEffects6.0/JavaScript/ref/Global/prompt/index.html
https://aruo.net/arbk/blog/article/change_comma_separated_data_into_cells_on_spreadsheets



■コンポジションの複製


■レイヤーの置き換え


■ その他 雑メモ

//選択したアイテムをリスト化(名前取得) ★
var selItem = app.project.selection; //選択しているコンポジションをリスト化 
var selName = [] ; //それの名前を入れるリスト
var newCompList = []; //複製したコンポのリスト

//基礎勉強の部分
//alert(selItem); //選択したアイテムタイプ名の表示
//alert(selItem[0].name); //最初に選択したアイテム名表示
//alert("選択したコンポジションの数     "+selItem.length); //コンポジションの数

for(i=0;i<selItem.length;i++){
    selName.push(selItem[i].name); //選択アイテム名をリストに追加
}


//Lv1コンポ(親)の複製
//コンポジション複製:
newComp = selItem[0].duplicate(); //選択したコンポを複製
newComp.name = selName[0]+"_dupCmp";  //複製したコンポの名前変更
newCompList.push(newComp);

//Lv2コンポの複製
//コンポジション複製:
newComp = selItem[1].duplicate(); //選択したコンポを複製
newComp.name = selName[1]+"_dupCmp";  //複製したコンポの名前変更
newCompList.push(newComp);
//コンポ内のレイヤー置き換え
newCompList[0].layer(3).replaceSource(newCompList[1],false);

alert(selName); //コンポジションのリスト名取得と表示
alert(newCompList);


 newComp.duration = shotComp[i].duration; //複製したコンポの尺変更(秒で)
 newComp.parentFolder = selItem[2];
 newMSKComp.push(newComp);



■フォルダ選択ダイアログ
http://nakatoji.lolipop.jp/index.php/extendscript/fileaccess/fileaccess-list/374-2014-06-04-20-42-9





2019年3月29日金曜日

Mocha2019 (@Aftereffects2019) でUberKeyボタンの表示させかた


備忘録

Mocha2019使ってて、

「あれ!?ウーバーキーがなくなってる!?
Uber Key が消えてる!表示されない!なんで!?」

ってなったので自分用メモ。

ツールバーで右クリックして Advanced をON!
UberKey(ウーバーキー)は修正するときの強い味方です。



●UberKeyとは
https://borisfx.com/support/documentation/mocha/6.0.0/




ちなみに、トラッキングデータからスタビライズしたいときに
私は結局 データに -1 をかけて 親子関係にしてます。


<NULL新規作成して、トラッキングデータをペースト。POSにエクスプレッションを入れます>

posKey  = [transform.position[0],transform.position[1]];
[posKey[0]*-1, posKey[1]*-1]



これで、スタビライズデータの出来上がり!

ソースの親をこのNULLにしたら、ソースは止まります!





てか、Mocha2019 まじで速くなってますね。
体感で3倍になってます。
自分のPCが3DCG用にグラボが GTX1080(ただしiではない)をのせてるからかも。


これは AEとの連携サイコーだし、手軽に使えるのは強いです。


2019年3月28日木曜日

2019年3月27日水曜日

Slackでリンク埋め込みのコメントをする方法


何だかんだで時間かかったのでメモ


①ワークスペースのToken発行(作成?)
https://api.slack.com/custom-integrations/legacy-tokens



②投稿するチャンネルのIDを確認
https://qiita.com/YumaInaura/items/0c4f4adb33eb21032c08




③API経由で投稿
https://api.slack.com/methods/chat.postMessage/test


実際にリンク埋め込みコメントするときは
↑の text で

<URL l 文字列>

を入力。
例えば

<https://www.google.com/?hl=ja|:grin:>


で、笑顔アイコン(googleサイトのリンク埋め込み)




<参考>
https://qiita.com/tanjo/items/ea467c7de3fbd849aa4b

2019年3月26日火曜日

Maya MASH と Redshift の練習


備忘録

■MASH カラーノードとRedshift Material
https://lesterbanks.com/2019/03/how-to-use-mash-color-nodes-with-redshift/






■ PBRのMapをConnectする まとめ

Thanksfor!
https://www.youtube.com/watch?v=9dMeT6iWHnw




■Substance Painter/Designer からの書き出し


PBR MetalRouchが良さそう。
参考サイト・・・わからんくなりましたm(__)m




2019年3月15日金曜日

pyqt で 自作スクリプト 備忘録2


備忘録続き

■GUI起動時・閉じたときに実行される処理!
GUIの設定を保存して、次回開くときに設定を保持するには
読み込みpyに以下のdefを追加すると便利!!!

以下、参考サイトのほぼほぼ引用ですが!

class mainUI(QtGui.QMainWindow):
    def __init__(self, parent=None):
        super(mainUI, self).__init__(parent)
        self.ui = test_Ui.Ui_MainWindow()
        self.ui.setupUi(self)
        self.load_setting()
    def load_setting(self):
print "LoadSetting!"
    def closeEvent(self, event):
     print "GoodBye!"
def main():
    app = QtGui.QApplication(sys.argv)
    win = mainUI()
    win.show()
    sys.exit(app.exec_())
main()



load_setting
closeEvent

なるほどーこれは便利!!!



■なんじゃこりゃエラー
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 0: ordinal not in range(128)」

こちら方の解説通りやったら解決したので、メモメモ

①まずエラーが出る環境で以下を実行

import sys
print(sys.getdefaultencoding())

→結果が ascii ならアウト!(きっとまちがいなくこれ)

②site-packageにあるpyを新規保存
そのためにフォルダ探す

import site
print (site.getsitepackages())
ちなみに私は C:\Program Files\Autodesk\Maya2018\Python\Lib\site-packages でした




③ そして site-package フォルダに以下を保存!

import sys
sys.setdefaultencoding('utf-8')
sitecustomize.py の名前で

④ はい、確認で環境で以下を実行


import sys
print(sys.getdefaultencoding())

→結果が utf-8 なら成功!!



参考にしたサイト ~感謝を込めて~
http://flame-blaze.net/archives/5696
https://qiita.com/jack-low/items/91bf9b5342965352cbeb
http://shu223.hatenablog.com/entry/20111201/1328334689
https://qiita.com/chatrate/items/eb4b05cd1a6652529fd9