« 「数ある、人間を被写体にしたストップモーションの撮り方」でこうなったらいいなって言う例 | メイン | Crap Animation1の紹介です。1分だけなので是非見てほしいwwwww »



ストップモーションの簡単な作り方

ストップモーションの簡単な作り方をはてなブックマークに追加 ストップモーションの簡単な作り方をdel.icio.usに追加  Yahoo!ブックマークに登録 ストップモーションの簡単な作り方をGoogle Bookmarksに追加 ストップモーションの簡単な作り方をtwitterにポスト




type="application/x-shockwave-flash" width="320" height="258">



バッチバカのお時間ですよ!というわけで、引き続きの内容ですが、ムービーをjpgファイル群に落として規則的に間引いたらストップモーションになるんじゃね?という内容でお送りします(最終回)



結果、成功しましたよ!というか、ただの早送りっぽくね?っていう感じですが。サンプルフラッシュを参照いただければわかると思いますが、雰囲気は出ているんじゃないかと思います。ただ、サンプルは、そのまま時間軸に沿って再生しても面白くない内容でしたので演出上、コイツを使って逆再生しています。



作り方は非常に簡単です。



・デジカメなどを用意してムービーで撮影します。
・avi2jpgで撮影したムービーをjpgファイル群に落とします。
・適宜演出を加えるなどします(ファイルを逆順にソートするなど)(てかこれしか演出のしようがなさそうですけど)
・下記のバッチをたたきます。
・ユーザが入力した内容で規則的にファイルを間引いていきます。
・あらためて、jpg2aviで動画を作成します。
・出来上がりです(゚∀゚)



どうでしょう。簡単にストップモーションを作りたい方には使えるんじゃないかと思って公開してみますが、これまたほかに使い勝手のないバッチですね。好きな方は実験してみてはいかがでしょう。
作ってみた感じ、
・間引くファイル数を調整しなければいけない
・実際に取るムービーは気持ち、スローモーションな感じで
っていうのがキモなんじゃないかなと思いました。



<ストップモーション作成バッチ>
01:>@echo このディレクトリ内の jpg ファイルを何枚毎に削除するか指定します。
02:>@set /P USER_INPUT="何枚毎に削除するか入力してください(半角数字)"
03:>setlocal EnableDelayedExpansion
04:>dir /b *.jpg > dir.txt
05:>set SWAPFILENAME=0
06:>set CURFILE=0
07:>for /f "delims=" %%i in ( dir.txt ) do (
08:> set /a SWAPFILENAME+=1
09:> set CURFILE=000!SWAPFILENAME!
10:> ren "%%i" movie_!CURFILE:~-4!.jpg
11:>)
12:>mkdir backup
13:>for /l %%j in ( 0, 1, %SWAPFILENAME% ) do (
14:> set /a CHECK=%%j%%%USER_INPUT%
15:> set /a CURFILE=%%j
16:> set DELFILE=000!CURFILE!
17:> if !CHECK! gtr 0 (
18:> move movie_!DELFILE:~-4!.jpg backup
19:> )
20:>)
21:>set LISTED=
22:>@set /P LISTED="ファイル名の整形(再ソート)を行う場合は[ Y ]を入力してください"
23:>if "%LISTED%"=="Y" (
24:> goto LISTED_ON
25:>) else (
26:> goto LISTED_OFF
27:>)
28:>:LISTED_ON
29:>dir /b *.jpg > dir.txt
30:>set SWAPFILENAME=0
31:>set CURFILE=0
32:>for /f "delims=" %%i in ( dir.txt ) do (
33:> set /a SWAPFILENAME+=1
34:> set CURFILE=000!SWAPFILENAME!
35:> ren "%%i" movie_!CURFILE:~-4!.jpg
36:>)
37:>:LISTED_OFF



あとは、ちょっと技術的な内容と使い方説明します。技術ったってなんてことはないですよ。
まず、このバッチをたたくとユーザに何ファイル毎にjpgファイルを残して、後は間引くか聞かれます。
"3"と入力すると(半角数字でお願いします)



0001.jpg ×
0002.jpg ×
0003.jpg
0004.jpg ×
0005.jpg ×
0006.jpg
0007.jpg ×
0008.jpg ×
0009.jpg
・・・



×のついたファイルがbackupディレクトリに移動していきます。
"4"だと 0001.jpg / 0002.jpg / 0003.jpg / 0005.jpg / 0006.jpg / 0007.jpg / 0009.jpg が間引かれていくわけですね。



これが終わるとさらに残ったファイルに対する再ソートを聞いてきます。



0003.jpg
0006.jpg
0009.jpg
・・・



これらのファイルを



0001.jpg
0002.jpg
0003.jpg
・・・



にリネームしたければ"Y"を入力してエンターしてください。
こんな感じの仕様です。



詳細な内容ですが、backupディレクトリに格納する条件が14~17行目の
14:> set /a CHECK=%%j%%%USER_INPUT%
15:> set /a CURFILE=%%j
16:> set DELFILE=000!CURFILE!
17:> if !CHECK! gtr 0 (
です。これは、ユーザが入力した値でファイル名を割り算します。で、割り切れなかった残りの値が0より大きいものをbackupディレクトリに格納しているわけです。こういう演算を余剰演算[ % ] とかっていいますけど、14行目がえらいことになっていますね。



分解すると以下のようになります。
set /a CHECK=%%j %% %USER_INPUT%
演算子なんだか参照指定子なんだかよくわからんですね。



で、割り切れなかった値の話に戻りますが、ユーザが"3"を入力すると、



1 ÷ 3 = 0 あまり 1
2 ÷ 3 = 0 あまり 2
3 ÷ 3 = 0 あまり 0
4 ÷ 3 = 1 あまり 1
5 ÷ 3 = 2 あまり 2
6 ÷ 3 = 2 あまり 0



のように、あまりが出た(0より大きい)ファイル名をbackupディレクトリにどかしているんですね。
ちなみに比較演算子の gtr は~より大きい値という意味です。( if /? で確認できます)
このような演算をしたいために、はじめにファイル名をソートしています。10行目ですね。
10:> ren "%%i" movie_!CURFILE:~-4!.jpg
これは、既存のファイル名を movie_0001.jpgから連番でリネームしているコマンドです。



と、解説はこんなところでしょうか。もっといいやり方はあると思いますが、やりたいことが実現できればいいんじゃないかと思います。へへへ。
まぁそんなくだらないバッチですが、ダウンロードはこちら。

★このコンテンツに目的の情報はありませんでしたか?


[ 最近のエントリーとその関連エントリー ]


[ スポンサードリンク ]

トラックバック

このエントリーのトラックバックURL:
http://mojalog.com/cgi/mt/mt-tb.cgi/58

コメント (2)

Artmic8neo:

このやりかた。
以前YouTubeで、人がずっと飛んでいる映像を見ました。足を動かさずに地面を滑るように走る映像とか。

『間引く』ってことはいわゆる早送りになる事ですもんね。確かに言われてみれば、早送りにも見えますね。
後半の文字が描かれて行くシーンの方が感じ出てます。
この撮影技法、シチュエーションがかなりとわれるのかもしれないですね。

面白い記事有り難うございます!
(^_^)

ひげもじゃ:

こんにちは!
そうなんです。メトロノームか何かで規則的なスパンでぴょんぴょんはねた状態をムービーに映せば結構ちゃんと間引けると思うんですよ。

編集で何とかするって言う、あまり魂に熱が入らない手法ですのでなんともいえませんね。

ワタシは基本的に被写体、人形ですので大変です。へへへ。

コメントを投稿

ツリータイプ・カテゴリー

open all | close all

リファラから検索


サイト内検索