Kodi Community Forum

Full Version: [HELP] How to code this animation for music
You're currently viewing a stripped down version of our content. View the full version with proper formatting.

WingmanNZ

Here is a link to a video that shows the animation I am wanting to achieve. I basically rotates the whole now playing info 180 degrees every 20 seconds or so. Is there anyway to fake this?
http://www.youtube.com/watch?v=9rVoJSfijoc

Also is the carousel effect possible somehow?


maybe with a python script that is called?
the rotating music info is possible with 2 lots of info (one for each side) and an animation on a loop for each one

WingmanNZ

Jezz_X Wrote:the rotating music info is possible with 2 lots of info (one for each side) and an animation on a loop for each one

what about the time that it isnt rotating? can you have it rotate then wait 20 secs then rotate again?
Jezz_X Wrote:the rotating music info is possible with 2 lots of info (one for each side) and an animation on a loop for each one

I can't fade in and out in one loop animation, if i use the code below, the group is hidden from the beginning.
PHP Code:
<animation condition="true" type="Conditional" loop="true" reversible="false">
    <
effect type="rotatey" end="-360" center="640" time="6000" delay="5000" />
    <
effect type="fade" start="100" end="0" time="0" delay="6500" />
    <
effect type="fade" start="0" end="100" time="0" delay="9500" />
</
animation
The second problem is, if i use one info for each side and rotate both only 180°, then at the end of the rotate the animation starts instantly from the beginning, but it should only visible one of the infos.

EDIT: Problems Solved, i use one Info for every 90°

WingmanNZ

eumel Wrote:I can't fade in and out in one loop animation, if i use the code below, the group is hidden from the beginning.
PHP Code:
<animation condition="true" type="Conditional" loop="true" reversible="false">
    <
effect type="rotatey" end="-360" center="640" time="6000" delay="5000" />
    <
effect type="fade" start="100" end="0" time="0" delay="6500" />
    <
effect type="fade" start="0" end="100" time="0" delay="9500" />
</
animation
The second problem is, if i use one info for each side and rotate both only 180°, then at the end of the rotate the animation starts instantly from the beginning, but it should only visible one of the infos.

EDIT: Problems Solved, i use one Info for every 90°

THANKS! We are trying out the code now and hopefully it will work out great
Jezz_X Wrote:the rotating music info is possible with 2 lots of info (one for each side) and an animation on a loop for each one
I have a new Problem, i think it must be a bug of xbmc.

I currently have two groups of now playing Infos (Music info).
The first of which has a delay of 18 seconds before it rotates, at which stage it rotates from 0° to 90° in one second.
The second Info Group should be visible after 19 seconds and then rotate from 90° to 180° in one second.

But the second is only visible if the first info group's "loop" has reset and started again.
all of the loop animations that come after the first loop, start and reset based on the first loop.

example code:
PHP Code:
<!-- (Cover on the left) -->
        <
control type="group">
            <
posx>0</posx>
            <
posy>0</posy>
            <
visible>Player.ShowInfo</visible>
            <
animation effect="fade" start="0" end="100" time="0">Visible</animation>
            <
animation effect="fade" start="0" end="100" time="0">WindowOpen</animation>
            <
camera x="640" y="360"/>
            <
animation condition="true" type="Conditional" loop="true" reversible="false">
                <
effect type="rotatey" end="-90" center="640" time="1000" delay="18000"/>
                <
effect type="fade" start="100" end="0" time="0" delay="19000"/>
                <
effect type="zoom" start="100" end="0" time="21000" delay="19000"/>
            </
animation>
            <!-- 
Album Cover -->
            <
control type="group">
                <
posx>124</posx>
                <
posy>88</posy>
                <
camera x="223" y="331"/>
                <
animation effect="rotatey" center="0" start="-16.1" end="-16.1" time="0" condition="true">Conditional</animation>
                <
control type="image">
                    <
description>Album Cover Art Image</description>
                    <
posx>0</posx>
                    <
posy>0</posy>
                    <
width>486</width>
                    <
height>486</height>
                    <
texture fallback="Global/Icon_Default_Music.png">$INFO[MusicPlayer.Cover]</texture>
                    <
aspectratio>stretch</aspectratio>
                </
control>
                <
control type="image">
                    <
description>Album Cover Art Reflection</description>
                    <
posx>0</posx>
                    <
posy>486</posy>
                    <
width>486</width>
                    <
height>486</height>
                    <
texture flipy="true" fallback="Global/Icon_Default_Music.png"
                        
diffuse="NowPlaying_Music/Music_NowPlaying_Cover_ReflectionMask.png">$INFO[MusicPlayer.Cover]</texture>
                    <
aspectratio>stretch</aspectratio>
                </
control>
            </
control>
        </
control>

        <!-- 
(Cover on the right) -->
        <
control type="group">
            <
posx>0</posx>
            <
posy>0</posy>
            <
visible>Player.ShowInfo</visible>
            <
animation effect="fade" start="0" end="100" time="0" delay="19000">Visible</animation>
            <
animation effect="fade" start="0" end="100" time="0" delay="19000">WindowOpen</animation>
            <
camera x="640" y="360"/>
            <
animation effect="rotatey" center="640" start="90" end="90" time="0" condition="true">Conditional</animation>
            <
animation condition="true" type="Conditional" loop="true" reversible="false">
                <
effect type="rotatey" end="-90" center="640" time="1000"/>
                <
effect type="fade" start="100" end="0" time="0" delay="1000"/>
                <
effect type="zoom" start="100" end="0" time="39000" delay="1000"/>
            </
animation>
            <!-- 
Album Cover -->
            <
control type="group">
                <
posx>670</posx>
                <
posy>88</posy>
                <
camera x="1057" y="331"/>
                <
animation effect="rotatey" center="1280" start="16.1" end="16.1" time="0" condition="true">Conditional</animation>
                <
control type="image">
                    <
description>Album Cover Art Image</description>
                    <
posx>0</posx>
                    <
posy>0</posy>
                    <
width>486</width>
                    <
height>486</height>
                    <
texture fallback="Global/Icon_Default_Music.png">$INFO[MusicPlayer.Cover]</texture>
                    <
aspectratio>stretch</aspectratio>
                </
control>
                <
control type="image">
                    <
description>Album Cover Art Reflection</description>
                    <
posx>0</posx>
                    <
posy>486</posy>
                    <
width>486</width>
                    <
height>486</height>
                    <
texture flipy="true" fallback="Global/Icon_Default_Music.png"
                        
diffuse="NowPlaying_Music/Music_NowPlaying_Cover_ReflectionMask.png">$INFO[MusicPlayer.Cover]</texture>
                    <
aspectratio>stretch</aspectratio>
                </
control>
            </
control>
        </
control
ps.: I am using the "zoom" animation within the loop animation groups to help prevent a loop reset happening to early.