Examples


def get_camera_imageplane() -> str | None:
    """ 選択しているカメラのイメージプレーンを取得 
    
    """
    _sel = cmds.ls(selection=True, long=True) or []
    if not _sel:
        return None

    _camera_name = _sel[0]

    # transform が来た場合は shape に変換
    if cmds.nodeType(_camera_name) == "transform":
        shapes = cmds.listRelatives(_camera_name, shapes=True, type="camera") or []
        if not shapes:
            return None
        camera_shape = shapes[0]
    else:
        camera_shape = _camera_name

    # 接続されている imagePlane を取得
    image_planes = cmds.listConnections(camera_shape, type="imagePlane") or []

    if image_planes:
        return image_planes[0]
    else:
        return None
    
def switch_imageplane_displaymode():
  """ 画像プレーンON/OFF """
  _imageplane = get_camera_imageplane()
  if _imageplane:
      _current_state = cmds.getAttr(f'{_imageplane}.displayMode')
      if _current_state == 0:
          cmds.setAttr(f'{_imageplane}.displayMode', 2)
          print('Image Plane OFF')
      else:
          cmds.setAttr(f'{_imageplane}.displayMode', 0)
          print('Image Plane ON')
          
if __name__ == '__main__':
    switch_imageplane_displaymode()