自由制作(設計・試作・検討)

自由制作の題材を決めよう. そして,いきなり完成品を目指すのではなく, まずは,試作・検討しよう. より素晴らしい作品を生み出すためには, 事前の周到な準備が重要だ.

3D-CGの場合,試作段階では全体的な構成だけ (主要なアイテムの大体の形状・配置・配色など) に集中するとよいだろう. また,後々の調整作業を効率よく進めて行けるようにするため, 試作段階から #declare を活用しておこう. 詳細な形状・配置・テクスチャ・フィニッシュの微調整については, 最終的な実作段階(仕上げ段階)で,時間と相談しながら進めて行こう.

作業手順:

なお,形状がまだ単純な段階から部品分けしておくのは, ただ面倒なだけに思えるかもしれない. しかし,最初に適切に部品化しておけば, 形状が複雑化してきたときに, 編集作業を格段に楽にできるようになる. つまり,部品化の有無によって, 作品の最終的な完成度には大きな差がつくことになってしまう. 「備えあれば憂いなし.」

シーンファイルの編集中には,PC の不調に備えて,こまめに「保存」しよう.

05月11日の課題

作品の構想を報告せよ.

自由制作テーマ: 「ゆるキャラのいる風景」 (キャラクタおよび設定を自由な発想で創造せよ. オリジナルのキャラが理想だが,既存のキャラでも可. ただし,必ず「ゆるい」こと.)

注意: 作品の題材については必ず, 一般人が理解・評価できる内容とすること. (作品は,高専祭やオープンキャンパスなどで一般公開されるかもしれない. 見られても恥ずかしくないモノを作ろう.)

ヲタな(個人的過ぎる趣味の)ネタ, 内輪受け狙いのネタ, 公序良俗に反するネタ, 等は禁止. もちろん,過去作品・他者作品のパクりも不可.
レポート提出

05月18日の課題

試作段階の進捗状況を報告せよ.

レポート提出

補足情報:凹凸の表現

物体によっては,CSG で作成した形状のままでは, 表面が滑らか過ぎて不自然な感じがするかもしれない. 形状のノーマル(法線;表面の方向)にパターンを設定すれば, 物体の表面に微妙な凹凸感を与えることもできる. (ただし,実際に形状を変えているわけではなく, あくまでも,変わったように見せかけているだけ. 明確な凹凸形状を表現したい場合には, やはり,CSG で整形する必要がある.)

この作業は,現在の試作段階では不要. 最終的な仕上げ段階で,必要に応じて,取り入れてみよう.
...
// マグカップの定義
#declare Mug = ...

// ガラスのマグカップ(凹凸なし)
object { Mug material { M_Glass3 }
	translate ...
}

// ガラスのマグカップ(凹凸あり)
object { Mug material { M_Glass3 }
	normal { bumps 0.2 scale 0.2 }	// コブ追加(大きさ 0.2,間隔 0.2)
	translate ...
}

// 金属のマグカップ(凹凸なし)
object { Mug texture { Silver1 }
	translate ...
}

// 金属のマグカップ(凹凸あり)
object { Mug texture { Silver1 }
	normal { dents 1.0 scale 0.1 }	// ヘコミ追加(大きさ 1.0,間隔 0.1)
	translate ...
}
...

ノーマルの設定は,テクスチャやマテリアルと同じ感じで記述すればよいし, テクスチャやマテリアルと組み合わせることもできる. 詳しくは,マニュアルの 12.2 ノーマルを参照. なお,scale の拡大率として,ベクトル <x, y, z> を指定すれば, シワとかヒビのようなものも表現できるかもしれない.


補足情報:曲面体各種

曲面が滑らかにつながった形状の作り方を紹介しておく.

ソースコード断片と説明レンダリング結果
// 卵形

// 半球の定義(+y方向の半球)
#declare HemisphereY = difference {
	object { Sphere }
	object { Plane_XZ }
}

// 卵形の定義
#declare Egg = union {
	object { HemisphereY scale 1.5*y }	// 上部(+y方向)
	object { HemisphereY scale -1*y }	// 下部(-y方向
}

// 卵形の配置
object { Egg pigment { color White } }
// 角丸の直方体
// Round_Box_Union(頂点1,頂点2,角の半径)
// または,Round_Box_Merge(頂点1,頂点2,角の半径)
// (不透明物体の場合,どちらでも同じ.)

object { Round_Box_Union(<-1, -1, -1>, <1, 1, 1>, 0.0)
	pigment { color White }
	translate -3*x
}			// 半径 = 0 の場合,Cube と同じ

object { Round_Box_Union(<-1, -1, -1>, <1, 1, 1>, 0.2)
	pigment { color White }
	translate 0*x
}

object { Round_Box_Union(<-1, -1, -1>, <1, 1, 1>, 0.4)
	pigment { color White }
	translate 3*x
}

// 角丸直方体は Cube と Disk_* と Sphere の組み合わせで自作もできる.	
// 角丸の円柱
// Round_Cylinder_Union(底面中心点,上面中心点,角の半径)
// または,Round_Cylinder_Merge(底面中心点,上面中心点,角の半径)
// (不透明物体の場合,どちらでも同じ.)

object { Round_Cylinder_Union(<0, -1, 0>, <0, 1, 0>, 1, 0.0)
	pigment { color White }
	translate -3*x
}			// 角の半径 = 0 の場合,Disk_Y と同じ

object { Round_Cylinder_Union(<0, -1, 0>, <0, 1, 0>, 1, 0.2)
	pigment { color White }
	translate 0*x
}

object { Round_Cylinder_Union(<0, -1, 0>, <0, 1, 0>, 1, 0.4)
	pigment { color White }
	translate 3*x
}

// 角丸円柱は Disk_* と torus の組み合わせで自作もできる.	
// 角丸の円錐
// Round_Cone_Union(底面中心点,底面半径,上面中心点,上面半径,角の半径)
// または,Round_Cone_Merge(底面中心点,上面中心点,角の半径)
// (不透明物体の場合,どちらでも同じ.)

object { Round_Cone_Union(<0, -1, 0>, 1, <0, 0, 0>, 0.5, 0.0)
	pigment { color White }
	translate -3*x
}

object { Round_Cone_Union(<0, -1, 0>, 1, <0, 0, 0>, 0.5, 0.2)
	pigment { color White }
	translate 0*x
}

object { Round_Cone_Union(<0, -1, 0>, 1, <0, 0, 0>, 0.5, 0.4)
	pigment { color White }
	translate 3*x
}

// 角丸円錐は Cone_* と torus 等の組み合わせで自作もできる.かなり大変だけど...	

これらの他,回転体,角柱,球スイープやブロブも便利かもしれない. 詳しくは, マニュアル を参照せよ.


(c) 2016, yanagawa@kushiro-ct.ac.jp