SuiTechLog

Unity,Arduino,RaspberryPiなど、モノづくり系を気ままに書き残すブログ。

HoudiniのHeightField(地形生成機能)を使ってラフモデルをブラッシュアップ

HoudiniのHeightField(地形生成機能)を使ってラフモデルをブラッシュアップ ラフモデルを、HeightField(以下HF)というノード群をつかって 雨や風などでの風化を加えてそれっぽく見せます。 HFは、HeightMapのような二次元情報をベースに、ノイズや雨風など…

箱庭プロジェクト AutoUVとざっくり地形モデリング

AutoUVとざっくり地形モデリング 絵から起こす イメージ さっそくイメージをもとにこんな感じというラフなモデルを作ります。 すごいざっくりしてますが、徐々に形にしていきます。

箱庭プロジェクト 制作まとめ

はじめに 今回、Houdini、Substance Painter, Unity、シェーダーのお勉強ということで箱庭をテーマに制作を行ってみました。 新しくやったことをメモしました。 普段コーディングばっかりでモデリングは基本やらないので、割と大変でした。

maxscript Dotnetを使って、ファイルの更新日時を任意の表示フォーマットで取得する

はじめに maxscript の getFileModDateメソッドで、ファイルの更新日時とかを取得できますが、 もっと自由なフォーマットにしたり、スマートに取得したかったのでDotNetを使ってみました。 ファイル情報を取得

PythonをDoxygen使ってドキュメント化するよ! その3  MarkDownでMainPageとDocumentation Pageを作成

はじめに 今回ほぼPythonは関係なくなっちゃいましたが 一応前回の続きです。 今回は、MarkDown記法を使ってMainPageとDocumentation Pageを作成します。 Doxygenで使えるMarkDownについて Doxygenでは、MarkDownが全て使えるわけではなく以下のページに定義…

MaxscriptからOLEを使ってExcelにアクセス

はじめに 今回は、MaxscriptからOLEを使ってExcelにアクセスしようという話です。(Pythonじゃないの?とかいわない) なぜやることなすこと日本語文献が少ないのか…ニッチすぎるからでしょうか… というわけで備忘録。

PythonをDoxygen使ってドキュメント化するよ! その2 コメントの書き方

前回の記事で、インストールと設定、作成の流れが終わりました。 次に、Doxygen形式のコメントについて解説していきます。 おおまかな流れ Doxygenはコメントに書き込まれた特殊コマンド(@から始まる特殊な文字)を読み取って、独自のルールでドキュメント…

Unity  放物線をえがく高速弾のすり抜け事故対策

前回の記事では、直線弾のすり抜け対策を実装しました。 今度は放物線をえがく高速弾ですり抜けが発生する!という話をきいて 解決策を考えてみました。

PythonをDoxygen使ってドキュメント化するよ! その1 インストールと設定

はじめに MayaとかでよくつかわれるPythonをDoxygen使ってドキュメント化する話です。 PythonにはPydocというドキュメント化機能があるようなのですが、他の言語との互換性のあるDoxygenを使いたく、やってみました。 環境は64bit Windows7です。 なぜか資料…

Unity  弾をとばして、跳弾とかさせたい

※18/04/07:一部、デバッグ用レイ表示にミスがありましたので修正させていただきました。 質問 「弾をとばして、あたった面の角度によって跳弾させる処理とかできないか」という質問があったので考えてみました。ほかによさげな方法があれば教えていただけれ…

Maya Python MELスクリプトの履歴を見て、Pythonに脳内変換する(Maya Python導入始めの方むけ)その1

Python導入したい よくMayaでは「Python使え使え便利だよ」って言われますが Mayaのオペレーションの履歴(スクリプトエディタに表示されるあれ)ってMEL固定ですよね。 なので導入始めの方は、どうしてもMELから変換でてこずることがあります。 そこで、変…

Maya Python print デバッグよりも楽なpdbデバッグ

Pythonのデバッグ 普通のPythonでも使える技です。(標準機能です。) Python でデバッグするときは割とprintで値を表示したりすると思いますが 以下の方法がかなり楽でした。 import pdb; pdb.set_trace()

Unity シェーダーでスパイクノイズのお勉強

ひさしぶりのUnityシェーダーのお勉強をいたしました。 スパイクノイズは以下のサイトを参考制作させていただきました。

Maya Python カメラの画角はいずこ・・・

カメラの画角がアトリビュートエディタにあるのにとれない。というかこれはあくまで表示だけっぽいです。 そもそもMayaの場合、焦点距離にキーをうつことで画角を設定するのです。 というのも、これは、実物のカメラにあわせて カメラアパチャ(フィルムサイ…

Maya Python メモ 2 コマンドプロンプト実行・行列演算など

行列演算を行う(OpenMaya #単位行列を生成 ident_mat = om.MMatrix() #nodeの行列を取得する import maya.api.OpenMaya as om node_mat = om.MMatrix(cmds.getAttr(node+".matrix")) #nodeを含めたワールド行列をもとめる node_wmat = om.MMatrix(cmds.getA…

Unityのシェーダーを3dsMaxのビューポートシェーダーへ移植する その4 設定編

前回の続きです。 前回書き損ねていた点を追記します。 Normal画像読み込み設定 Normal画像を読み込むときは以下のGamma1の設定にオーバーライドします。 こうしないとNormal画像にガンマがかかって正しい凹凸がでません。

シェーダー書きはじめTIPs(おもにUnity)

最近は誰でもシェーダーが書ける時代になりました。処理を軽くするためのルールがあるようなのでそのいくつかをメモしておきます。(今後も増える予定です。)ピクセルシェーダー(フラグメントシェーダー)は1ピクセル毎に処理されるため、ちょっとの不手際…

Unityのシェーダーを3dsMaxのビューポートシェーダーへ移植する その3 頂点シェーダー・フラグメントシェーダー

前回の続きです。 今回は頂点シェーダー部分とフラグメントシェーダー(ピクセルシェーダー)部分を3dsMaxへ移植するメモです。 頂点シェーダーでの処理の比較 頂点座標(プロジェクション空間) Unity UnityObjectToClipPos(v.vertex) mul(UNITY_MATRIX_MVP…

Houdini メモ Alembicで書き出し Mirror Curveでパーティクル制御 その他

Alembicで書き出し(Apprenticeでは不可) 「ROP Alembic Output」ノードを使用します。 Vallid Frame Range で、書き出す範囲を指定して、Alembic Name でパスを指定、Render To DiskでAlembicファイルを書き出すことができます。 なお、ファイルフォーマッ…

Unityのシェーダーを3dsMaxのビューポートシェーダーへ移植する その2 プロパティ・ライト情報・入力データセマンティクス

さて。前回得た情報を元にUnityのシェーダーを3dsMaxへ移植していきます。 それぞれ移植するための対応表をメモしておきます。 GUIへのプロパティの移植 プロパティをGUIに表示する対応表は以下の通りです。 Unity //Texture2D _BaseMap ("BaseMap", 2D) = "…

Unityのシェーダーを3dsMaxのビューポートシェーダーへ移植する その1

ということをしましたので、備忘録。 Unityのシェーダーは"UnityCG.cginc"などによって難しい処理をカバーしていて、かなりラクできるようになっています。3dsMaxで書く場合はそう言った部分を自分でやらないといけないのと、3dsMax独自のセマンティクス等も…

Pythonスクリプト書くときの小技メモ

新旧問わず小技メモをまとめました。 リストの内容をズラす小技 Pythonじゃなくても使えます 何個ずらすかをs 元のリストをog ずらした後のリストをshとすると og = [1,2,3,4] sh = [] s = 1 print(og) for i in range(len(og)): sh.append(og[(i-s)%len(og)…

Houdini Wrangleのメモ

Wrangleで変数配列 int v = array(1,2,3,4,5);//int型 vector2 v2 = array({1,5},{5,6},{5,4},{-1,0},{-0.5,-8},{5,6});//vector2型 配列の大きさを取得 int ln= len(v2);

Houdini Tips WrangleでUVいじったりとかしたときのメモ

Wrangleでuvをいじる Vertexに対してWrangleで@uv(vector2型)に直接値をいれると、その頂点のuvを直接いじることができます。 プレーンな状態であれば「uvlayout」SOP等を前にはさんでおかないと、ビューポートには反映されるもののレンダリングに反映され…

Houdini Tips ポリゴン数へらしたモデルつくりたい

ポリゴンを均一にならして、ざっくり減らしたモデルを作りたい(当たり判定とか、表面を覆うバリアのようなモデルをつくるとか色々応用がきくであろう)TIps そのままRemeshノード作戦 もとの形状を維持して、エッジの長さを基準になるべく均一にリメッシュ…

Houdini Tips

ポリゴンをバラバラにする Facet ノードをつないで Unique Pointのチェックをつけるとポリゴン面毎にバラバラにすることができます。 バラバラなポリゴンをくっつける

Houdini Tips DOPへん メモリ使用率が大変なことになる

DOPでシミュレーションをかけたらメモリ使用率が100%になってPCが止まる DOPのシミュレーションキャッシュをどんどんメモリにためこんで、一定のフレーム以上先にすすまなくなってしまう現象が発生しました。

Motion Builder Python

Motion BuilderのPythonでアニメーションキーいじってみましたがえらいめんどくさかったので忘れないようにメモ すでに打ってあるキーを取得する キーデータはパラメータ毎にこういう入れ子構造になっているようです。 あるオブジェクト └AnimationNode(ルー…

Mayaの便利小ネタ2 ~ショートカット編~

背景色を切り替える alt + bで、ビューの背景色を「グラデーション、単色」などコロコロと切り替えることができます。他人に見てもらうときとか、みづらいパーティクルの作業時などに便利です ビューの最大化

Houdini Tips

ハニカム化 RemeshSop等をかけてすべて三角ポリにしてから、DivideSOPで三角ポリをハニカム化できます。 DivideSopのComputeDualのチェックはONにしてください。 TIMESHIFTノードで計算軽量化