Skocz do zawartości

Rekomendowane odpowiedzi

Napisano

Ja teraz czekam na ficher który ma każdy porządnie przemyślany soft: Dopasowanie kolorów siatek dla kolekcji. Jak sie ma duże sceny to czytelność jest koszmarna 😐 a ręczna zmiana, mimo że da się ją osiągnąć w dość prosty sposób, nie jest wymówką wg. mnie i powinno się to dziać z automatu.

No ale nie będę wywoływać @Nezumiego z lasu 😉 

 Albo sobie w końcu addona z GPT napisze i może będę miał to co bym chciał bez czekania na zbawienie 🙂 Bo testowałem to i przyznam do prostych operacji i automatycznych skryptów daje ten program rady. 

  • kekw 1
  • +1 1
Napisano
On 11/16/2023 at 8:29 AM, Mortom said:

Ja teraz czekam na ficher który ma każdy porządnie przemyślany soft: Dopasowanie kolorów siatek dla kolekcji. Jak sie ma duże sceny to czytelność jest koszmarna 😐 a ręczna zmiana, mimo że da się ją osiągnąć w dość prosty sposób, nie jest wymówką wg. mnie i powinno się to dziać z automatu.

Zobaczę, moze coś da się zrobić. 

Napisano (edytowane)

To powinno zadziałać, tylko Viewport Shading > Color trzeba dać na Object:

import bpy

def assign_collection_colors():
    # Define a dictionary mapping color names to their RGB values
    color_mapping = {
        'COLOR_01': (0.753, 0.117, 0.105, 1.0),
        'COLOR_02': (0.871, 0.361, 0.091, 1.0),
        'COLOR_03': (0.871, 0.708, 0.091, 1.0),
        'COLOR_04': (0.195, 0.597, 0.195, 1.0),
        'COLOR_05': (0.109, 0.462, 0.815, 1.0),
        'COLOR_06': (0.262, 0.100, 0.694, 1.0),
        'COLOR_07': (0.558, 0.168, 0.474, 1.0),
        'COLOR_08': (0.191, 0.089, 0.053, 1.0),
        'NONE': (1.0, 1.0, 1.0, 1.0),
    }

    # Iterate through all collections in the scene
    for collection in bpy.data.collections:
        # Get the color tag of the collection
        color_tag = bpy.context.scene.collection.children[collection.name].color_tag

        # Check if the color tag is in the mapping
        if color_tag in color_mapping:
            # Get the RGB color from the mapping
            collection_color = color_mapping[color_tag]

            # Iterate through all objects in the collection
            for obj in collection.objects:
                # Set the viewport display color of the object
                obj.color = collection_color

                # Update the object to reflect the changes
                obj.update_tag()

# Run the function to assign colors for all collections
assign_collection_colors()

 

Edytowane przez kengi
v: 0.0.1 ;P

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności