それは意図的な動作と思います.. キーしていませんなのなら何もしなくて続きます
そのSetAnimationの前に state.SetEmptyAnimation(10, 0) はどうですか?
(.Skeleton.SetToSetupPose(); もあるけど 結果が同じかも?)
それは意図的な動作と思います.. キーしていませんなのなら何もしなくて続きます
そのSetAnimationの前に state.SetEmptyAnimation(10, 0) はどうですか?
(.Skeleton.SetToSetupPose(); もあるけど 結果が同じかも?)
Hello, thanks! I will wait for it. The material is "Spine/Skeleton".
Did someone report this yet? When in editor or iOS LWRP could be used with Spine just fine, but on Android real device everything from Spine was rendered at world position 0,0,0, rotation identity, and scale 1,1,1.
It's a really weird behaviour. All Spine animations are still playing. Skins correct. Debugging the actual position (transform.position / localPosition / etc) still prints their expected position, but the rendering is just not there. It's clear that my non-Spine shadow remains at the correct place but only the character ended up with default transform.
Occurs only to SkeletonAnimation and not SkeletionGraphic. If the camera is at 0, 0, -10 or something it's very clear that everything from Spine got jumbled together to the center of the screen. It still looks like a character, the parts are offsetted properly but the origin (The 0,0 in Spine GUI editor) is now at 0,0,0 / identity rotation / 1,1,1 scale.
I found that the problem is Android + GL3.0 + LWRP.
I have submitted the case to here : https://fogbugz.unity3d.com/default.asp?1167960_af02s0vcgbeof55e
But still not sure it is an incompatibility of Spine shader or an actual Unity bug. Does Spine shader use any GL2.0-only feature?
Here are all the images in that case :
LWRP asset also attached.
bali33 a écritLooks great, congrats !
Do you plan to add features like be able to specify a track index, play more than once animation at the same times etc. ?
Well, since my game doesn't need to mix animation it is unlikely to be soon : P
But the track index is already serialized on each track if you click to inspect it, in the case if you want to add that feature you can do so from that variable.
https://github.com/5argon/SpineTimeline
I have immediate need to animate my SkeletonGraphic
and couldn't wait for the official one, so over the past week I made some custom tracks that could animate it and I thought someone may need it.
A per-track AnimationState is cleared out and remade on every evaluation, that may make it not as efficient but in exchange allow deterministic timeline scrubbing in edit mode. During the duration the original AnimationState is frozen and the timeline try to keep it from taking effect.
The clip could use all extrapolation modes, speed modifier, and looping. Unlike the official it is not going to be backward compatible with 2018.3/4, but you could use markers to flip and set animations. In the gif, unlike the official timeline implementation each clip is a sampled state and not a command, thus when timeline ended it would reset to setup pose. The marker at the final frame instead take this task and make the skeleton continue an animation after the timeline. Enjoy.
Oh..... sorry. I was confused with SkeletonGraphic
where the renderer is the same thing as that component.. .enabled = false
didn't clear out the mesh like you said. I got it working now! Thanks!
I think it is currently commented out because of some issues.
I have scripted some Timeline playable which along of its duration, I want the SkeletonAnimation
to temporarily stop updating whatever AnimationState it is holding. (but I am not replacing the AnimationState, I will just make a new one and apply onto the skeleton)
Since update is the regular Update()
and to prevent that I need to .enable = false
the component, it together make the renderer stop which is not desirable.
I notice that I could use freeze
on SkeletonGraphic
to preserve its timeScale
and make it stop updating. But there is no freeze
on SkeletonAnimation
. To freeze animation I must change the timeScale
to 0 but that way I lose the time scale I intended to use after the timeline stops. Is there any reason freeze
is not implemented on the SkeletonAnimation
?
Hello. I would like to utilize UPM GitHub functionality to include Spine Unity to multiple of my projects with ease, also it helps clear up plugin clutters in the project's Asset folder. Howeve you didn't officially make the repo GitHub - EsotericSoftware/spine-runtimes: 2D skeletal animation runtimes for Spine. UPM compatible (has package.json and maybe asmdef)
I have to rehost it instead of forking. Since forking would fork all runtimes. Also, UPM requires the package.json to be at GitHub root, and also it cannot be a private repository. Is this possible to do this from legal standpoint? Or I must resort to local UPM? Thank you.
*edit The repo that is UPM compatible looks like this : https://github.com/5argon/spine-unity-upm
I have been researching a lot into Unity's audio latency (e.g. https://github.com/5argon/UnityiOSNativeAudio) no matter what you do an audio will be played a bit after you execute the code line that plays them. It might cause some misunderstanding that Spine is not accurate. It is a lot worse on iOS compared to native iOS app (but still faster than Android), on Android it is a bit late than native Android app.
A naive solution is by playing the audio early to compensate. It can't be helped in a non-deterministic situation like when you require player input at that instance to decide to play the sound (like pushing buttons, hitting drums) but in case of Spine we can know in advance that the audio is going to be played after we started the animation. (That is if we don't stop the animation) This problem is then solvable by thinking as if the audio event is a bit early on the timeline. That is to say it would be great if I have some way to do this in the API side in Unity. Might make the API ugly and hard to understand why it is there (and it is not even Spine's fault)... but will be better than moving the event back manually in every animation in Spine every time I want to build to Android.
If the event is near the start and can't be moved back we might move them to the earliest 0 time, or delay the animation itself so that sound playing can come earlier.
From https://unity3d.com/unity/beta-download I think the problem is because :
Graphics: Texture is now abstract.
The line with new Texture() now does not work because the constructor is now protected
. Here's a list of all errors so far.
Assets/Spine/spine-unity/Editor/SkeletonDataAssetInspector.cs(660,26): error CS1540: Cannot access protected member UnityEngine.Texture.Texture()' via a qualifier of type
UnityEngine.Texture'. The qualifier must be of type `Spine.Unity.Editor.SkeletonDataAssetInspector' or derived from it
Assets/Spine/spine-unity/Editor/SkeletonDataAssetInspector.cs(660,26): error CS0122: `UnityEngine.Texture.Texture()' is inaccessible due to its protection level
Do you have a quick fix that would not cause problem somewhere else? I just replace it with Texture2D m_previewTex = new Texture2D(0, 0, TextureFormat.RGBA32, false);
and cast Texture
to Texture2D
a bit below that line so that it compiles.
When assigning vertexes to bones in weight binding, there's "no bone" weight to use. All vertexes have to depends on some bone in the binding. (All bones in the binding must be able to move vertexes) I expected like a grey colored assignment to be available so that it belongs to nothing. Is such an option exist somewhere? At first I thought "remove" tool would do this.
For example I would like to move the skirt with blue and pink bone. Both would get each side of this skirt, but moving it would make the top half of the skirt deform which it should not be. I would like that part to stay still and want to "remove" weights from both bones to nothing but that can't be done, so what I have to do is to always have a "no use" bone so that I can assign it to vertexes I don't plan to move.
In this image it's the purple cross hair bone. But I thought it is strange to have a bone for this purpose and I might miss something obvious that is already there in the program.
(Also the upload attachment button says "Sorry, the board attachment quota has been reached.")
Thank you. Yes you are right the entire character will be larger than screen. However in After Effects a common trick to reuse a character (especially with only a few loops, like walking) is the camera would zoom and focus on each part of the character back and forth, so effectively only about half of the character will be on screen.
The usual video export size is 1920x1080, therefore I make sure to have at least the upper half of the character with about 1000px height so it wouldn't pixelate when I zoom in. In total, the height would usually be about 2000px if it is human. (Maybe needs to be more than that if I am planning to cut in a close-up eye shot of an animation loop, which is quite common)
Last year I have an animation project which my friend made the music and I draw/made the video. The walking girl character was exported from Spine to AE. I use the aforementioned zooming tricks to reuse the walk loop as much as possible. (Although the resolution is not as large as described)