장면에서 객체 만들기 연습

2754 단어 Cinema4DPython
Cinema 4D의 Pythhon을 연습하면서 객체를 동적으로 추가하는 스크립트를 만들었는데, 객체만 추가할 뿐 특별한 기능은 없었습니다.예를 들어 사용자 정의 소재의 미리보기 장면에서 독립적으로 만들 수 있습니다. 사용자 정의 소재를 만들었을 때 가상 장면에 이 대상을 추가하여 미리볼 수 있습니다.
import c4d
from c4d import gui

def main():


    doc = c4d.documents.GetActiveDocument()
    doc.StartUndo()

    # add plane
    plane = c4d.BaseObject(c4d.Oplane)
    plane.SetName("Object")
    plane[c4d.PRIM_PLANE_WIDTH]  = 100
    plane[c4d.PRIM_PLANE_HEIGHT] = 100
    plane[c4d.PRIM_PLANE_SUBW]   = 20
    plane[c4d.PRIM_PLANE_SUBH]   = 20
    plane[c4d.PRIM_AXIS] = c4d.PRIM_AXIS_YN
    plane[c4d.ID_BASEOBJECT_VISIBILITY_RENDER] = 1
    plane.SetAbsPos(c4d.Vector(0, 140, 0))
    doc.InsertObject(plane)
    plane.MakeTag(c4d.Ttexture)
    doc.AddUndo(c4d.UNDOTYPE_NEW, plane)

    # add hari object and set root object
    hairObj = c4d.BaseObject(c4d.Ohair)
    hairObj.SetName("Object")
    hairObj[c4d.HAIRSTYLE_LINK] = plane
    hairObj[c4d.HAIRSTYLE_HAIR_COUNT] = 100
    hairObj[c4d.HAIRSTYLE_HAIR_SEGMENTS] = 6
    hairObj[c4d.HAIRSTYLE_COUNT] = 10
    hairObj[c4d.HAIRSTYLE_LENGTH] = 230
    hairObj[c4d.HAIRSTYLE_SEGMENTS] = 5
    hairObj[c4d.HAIRSTYLE_ROOT_PLACEMENT] = c4d.HAIRSTYLE_ROOT_PLACEMENT_AREA
    doc.InsertObject(hairObj)
    doc.AddUndo(c4d.UNDOTYPE_NEW, hairObj)

    # hair material
    hairMat = c4d.BaseMaterial(c4d.Mhair)
    hairMat.SetName("Hair mat")
    hairMat[c4d.HAIRMATERIAL_USE_THICKNESS] = True
    hairMat[c4d.HAIRMATERIAL_THICKNESS_ROOT] = 3
    hairMat[c4d.HAIRMATERIAL_THICKNESS_TIP] = 1
    hairMat[c4d.HAIRMATERIAL_USE_BEND] = True
    hairMat[c4d.HAIRMATERIAL_BEND] = 0.4
    doc.InsertMaterial(hairMat)
    doc.AddUndo(c4d.UNDOTYPE_NEW, hairMat)

    # hair material tag
    hairMatTag = c4d.BaseTag(c4d.Thairmaterial)
    hairMatTag[c4d.HAIRMATERIAL_TAG_LINK] = hairMat
    hairObj.InsertTag(hairMatTag)
    hairObj.MakeTag(c4d.Ttexture)

    c4d.EventAdd()
    doc.EndUndo()

# Execute main()
if __name__=='__main__':
    main()
각 줄이 하는 일은 대상을 만들고 필요한 파라미터를 설정한 후 문서에만 삽입하는 것이다. Cinema4D에서는'앤드류'의 방법을 잘 설정해야 한다. 앤드류 유형에 따라 실행하기 전에 반드시 기술해야 할 것이 있기 때문에 항상 현혹된다.
앤드류에 대한 문서는 여기 있습니다.
장면에 대상, 라벨, 소재를 추가할 수 있기 때문에 사용자 정의 소재 전용 미리보기 장면을 동적으로 만들 수 있습니다. 단독으로 무엇을 사용할지 망설이지만 다른 플러그인과 스크립트와 조합해서 사용할 수 있습니다.

또한 장면에 삽입하지 않을 수 있기 때문에 스크립트에 어떤 대상이 필요할 때 잠시 제작하여 사용할 수도 있다.

좋은 웹페이지 즐겨찾기