mirror of
https://github.com/open-goal/jak-project
synced 2026-08-09 02:49:19 -04:00
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:
@@ -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))
|
||||
|
||||
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user