Skocz do zawartości
View in the app

A better way to browse. Learn more.

Max3D.pl

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Napisano

Mam taki pewien problem. Dostałem w sumie odpowiedź gdzie indziej, ale nie taką jaką chciałem.

 

Napisałem sobie skrypt który czyta i wypisuje rotacje obiektu w danej klatce. Działa dobrze, ale wypisywane są wszystkie klatki. O co chodzi więc?

Załóżmy, że moja aniamcja ma klatki kluczowe w 0,3,5 i 10 klatce. Chciałbym, żeby dane były wypisywane tylko dla tych klatek czyli dla 0f,3f,5f,10f.

 

Aktualny mój kod

on CopyBones pressed do
        (
            nframes = "sliderTime = "
            rframes = "$.rotation = "
            pframes = "$.pos = "
            keystart = animationrange.start
            keyend = animationrange.end-1

            if selection.count == 1 then
            (

            format nframes
            sliderTime = 0f
            print sliderTime
            format rframes
            print $.rotation
            format pframes
            print $.pos

                for i = keystart to keyend do
            (
                sliderTime +=1
                format nframes
                print sliderTime
                format rframes
                print $.rotation
                format pframes
                print $.pos
            )
        )
        else
    (
        messagebox "You must select any bone first!"
    )
    )

 

Przykładowo wypisywanie chciałbym, żeby wyglądało tak:

sliderTime = 0f
$.rotation = (quat -0.0402838 -0.692195 0.0462476 -0.7191)
$.pos = [0.0814999,4.36233e-005,-0.00849035]

sliderTime = 3f
$.rotation = (quat -0.0373623 -0.694563 0.0465611 -0.716951)
$.pos = [0.0844062,0.0018139,-0.00846642]

sliderTime = 5f
$.rotation = (quat -0.0348128 -0.696512 0.0469076 -0.715163)
$.pos = [0.0868516,0.00332114,-0.00844604]

sliderTime = 10f
$.rotation = (quat -0.0343639 -0.696845 0.0469752 -0.714856)
$.pos = [0.087274,0.00358315,-0.0084425] 

 

Jakieś pomysły? :)

  • Odpowiedzi 1
  • Wyświetleń 1,6k
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Napisano

W efekcie ubocznym mozna pisac do pliku jesli zamienic

stringstream na file i drukuje propertiesy.

 

(
struct PrintNodeValues (

   public 

   nodesArray,
   frameArray,
   dataStream,
   private 


   fn _printValuesByType _node _frame = (
       propNames = getPropNames _node
       format "\tslidertime = %\n" _frame to:dataStream
       for propName in propNames do (
           at time _frame (
                propValue = getproperty _node propName
                format "\t$.% = %\n" (propName as string) propValue to:dataStream
           )
       )
   ),

   on create do (
       for _frame in frameArray do (

           for _node in nodesArray do (

               format "\nnodeInfo\n" to:dataStream
               format "\t%\n" _node to:dataStream
               format "\tsuperClass:%\n" (superclassof(_node)) to:dataStream
               format "\tClass:%\n" (classof(_node)) to:dataStream
               format "transforms:%\n" _node to:dataStream

               _printValuesByType _node.controller _frame

               format "properties:%\n" _node to:dataStream
               _printValuesByType _node _frame

           )
       )
   )
)


nodesArray = selection as array
frameArray = #(0f,5f,10f,15f,20f)
dataStream = stringstream "\n"


PrintNodeValues nodesArray frameArray dataStream


print (dataStream as string)


)


 

Dla splajna taki wynik daje w listenerze:

 

nodeInfo
   $Line:Line002 @ [14.202627,-7.950639,0.000000]
   superClass:shape
   Class:line
transforms:$Line:Line002 @ [14.202627,-7.950639,0.000000]
   slidertime = 20f
   $.position = [14.2026,-7.95064,0]
   $.rotation = (quat 0 0 0 1)
   $.scale = [1,1,1]
properties:$Line:Line002 @ [14.202627,-7.950639,0.000000]
   slidertime = 20f
   $.steps = 6
   $.render_renderable = false
   $.render_mapcoords = false
   $.render_viewport_thickness = 1.0
   $.render_viewport_sides = 12
   $.render_viewport_angle = 0.0
   $.render_displayRenderMesh = false
   $.render_useViewportSettings = false
   $.render_displayRenderSettings = true
   $.thickness = 1.0
   $.sides = 12
   $.angle = 0.0
   $.renderable = true
   $.mapcoords = false
   $.viewport_thickness = 1.0
   $.viewport_sides = 12
   $.viewport_angle = 0.0
   $.displayRenderMesh = false
   $.useViewportSettings = false
   $.displayRenderSettings = true
   $.optimize = true
   $.adaptive = false
   $.render_viewport_length = 6.0
   $.render_viewport_width = 2.0
   $.render_viewport_angle2 = 0.0
   $.render_rectangular = false
   $.render_viewport_rectangular = false
   $.render_aspect_locked = false
   $.render_viewport_aspect_locked = false
   $.render_auto_smooth = true
   $.realWorldMapSize = false
   $.render_thickness = 1.0
   $.render_sides = 12
   $.render_angle = 0.0
   $.render_width = 2.0
   $.render_length = 6.0
   $.render_angle2 = 0.0
   $.render_threshold = 40.0

Edytowane przez CgBartosz

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

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.