<?xml version="1.0" encoding="utf-8"?><!DOCTYPE article  PUBLIC '-//OASIS//DTD DocBook XML V4.4//EN'  'http://www.docbook.org/xml/4.4/docbookx.dtd'><article><articleinfo><title>animation2</title><revhistory><revision><revnumber>3</revnumber><date>2008-08-22 04:59:17</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>2</revnumber><date>2008-08-22 04:58:42</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>1</revnumber><date>2008-08-22 04:46:48</date><authorinitials>masahiko</authorinitials></revision></revhistory></articleinfo><section><title>Inkscapeとエディタでアニメーションを作る</title><para>絵をInkscapeで描き、その後エディタで編集してアニメーションを作成する方法 </para><!--rule (<hr>) is not applicable to DocBook--><section><title>絵を描く</title><para>Inkscapeで絵を描きますが、テキストエディタで編集しやすいようにうまくレイヤーに分けて描きましょう。 </para><para>１）新しいレイヤーを用意します。 </para><itemizedlist><listitem override="none"><para>新しいレイヤーは一番上（手前）に配置されます。 </para></listitem></itemizedlist><para>２）新しいレイヤーに動かしたいものを描きます。 </para><itemizedlist><listitem override="none"><para>描き終わったらグループ化しておきます。 </para></listitem></itemizedlist><para>３）動きの線を描きます。 </para><itemizedlist><listitem override="none"><para>どのように動くかを1本のパスで描きます。 </para></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--><para> 以下はテキストエディタでの編集作業です。 </para><para>アニメーションの指定をします。 この編集を行ったあとでは Inkscape での編集はできません。 別の名前で保存するなど対策をしてからはじめましょう。 </para><!--rule (<hr>) is not applicable to DocBook--></section><section><title>編集箇所を探す</title><para>ファイルの後ろの方でレイヤーの定義を探します。 SVGデータではレイヤーもグループ&lt;g&gt;の１つです。 属性として groupmode がレイヤーで、label に名前が入ります。 たとえば次のようになっています。 </para><itemizedlist><listitem override="none"><screen><![CDATA[  <g
     inkscape:groupmode="layer"
     id="layer4"
     inkscape:label="move">]]></screen></listitem></itemizedlist><para>これより後ろで、対応する&lt;/g&gt;までの部分がこのレイヤーに描かれた物体の定義です。 </para><para>構成だけをみると、つぎのようになっています。 </para><itemizedlist><listitem override="none"><screen><![CDATA[  <g
     inkscape:groupmode="layer"
     id="layer4"
     inkscape:label="move">
    <g
       id="g1523">
      <path ... ... />
      <path ... ... />
      <path ... ... />
    </g>
    <path ...
       id="path1409" />
  </g>]]></screen></listitem></itemizedlist><para>この例では id=&quot;g1523&quot; で定義されているのが、動かしたい物体で id=&quot;path1409&quot; で定義されているのが、動かし方を示す曲線です。 </para><!--rule (<hr>) is not applicable to DocBook--></section><section><title>作業１</title><para>このレイヤーの最後 &lt;/g&gt; の直前に &lt;use&gt; を追加します。 &lt;use&gt;の内部にアニメーションを指定する形のものです。 </para><itemizedlist><listitem override="none"><screen><![CDATA[    <path ...
       id="path1409" />
  <use xlink:href="#g1523" x="0" y="0">
    <animateMotion begin="0s" dur="4s">
       <mpath xlink:href="#path1409"/>
    </animateMotion>
  </use>
  </g>]]></screen></listitem></itemizedlist><para>&lt;use&gt;から&lt;/use&gt;までが追加した箇所です。 動かす物体とパスの名前は上で調べたものにします。 時間は調整してください。 他の属性を加えてもかまいません。 </para><!--rule (<hr>) is not applicable to DocBook--></section><section><title>作業２</title><para>一度ビューアを使って表示してみましょう。 エラーが表示されなければ文法的には正しいはずです。 しかし、思った通りの位置では動いていないでしょう。 アニメーションが行われないように見える人もあるかもしれません。 それは動かしたい物体の位置が大きく違っていて<emphasis role="strong">画面外</emphasis>で動いているためです。 </para><para>動かす物体を定義している &lt;g&gt; の属性に transform を加えて物体の位置を調整します。 </para><itemizedlist><listitem override="none"><screen><![CDATA[   <g transform="translate(-500,-300)"
       id="g1523">]]></screen></listitem></itemizedlist><para>translateの値は図形を描いた位置にマイナスをつけたものを基本に調整します。 </para><!--rule (<hr>) is not applicable to DocBook--></section><section><title>作業３</title><para>物体とパスの定義を&lt;defs&gt;内に移動します。 &lt;defs&gt;の部分はファイルの始めのあたりにあります。そこに追加します。 </para><itemizedlist><listitem override="none"><screen><![CDATA[ <defs id="...">
    <g transform="translate(-500,-300)"
       id="g1523">
      <path ... ... />
      <path ... ... />
      <path ... ... />
    </g>
    <path ...
       id="path1409" />
   ...]]></screen></listitem></itemizedlist><para>その後で、最後のレイヤー内に残っている同じ定義を削除します。 </para><itemizedlist><listitem override="none"><screen><![CDATA[  <g
     inkscape:groupmode="layer"
     id="layer4"
     inkscape:label="move">
    <use ...>
     ...
    </use>
  </g>]]></screen></listitem></itemizedlist><para>おつかれさまでした。 </para></section></section></article>