Maya

【Maya:Python】Terrainを一発作成

shamimatsu

maya2022のpython3で動作確認
Mayaでテレインを作りたいと思った時、初期設定の工程が面倒だったため
どなたでも簡単に再現できるように一発作成できるpythonを書きました。
最初から入っているノイズを使って凹凸を作成します。

コード

1# -*- coding: utf-8 -*-
2import maya.cmds as cmds
3
4# プレーン作成
5cmds.polyPlane(h=200, w=200, cuv=2, sy=100, sx=100, ch=1, ax=(0, 1, 0))
6sl_mesh = cmds.ls(sl=True)
7sl_plane = cmds.rename(sl_mesh, 'terrain_mdl')
8
9# マテリアル作成
10cmds.shadingNode('lambert', asShader=1, name='terrain')
11cmds.sets(renderable=True, empty=1, noSurfaceShader=True, name='terrainSG')
12cmds.connectAttr('terrain.outColor', 'terrainSG.surfaceShader', f=1)
13
14# マテリアルアサイン
15cmds.select(sl_plane)
16cmds.sets(forceElement='terrainSG', e=1)
17
18# デフォームテクスチャ作成
19cmds.textureDeformer(vectorStrength=(1, 1, 1), exclusive="", direction="Handle", strength=10, envelope=1, vectorOffset=(0, 0, 0), vectorSpace="Object", offset=0, pointSpace="UV")
20cmds.select('textureDeformerHandle1', r=1)
21
22# テクスチャのかわりにとりあえずノイズをアサイン
23cmds.shadingNode('noise', asTexture=1)
24cmds.connectAttr('noise1.outColor', 'textureDeformer1.texture', force=1)

実行結果

上手くいけばこのようになります。
ノイズの代わりに白黒テクスチャを割り当てれば違う形の山になります。

ABOUT ME
shamimatsu
shamimatsu
3DCGデザイナー
ながらくゲーム業界で2D、3DCGデザイナーとして働いてきましたが、新しい業界に挑戦中です。 ブログのデザインをリニューアル中のため、見づらい箇所もあるかもしれませんが少しづつ修正していきます。
記事URLをコピーしました