[Blender]Mantaflow


次期のバージョンから、流体機能がMantaflowという、新しいものに置き換わる。
そのMantaflowを、現行のblender(2.79)に組み込んだものを使うことが出来る。

↓ダウンロード
Blender-Fluid-Mantaflow branch

Mantaflowは煙と液体を表現する事が出来る。
この記事で説明するのは液体。

続きを読む

[Blender] Pythonメモ。トランスフォーム

Pythonスクリプトのメモ。
位置、回転、スケール。

●Cubeという名前のオブジェクトを、Z方向に1移動する。
import bpy #←これを読み込まないとスクリプトでオブジェクトを操作出来ない。
bpy.data.objects['Cube'].location.z +=1
●選択したひとつのオブジェクトを、Z方向に1移動する。
import bpy
bpy.context.selected_objects[0].location.z += 1
●選択したひとつのオブジェクトを、オブジェクトの中心Z方向を軸にして15度回転させる。
import bpy
import math #←mathを読み込まないとpi(円周率)が使えない。

hako = bpy.context.selected_objects[0]
atai = 2 * math.pi / 360 * 15 #←15度をラジアンに変換
hako.rotation_euler.z += atai

※角度を指定する際、値は度数法ではなく、孤度法。
なので、度数法のつもりで15と入力すると、15ラジアン入力した事になり、
859.35度回転してしまう(57.29×15)

・円を360度で示すのが度数法。
・半径が1の円で、長さ1の弧が作る角度を1ラジアンとするのが孤度法。

  ■■■■■■■■■■■■ 1度は何ラジアンか? ■■■■■■■■■■■■
  円周の長さは直径×円周率。
  円周の長さは孤度法だと2πになる。角度は2πラジアン。

  360度=2πラジアンなので、
  2πラジアンを360分割すれば、度数法の1度になる。

  これはπラジアンを180分割するのと同じ。
  3.14159/180=0.0174532777777778
  1度を孤度法にすると、約0.0174533ラジアン。

  ■■■■■■■■■■■■ 1ラジアンは度数法だと何度か? ■■■■■■■■■■■■
  比率で計算する。
  2πラジアン:360度
  πラジアン:180度
  どんな数も、同じ数字で割れば1になる。
  π÷π:180÷π
  ↓
  1:180÷π
  180÷3.1415=57.29582790879777
  1ラジアンは、約57.29度

●選択したオブジェクトのX位置とY位置を、-1~1の範囲で、ランダムに変える。
import bpy
import random #←randomを読み込まないと乱数が使えない。

hako = bpy.context.selected_objects
for i in hako:
    i.rotation_euler.x += random.uniform(-1,1)
    i.rotation_euler.y += random.uniform(-1,1)
●選択したオブジェクトを、X、Y方向に、-30~30度の範囲で、ランダムに回転させる。
import bpy
import math
import random 

hako = bpy.context.selected_objects
for i in hako:
    atai = 2 * math.pi / 360 * 30 #←30度をラジアンに変換
    i.rotation_euler.x += random.uniform(-atai,atai)
    i.rotation_euler.y += random.uniform(-atai,atai)
●選択したオブジェクトのスケールを2倍にする。
import bpy
hako = bpy.context.selected_objects[0]
hako.scale *= 2
●選択したオブジェクトのスケールを軸ごとに変える。X軸を1、Y軸を1、Z軸を3にする。
import bpy
hako = bpy.context.selected_objects[0]
hako.scale = (1,1,3)

●参考サイト
情報処理 I - 第15回:Python による Blender の制御 和歌山大学
ラジアン(弧度法)の意味と「度」への変換方法 sci-pursuit.com

ワンダーJAPAN

工場、ダム、廃墟、珍しい建築物、などの魅力的な写真が掲載されている雑誌。
月額980で読み放題の、Kindle unlimited対象になっているのでオススメ(2017年9月現在)
※1冊を普通に購入すると1080円~1512円。全20冊買うと2万3328円になる。

ワンダーJAPAN(Amazonの一覧ページへのリンク)

内容の紹介(クリックで拡大)




特集号

グーグルアース


有料だったグーグルアースプロが、2015年から無料になっていた。
Earth プロ(パソコン向け) – Google Earth

だいぶ前に見たときは、3Dモデルで表示されるものは全然無かったけど、
今は殆どが3Dモデルで表示される。

ビルの屋上、造船所、製鉄所、遊園地、離島。
普段見ることは無い場所を、普段見ることは無い視点で見ることが出来る。

3Dマウスでの操作がとても良いと評判だったので、
試してみたら、確かにとても快適だった。

スクリーンショット(クリックで拡大)
▼新宿駅近辺1

▼新宿駅近辺2

▼千葉の造船所

▼川崎の製鉄所

▼ディズニーシー

▼軍艦島

[3dsMax]ステップビルド

ステップビルドは、グラファイト モデリング ツールセットのひとつ。
リトポロジーする際にとても便利。


クリックで頂点を打ち、
shiftキーを押しながら、頂点の間をドラッグすると、
ポリゴンが作成される。

オブジェクトを指定して、その表面に作成する事も可能。


ctrlキーを押しながら面をクリックすると、クリックした面を削除。

ポリゴンが張られていない頂点は、altキーを押しながらクリックで削除可能。

※装飾キーとの組み合わせで使える機能がまだある。
 詳しくは記事最後の公式ヘルプへのリンクへ。


●使い方
まず適当な編集可能ポリゴンを作り選択状態にしておく。

①パネルタイルを開く。
②フリーフォームタブをクリック
③ドロップダウンリストからサーフェスを選択
 その下のピックボタンから、
 作成する頂点やポリゴンを沿わせるためのターゲットオブジェクトを選ぶ。
 ※オフセットの値は、生成する頂点やポリゴンを、
 ターゲットオブジェクトの表面から、
 どのぐらい浮かせるのかを決めるためのもの。
④ステップビルドボタンを押す。
 ツールの終了は右クリックするか、
 もう一度このボタンを押す。

●公式ヘルプへのリンク
3ds Max 2018 ヘルプ: ジオメトリの追加と最適化ツール([ポリ ドロウ](PolyDraw)パネル)

[3dsMax]トポロジーツール


トポロジーツールは、グラファイト モデリング ツールセットのひとつ。
作りたい形を描く事でポリゴンを作成する事が出来る。

任意のオブジェクトを指定して、その表面に沿ったポリゴンを作成できる。


使い方
まず適当な編集可能ポリゴンを作り選択状態にしておく。

①パネルタイルを開く。
②フリーフォームタブをクリック
③ドロップダウンリストからサーフェスを選択
 その下のピックボタンから、
 作成する頂点やポリゴンを沿わせるためのターゲットオブジェクトを選ぶ。
 ※オフセットの値は、生成する頂点やポリゴンを、
 ターゲットオブジェクトの表面から、
 どのぐらい浮かせるのかを決めるためのもの。
④トポロジーツールボタンを押す。
 これでビューポートに線が引けるようになる。
 ツールの終了は右クリックするか、
 もう一度このボタンを押す。

間違って引いてしまった線は、
ctrlキーを押しながら線をクリックする事で削除できる。

●公式ヘルプへのリンク
3ds Max 2018 ヘルプ: グラファイト モデリング ツール
3ds Max 2018 ヘルプ: ジオメトリの作成ツール([ポリ ドロウ](PolyDraw)パネル)

[3dsMax]回転と移動を合成


赤ティーポットの移動する動きと、
緑ティーポットの回転する動きを合成し、
それを青ティーポットに適用する。

slidertime = 1
tm_move = $TeapotRed.transform
tm_rot = $TeapotGreen.transform
tm_none = $TeapotBlue.transform

with animate on(
for i=1 to 36 do(
	slidertime = i
	tm_move_orig = $TeapotRed.transform * inverse tm_move
	tm_rot_orig = $TeapotGreen.transform * inverse tm_rot
	tm_marge = tm_rot_orig * tm_move_orig
	$TeapotBlue.transform = tm_marge * tm_none
)
)


・移動する赤ティーポット、回転する緑ティーポット、
 それぞれに、自身の反転したトランスフォームを掛ける事で原点基準の動きに変える。

・原点を基準にした回転と移動を掛け合わせる。
 合成された回転と移動に、青ティーポットのトランスフォームを掛ける。

これで青ティーポットのローカル座標を基準にして、
移動と回転のアニメーションが付く。

[3dsMax]トランスフォームの乗算2

例1
ティーポット赤の動きを、
原点を基準にして、ティーポット青に付ける。
↓初期状態

t1 = $teapot01 --赤
t3 = $teapot03 --青

slidertime = 1
s_tra = t1.transform

with animate on(
	for i=1 to 36 do(
		slidertime = i
		tra = t1.transform * inverse s_tra
		t3.transform = tra
	)
)

※アニメーションが始まる1フレーム目で、トランスフォームを取得しておく。
forループ内で自身の反転したトランスフォームを使うと、
処理のたびに原点に移動してしまう。
↓結果

—————————————————-

例2
原点を基準にして動くティーポット青を、
ティーポット緑のローカル座標を基準にして動くようにする。
↓初期状態

t2 = $teapot02 --緑
t3 = $teapot03 --青

with animate on(
	for i=1 to 36 do(
		slidertime = i
		tra = t3.transform * t2.transform
		t3.transform = tra
	)
)

ティーポット青のトランスフォームに、
ティーポット緑のトランスフォームを掛けているだけなので単純。
↓結果

—————————————————-

例3
例1と例2を一度に行うイメージ

ティーポット赤の動きを、
ティーポット緑のローカル座標に合わせ、
ティーポット青に付ける。

↓初期状態

t1 = $teapot01 --赤
t2 = $teapot02 --緑
t3 = $teapot03 --青

slidertime = 1
s_tra = t1.transform

with animate on(
	for i=1 to 36 do(
		slidertime = i
		tra = t1.transform * inverse s_tra
		tra = tra * t2.transform
		t3.transform = tra
	)
)

↓結果

●Autodesk 3dsMax公式ヘルプへのリンク
Matrix3 値