Anim Tester X - Quality of Life improvements (#2682)

Co-authored-by: Tyler Wilding <xTVaser@users.noreply.github.com>
Co-authored-by: ManDude <7569514+ManDude@users.noreply.github.com>
This commit is contained in:
Luminar Light
2023-08-01 23:06:20 +02:00
committed by GitHub
parent bdf28ec528
commit a8ae15139b
4 changed files with 185 additions and 112 deletions
+84 -56
View File
@@ -464,7 +464,7 @@
(if (= *master-mode* 'menu)
(anim-tester-x-interface)
(set! *camera-read-buttons* #t)
(set! *camera-read-buttons* #f)
)
(when (!= *master-mode* 'menu)
(add-debug-x #t (bucket-id debug-no-zbuf) (-> self root trans) *color-white*)
@@ -472,65 +472,92 @@
(none))
:code (behavior ()
(let
((need-update #f)
(lst (the-as atx-list #f)))
(loop
(loop
(when (and (-> self cur-joint-geo) (!= (-> self cur-joint-geo) (-> self draw jgeo)))
(process-disconnect self)
(set! (-> self draw art-group) (-> self cur-art-group))
(set! (-> self draw cur-lod) -1)
(set! (-> self draw jgeo) (-> self cur-joint-geo))
(set! (-> self draw sink-group) (-> *level* level-default foreground-sink-group 1))
(set! (-> self draw lod-set lod 0 geo) (-> self cur-mesh-geo))
(set! (-> self draw lod-set lod 0 dist) (meters 999999))
(set! (-> self draw bounds w) (meters 10))
(set! (-> self draw data-format) (the-as uint 1))
(vector-copy! (-> self draw color-mult) (new 'static 'vector :x 1.0 :y 1.0 :z 1.0 :w 1.0))
(vector-copy! (-> self draw color-emissive) (new 'static 'vector))
(set! (-> self draw secondary-interp) 0.0)
(set! (-> self draw shadow) #f)
(set! (-> self draw shadow-ctrl) #f)
(set! (-> self draw ripple) #f)
(set! (-> self draw level-index) (the-as uint 2))
(set! (-> self node-list) (make-nodes-from-jg (-> self draw jgeo) *default-skel-template* 'debug))
(if (not (-> self skel effect))
(set! (-> self skel effect) (new 'process 'effect-control self)))
(fill-skeleton-cache self)
(lod-set! (-> self draw) 0)
(ja-channel-set! 0)
)
(cond
((-> self cur-joint-geo)
(if (> 1 (-> self skel active-channels))
(ja-channel-set! 1))
(set! (-> self draw lod-set lod 0 geo) (-> self cur-mesh-geo))
(ja-no-eval :group! (-> self cur-joint-anim))
(when (!= *master-mode* 'menu)
(case (-> *ATX-settings* mode)
(('loop)
(ja :num! (loop! (-> *ATX-settings* speed)))
)
(('identity)
(ja :num! (identity (-> *ATX-settings* frame-num)))
)
(('seek)
(ja :num! (seek! max (-> *ATX-settings* speed)))
)
)
(when (and (-> self cur-joint-geo) (!= (-> self cur-joint-geo) (-> self draw jgeo)))
(process-disconnect self)
(set! (-> self draw art-group) (-> self cur-art-group))
(set! (-> self draw cur-lod) -1)
(set! (-> self draw jgeo) (-> self cur-joint-geo))
(set! (-> self draw sink-group) (-> *level* level-default foreground-sink-group 1))
(set! (-> self draw lod-set lod 0 geo) (-> self cur-mesh-geo))
(set! (-> self draw lod-set lod 0 dist) (meters 999999))
(set! (-> self draw bounds w) (meters 10))
(set! (-> self draw data-format) (the-as uint 1))
(vector-copy! (-> self draw color-mult) (new 'static 'vector :x 1.0 :y 1.0 :z 1.0 :w 1.0))
(vector-copy! (-> self draw color-emissive) (new 'static 'vector))
(set! (-> self draw secondary-interp) 0.0)
(set! (-> self draw shadow) #f)
(set! (-> self draw shadow-ctrl) #f)
(set! (-> self draw ripple) #f)
(set! (-> self draw level-index) (the-as uint 2))
(set! (-> self node-list) (make-nodes-from-jg (-> self draw jgeo) *default-skel-template* 'debug))
(if (not (-> self skel effect))
(set! (-> self skel effect) (new 'process 'effect-control self)))
(fill-skeleton-cache self)
(lod-set! (-> self draw) 0)
(ja-channel-set! 0)
(set! lst (-> self selected-art-group ja-list))
)
(compute-alignment! (-> self align))
(align! (-> self align) (align-opts adjust-x-vel adjust-y-vel adjust-xz-vel keep-other-velocities adjust-quat)
1.0 1.0 1.0)
)
(else
(if (!= *master-mode* 'menu)
(format *stdcon* "~%~%no art selected~%")
)
)
)
(suspend))
(cond
((-> self cur-joint-geo)
(if (> 1 (-> self skel active-channels))
(ja-channel-set! 1))
(set! (-> self draw lod-set lod 0 geo) (-> self cur-mesh-geo))
(ja-no-eval :group! (-> self cur-joint-anim))
(when (!= *master-mode* 'menu)
(case (-> *ATX-settings* mode)
(('loop)
(ja :num! (loop! (-> *ATX-settings* speed)))
)
(('identity)
(ja :num! (identity (-> *ATX-settings* frame-num)))
)
(('seek)
(ja :num! (seek! max (-> *ATX-settings* speed)))
)
)
)
(compute-alignment! (-> self align))
(align! (-> self align) (align-opts adjust-x-vel adjust-y-vel adjust-xz-vel keep-other-velocities adjust-quat)
1.0 1.0 1.0)
)
(else
(if (!= *master-mode* 'menu)
(format *stdcon* "~%~%no art selected~%")
)
)
)
(when (and lst (-> lst head) (!= *master-mode* 'menu))
(cond
((cpad-pressed? 0 left)
(cpad-clear! 0 left)
(-! (-> lst selection) 1)
(set! need-update #t))
((cpad-pressed? 0 right)
(cpad-clear! 0 right)
(+! (-> lst selection) 1)
(set! need-update #t))
)
(cond
((< (-> lst selection) 0)
(set! (-> lst selection) (1- (atx-list-size lst))))
((>= (-> lst selection) (atx-list-size lst))
(set! (-> lst selection) 0))
)
(when need-update
((-> lst func) (atx-list-get-by-index lst (-> lst selection)))
(set! need-update #f))
)
(suspend))
)
)
:post (behavior ()
@@ -577,6 +604,7 @@
"kill the anim tester process"
(kill-by-type anim-tester-x *default-pool*)
(set! *camera-read-buttons* #t)
(set! *atx* (the (pointer anim-tester-x) #f)))
(defun atx-start ()
@@ -492,6 +492,14 @@
)
#f)
(defun dm-anim-tester-x-refresh ()
(atx-start)
(atx-list-init! (-> *ATX-settings* list-ctrl))
(set! (-> *ATX-settings* list-ctrl func) atx-list-art-group-func)
(atx-add-common-group)
(atx-add-level-group)
)
(defun dm-anim-tester-x-func ((action symbol))
(unless *atx*
(atx-start))
@@ -535,6 +543,7 @@
(debug-menu-append-item menu (new-dm-func "Stop" #f atx-stop))
(debug-menu-append-item menu (new-dm-var-float "Speed" (the int #f) (dm-lambda-float-var (-> *ATX-settings* speed)) 0.01 -10.0 10.0))
(debug-menu-append-item menu (new-dm-var-float "Frame Num" (the int #f) (dm-lambda-float-var (-> *ATX-settings* frame-num)) 0.1 0.0 99999.0))
(debug-menu-append-item menu (new-dm-func "Refresh" #f dm-anim-tester-x-refresh))
(debug-menu-append-item menu (new-dm-func "Pick Art Group" 'pick-art-group dm-anim-tester-x-func))
(debug-menu-append-item menu (new-dm-func "Pick Anim" 'at-pick-joint-anim dm-anim-tester-x-func))
(debug-menu-append-item menu (new-dm-func "Pick Mesh" 'pick-mesh-geo dm-anim-tester-x-func))
+83 -56
View File
@@ -473,66 +473,93 @@
(none))
:code (behavior ()
(let
((need-update #f)
(lst (the-as atx-list #f)))
(loop
(loop
(when (and (-> self cur-joint-geo) (!= (-> self cur-joint-geo) (-> self draw jgeo)))
(process-disconnect self)
(set! (-> self draw art-group) (-> self cur-art-group))
(set! (-> self draw cur-lod) -1)
(set! (-> self draw jgeo) (-> self cur-joint-geo))
;; (set! (-> self draw sink-group) (-> *level* default-level foreground-sink-group 1))
(set! (-> self draw lod-set lod 0 geo) (-> self cur-mesh-geo))
(set! (-> self draw lod-set lod 0 dist) (meters 999999))
(set! (-> self draw bounds w) (meters 10))
(set! (-> self draw data-format) (draw-control-data-format merc))
(vector-copy! (-> self draw color-mult) (new 'static 'vector :x 1.0 :y 1.0 :z 1.0 :w 1.0))
(vector-copy! (-> self draw color-emissive) (new 'static 'vector))
;; (set! (-> self draw secondary-interp) 0.0)
(set! (-> self draw shadow) #f)
(set! (-> self draw shadow-ctrl) #f)
(set! (-> self draw ripple) #f)
(set! (-> self draw level-index) (the-as uint 2))
;; (set! (-> self node-list) (make-nodes-from-jg (-> self draw jgeo) *default-skel-template* 'debug))
(set! (-> self node-list) (setup-cspace-and-add (-> self draw) (-> self draw jgeo) 'debug))
(if (not (-> self skel effect))
(set! (-> self skel effect) (new 'process 'effect-control self)))
;; (fill-skeleton-cache self)
(lod-set! (-> self draw) 0)
(ja-channel-set! 0)
)
(cond
((-> self cur-joint-geo)
(if (> 1 (-> self skel active-channels))
(ja-channel-set! 1))
(set! (-> self draw lod-set lod 0 geo) (-> self cur-mesh-geo))
(ja-no-eval :group! (-> self cur-joint-anim))
(when (!= *master-mode* 'menu)
(case (-> *ATX-settings* mode)
(('loop)
(ja :num! (loop! (-> *ATX-settings* speed)))
)
(('identity)
(ja :num! (identity (-> *ATX-settings* frame-num)))
)
(('seek)
(ja :num! (seek! max (-> *ATX-settings* speed)))
)
)
(when (and (-> self cur-joint-geo) (!= (-> self cur-joint-geo) (-> self draw jgeo)))
(process-disconnect self)
(set! (-> self draw art-group) (-> self cur-art-group))
(set! (-> self draw cur-lod) -1)
(set! (-> self draw jgeo) (-> self cur-joint-geo))
;; (set! (-> self draw sink-group) (-> *level* default-level foreground-sink-group 1))
(set! (-> self draw lod-set lod 0 geo) (-> self cur-mesh-geo))
(set! (-> self draw lod-set lod 0 dist) (meters 999999))
(set! (-> self draw bounds w) (meters 10))
(set! (-> self draw data-format) (draw-control-data-format merc))
(vector-copy! (-> self draw color-mult) (new 'static 'vector :x 1.0 :y 1.0 :z 1.0 :w 1.0))
(vector-copy! (-> self draw color-emissive) (new 'static 'vector))
;; (set! (-> self draw secondary-interp) 0.0)
(set! (-> self draw shadow) #f)
(set! (-> self draw shadow-ctrl) #f)
(set! (-> self draw ripple) #f)
(set! (-> self draw level-index) (the-as uint 2))
;; (set! (-> self node-list) (make-nodes-from-jg (-> self draw jgeo) *default-skel-template* 'debug))
(set! (-> self node-list) (setup-cspace-and-add (-> self draw) (-> self draw jgeo) 'debug))
(if (not (-> self skel effect))
(set! (-> self skel effect) (new 'process 'effect-control self)))
;; (fill-skeleton-cache self)
(lod-set! (-> self draw) 0)
(ja-channel-set! 0)
(set! lst (-> self selected-art-group ja-list))
)
(compute-alignment! (-> self align))
(align! (-> self align) (align-opts adjust-x-vel adjust-y-vel adjust-xz-vel keep-other-velocities adjust-quat)
1.0 1.0 1.0)
)
(else
(if (!= *master-mode* 'menu)
(format *stdcon* "~%~%no art selected~%")
)
)
)
(suspend))
(cond
((-> self cur-joint-geo)
(if (> 1 (-> self skel active-channels))
(ja-channel-set! 1))
(set! (-> self draw lod-set lod 0 geo) (-> self cur-mesh-geo))
(ja-no-eval :group! (-> self cur-joint-anim))
(when (!= *master-mode* 'menu)
(case (-> *ATX-settings* mode)
(('loop)
(ja :num! (loop! (-> *ATX-settings* speed)))
)
(('identity)
(ja :num! (identity (-> *ATX-settings* frame-num)))
)
(('seek)
(ja :num! (seek! max (-> *ATX-settings* speed)))
)
)
)
(compute-alignment! (-> self align))
(align! (-> self align) (align-opts adjust-x-vel adjust-y-vel adjust-xz-vel keep-other-velocities adjust-quat)
1.0 1.0 1.0)
)
(else
(if (!= *master-mode* 'menu)
(format *stdcon* "~%~%no art selected~%")
)
)
)
(when (and lst (-> lst head) (!= *master-mode* 'menu))
(cond
((cpad-pressed? 0 left)
(cpad-clear! 0 left)
(-! (-> lst selection) 1)
(set! need-update #t))
((cpad-pressed? 0 right)
(cpad-clear! 0 right)
(+! (-> lst selection) 1)
(set! need-update #t))
)
(cond
((< (-> lst selection) 0)
(set! (-> lst selection) (1- (atx-list-size lst))))
((>= (-> lst selection) (atx-list-size lst))
(set! (-> lst selection) 0))
)
(when need-update
((-> lst func) (atx-list-get-by-index lst (-> lst selection)))
(set! need-update #f))
)
(suspend))
)
)
:post (behavior ()
@@ -485,6 +485,14 @@
)
#f)
(defun dm-anim-tester-x-refresh ()
(atx-start)
(atx-list-init! (-> *ATX-settings* list-ctrl))
(set! (-> *ATX-settings* list-ctrl func) atx-list-art-group-func)
(atx-add-common-group)
(atx-add-level-group)
)
(defun dm-anim-tester-x-func ((action symbol))
(unless *atx*
(atx-start))
@@ -532,6 +540,7 @@
(debug-menu-append-item menu (new-dm-func "Stop" #f atx-stop))
(debug-menu-append-item menu (new-dm-var-float "Speed" (the int #f) (dm-lambda-float-var (-> *ATX-settings* speed)) 0.01 -10.0 10.0))
(debug-menu-append-item menu (new-dm-var-float "Frame Num" (the int #f) (dm-lambda-float-var (-> *ATX-settings* frame-num)) 0.1 0.0 99999.0))
(debug-menu-append-item menu (new-dm-func "Refresh" #f dm-anim-tester-x-refresh))
(debug-menu-append-item menu (new-dm-func "Pick Art Group" 'pick-art-group dm-anim-tester-x-func))
(debug-menu-append-item menu (new-dm-func "Pick Anim" 'at-pick-joint-anim dm-anim-tester-x-func))
(debug-menu-append-item menu (new-dm-func "Pick Mesh" 'pick-mesh-geo dm-anim-tester-x-func))