ワンダー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)パネル)

amazon kindel unlimited

kindle unlimited
月額980で、特定の本が読み放題になる。

CGWorldの電子版は1冊1500円程。
kindle Unlimitedなら、980円払うだけで、
少し前のバックナンバーも読むことが出来る。
(※2017年7月現在時点)

PCでも読める。
kindle for PC

[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 値

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

●トランスフォームの乗算について1

オブジェクトのトランスフォームに、
自身の反転したトランスフォームを右から掛けると、
原点に移動し、スケールと回転はリセットされる。

↓ $Teapot001.transform = $Teapot001.transform * inverse $Teapot001.transform

●トランスフォームの乗算について2

回転させていないオブジェクトAが原点にある。そのAのトランスフォームに、
原点から離れたオブジェクトBのトランスフォームを右から掛けると、
オブジェクトAは、オブジェクトBに位置と向きが揃う。スケールは乗算される。


ティーポット赤と緑のスケールは[1,1,2]( [X軸,Y軸,Z軸] )

↓ $TeapotRed.transform = $TeapotRed.transform * $TeapotGreen.transform
 結果:ティーポット赤のスケールは[1,1,4]になる。

※乗算する順番は重要。
基準にしたいオブジェクトのトランスフォームは右から(後から)掛ける。
スケールを編集している場合は、計算の結果が意図通りにならなくなる。

スケールが歪む例1:
○:ティーポット緑のトランスフォームを右から掛けた
×:ティーポット緑のトランスフォームを左から掛けた

○:ティーポット赤のスケールは[1,1,4]
×:ティーポット赤のスケールは[1,1.08118,3.69966]

スケールが歪む例2:
ティーポット青はローカルX方向、
ティーポット緑はローカルZ方向にスケールを編集してある。
↓初期状態

↓初期状態から、適切な乗算
 $TeapotBlue.transform = $TeapotBlue.transform * $TeapotGreen.transform
 ティーポット緑のスケールが[1,1,2]、
 ティーポット青のスケールが[2,1,1]の場合
 計算したあと、ティーポット青のスケールは[2,1,2]になる。

↓初期状態から、適切でない乗算
 $TeapotBlue.transform = $TeapotGreen.transform * $TeapotBlue.transform
 歪んでしまった

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

[3dsMax]
あるオブジェクトのローカルZ方向を軸に
複数のオブジェクトを回転させる


赤い矢印の向く方向を軸にして、
複数のティーポットを毎フレーム10度回転させている。

Cylinder001という名前の円柱を作る。
回転させたいオブジェクトを複数作成する。
回転させたい物を全部選択して、↓のスクリプトを実行する。

with redraw off(
with animate on(
	kaiten = quat 10 $Cylinder001.dir
	kaiten = kaiten as matrix3

	for i=1 to 36 do(
		slidertime = i
		for tea in selection do(
			iti = tea.pos
			tea.transform *= kaiten
			tea.pos = iti
		)
	)
)
)

エラーがなければ、円柱の向く方向を軸にして、
選択したオブジェクトが毎フレーム10度回転するアニメーションが作成される。

[3dsMax]
ローカルZ方向を軸に、
複数のオブジェクトを回転させる。

with redraw off(
with animate on(
	for kyuusu in selection do(
		for i=1 to 36 do(
			slidertime = i
			iti = kyuusu.pos
			kaiten = quat 10 kyuusu.dir
			kaiten = kaiten as matrix3
			kyuusu.transform *= kaiten
			kyuusu.pos = iti
		)
	)
)
)

●使い方
回転させたいオブジェクトを選択して、↑のスクリプトを実行。
※コピペはMAXScriptリスナーではなく、MAXScriptエディタへ。
 リスナーでは複数行のコードを実行できない。

●処理内容
選択したオブジェクトそれぞれのローカルZ軸を中心にして、
10度の回転をフレーム毎に行う。

●説明
・ with redraw off():
このカッコ内のスクリプト実行中はビューが更新されない。

・ with animate on():
このカッコ内のスクリプトによる変更はキーが打たれる。

・ for:
forループ文

・ iti = kyuusu.pos:
変数itiにオブジェクトの位置を入れる。

・ kaiten = quat 10 kyuusu.dir:
オブジェクトのローカルZを軸とした10度の回転を、
quat値で変数kaitenに入れる。

・ kaiten = kaiten as matrix3
変数kaitenに入ったquat値をmatrix3値に変換して、
変数kaitenに入れる。

・ kyuusu.transform *= kaiten
オブジェクトのトランスフォーム(matrix3値)に、
変数kaitenに入ったmatrix3値を乗算する。

・ kyuusu.pos = iti:
オブジェクトの位置を、変数itiに入った値にする。

●3dsMax公式ヘルプへのリンク
スクリプトでのプログラム フロー制御
For ループ
ノード変換プロパティの使い方
Quat 値
Matrix3 値