LoginSignup
1
0

"回転する地球義”でアニメーションロゴをつくってみた

Posted at

はじめに

以下の記事で全球の温度変化を平面マップ上でアニメーションする方法を紹介しました。

地球は球形なので球として可視化したい!と、方法を探していたら、このような動画を発見。

GIMPならインストールしてあるのでできる!
まずは手始めに本研究室のロゴを回転させてみました。

背景マップの作成

Natural Earthデータを利用して、背景図を作ります。

basemap.jpg

「プロジェクト」→「インポートとエクスポート」→「地図を画像にエクスポート」で地図を画像として保存します。

QGIS_save_image.jpg

ロゴの描画とアスペクトの変更

GIMPに読み込み、ロゴを描画します。

GIMP_base_logo.jpg

縦横サイズが同じ画像に変換します。 ここでは、マップの縦軸に合わせて、472x472pxの画像に変換しました。

GIMP_Sclae_image.jpg

GIMP_logo_scaled.jpg

球体へ貼り付け

「Filters」→「Map」→「Map Object」でMap to Objectウィンドウを立ち上げます。

  1. Opthonsタブの設定

    • Map to: Sphere
    • Transparent background にチェック
    • Create new layerにチェック
    • Enable antialiasingにチェック
    • Depth : 3.0
    • Threshold : 0.25
    GIMP_Mapobject_Options.jpg
  2. Lightタブの設定

    • Lightsource type : Point light
    • Lightsource color : 白
    • Position: X:0.5 Y:0.5 Z:20
    GIMP_Mapobject_Light.jpg
  3. Materialタブの設定

    • Intensity Lebels:
      • Ambient: 0.5
      • Diffuse: 0.8
    • Refrectivity:
      • Diffuse: 0.4
      • Specular: 0.0
      • Highlight: 27.0
    GIMP_Mapobject_Material.jpg
  4. Orientationタブの設定

    • Position: X:0.5 Y:0.5 Z:0.9
    • Rotation: X:0.0 Y:-180.0 Z:30.0
    GIMP_Mapobject_Orient.jpg

マップが球に貼り付けられます。
あとは0.5度ずつずらしたレイヤを作っていきます。

球体への貼り付け作業を自動化する

とはいえ、0.5刻みで360度分、720レイヤをマウスでポチポチするのは辛いので、自動で処理するスクリプトを作成しました。

LnogLatMap_to_RoteteEarth.scm
(define (script-fu-rotateearth img src-layer)

    (define (undo-group fn)
        (gimp-image-undo-group-start img)
        (fn)
        (gimp-image-undo-group-end img)
    )

    (let ((rotate_y -180.0)
          (new_layer 0))
        (while (< rotate_y 180.0) 
            (set! new_layer (car(gimp-layer-copy src-layer TRUE)))
            (gimp-layer-set-name new_layer (string-append "sphere " (number->string rotate_y)))
            (gimp-image-add-layer img new_layer 0)
            (plug-in-map-object 1 img new_layer 
                1  ; Type of mapping (0=plane,1=sphere,2=box,3=cylinder)
                0.5 0.5 20.0 ; viewpoint
                0.5 0.5 0.0  ; object pos
                0 0 0 0 0 0  ; axis
                0 rotate_y 30 ; axis rotation
                0 '(255 255 255) ; light souce
                0.5 0.5 10 ; light position
                -1 -1 1 ; light direction
                0.5 0.8 ; Intensity Lebels
                0.4 0 27.0 ; Refrectivity
                TRUE FALSE FALSE TRUE ; Opthons
                0.48 ; radius
                0.5 0.5 0.5 ;box size
                1.0 -1 -1 -1 -1 -1 -1 -1 -1 ;box setting
            )
            (set! rotate_y (+ rotate_y 0.5))
        )
    )
)

(script-fu-register
 "script-fu-rotateearth"                        ;func name
 "RotateEarth"                                  ;menu label
 "正距円筒図法のマップから回転する地球を作成"  ;description
 "ccilobo"                             ;author
 "copyright 2023, ccilabo"        ;copyright notice
 "Sep 4, 2023"                          ;date created
 ""                     ;image type that the script works on
 SF-IMAGE       "Image" 0
 SF-DRAWABLE    "Drawable" 0
 )

(script-fu-menu-register "script-fu-rotateearth" "<Image>/Script-Fu/CCILabo")

GIMPのマニュアルに従い、

~/.config/GIMP/2.10/scripts/ にLnogLatMap_to_RoteteEarth.scmとして保存してから「Filters」→「Script-Fu」→「Refresh Scripots」でGIMPに登録しました。

回転する地球儀アニメーションの作成

貼り付けるマップを作り、「Script-Fu」→「CCILabo」→「RotateEarth」を実行すると、720コマのレイヤが作成されます。

GIMP_layers.jpg

ベースレイヤを削除してから「Filters」→「Animation」→「Optimize (for GIF)」でアニメーションGIF用の最適化フイルタをかけます。

背景レイヤを追加して、GIF形式で保存します。

GIMP_save_AS_GIF.jpg GIMP_export_image_as_gif.jpg

GIFアニメーションができました!

logo_gray_space_05deg_reduce.gif

 
(個人)気候変化情報研究室では、できるだけ簡単に、将来、地域の気候がどのように変化するかを示すグラフ・地図を作成する方法を開発し、紹介しています。
興味のある方はぜひ読んでみてくださいね~。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0