در یکی از پستها سوال شده بود که برای حل مشکل تغییر نام تعدادی آبجکت در مایا نسخهی 2025 از چه روشی باید استفاده کرد. روش سادهای که در اون پست پیشنهاد کردم خودش دو ایراد داره. اول اینکه شمارهگذاری آبجکتها به ترتیب انجام نمیشه و دوم اینکه انتخاب یکی در میان Shape Node و Transform Node حتما بایستی در Outliner انجام بشه و امکان انتخاب به این شکل در صحنه نیست. حالا اینجا روش جایگزینی رو میخوام معرفی کنم که از طریق سکریپت نویسی پایتون انجام دادم.
در این روش شما ابتدا باید آبجکتها رو در صحنه انتخاب کنید سپس با اجرا کردن قطعه کد زیر نام دلخواه رو در پنجرهای که باز میشه وارد کنید که بعد از اون نام برای همهی آبجکتها تغییر میکنه. شمارهگذاری هم بر پایهی ترتیب انتخابه یعنی آبجکتی که اول انتخاب شده شماره یک و بقیه هم به همین ترتیب.
import maya.cmds as cmds
def rename_objects_in_sequence():
selected_objects = cmds.ls(selection=True)
if not selected_objects:
cmds.error("No objects selected. Please select one or more objects.")
result = cmds.promptDialog(
title='Rename Objects',
message='Enter Base Name:',
button=['OK', 'Cancel'],
defaultButton='OK',
cancelButton='Cancel',
dismissString='Cancel'
)
if result == 'OK':
base_name = cmds.promptDialog(query=True, text=True)
for i, obj in enumerate(selected_objects):
new_name = f"{base_name}_{i+1}"
cmds.rename(obj, new_name)
print(f"Renamed {len(selected_objects)} objects successfully.")
else:
print("Renaming canceled.")
rename_objects_in_sequence()