2005/06/18(土) [n年前の日記]
#1 [anime] ケロロ軍曹、南の島でバカンスの回
素晴らしい。
基本的には、女の子が男の子とお近づきになろうと画策するのをひたすら周囲が邪魔してるだけの話なのだけど。その、各所の表現が秀逸。
日光浴とビーチバレーには笑ってしまった。前者は、パッと見ただけで何が起きてるのか即座に伝わる、記号化されたデザインを最大限に活用した笑い。後者は、既存作品に見られるシリアスな表現・シーケンスを事前に見せたことで意外な結末を引き立たせつつ、やはり記号化されたデザインを用いることで異様なテンションを付加させて笑いをとる手法だし。とにかく素晴らしい。
コレ、子供にはどの程度ウケてるんだろう。自分が子供の頃にコレを見てたら、たぶん腹が痛くなるぐらい笑い転げてただろうと思うのだけど。
原作もこんな感じなのかしら。だとしたら、原作者は天才かもしれぬ。現代の赤塚不二夫か、はたまた鴨川つばめか。ってそこまで言うとアレか… (;´Д`)
基本的には、女の子が男の子とお近づきになろうと画策するのをひたすら周囲が邪魔してるだけの話なのだけど。その、各所の表現が秀逸。
日光浴とビーチバレーには笑ってしまった。前者は、パッと見ただけで何が起きてるのか即座に伝わる、記号化されたデザインを最大限に活用した笑い。後者は、既存作品に見られるシリアスな表現・シーケンスを事前に見せたことで意外な結末を引き立たせつつ、やはり記号化されたデザインを用いることで異様なテンションを付加させて笑いをとる手法だし。とにかく素晴らしい。
コレ、子供にはどの程度ウケてるんだろう。自分が子供の頃にコレを見てたら、たぶん腹が痛くなるぐらい笑い転げてただろうと思うのだけど。
原作もこんな感じなのかしら。だとしたら、原作者は天才かもしれぬ。現代の赤塚不二夫か、はたまた鴨川つばめか。ってそこまで言うとアレか… (;´Д`)
◎ OP映像でポケモンショック防止フィルタが効いていることに気づいた :
ショック。
OP終盤の、買い物から帰ってきたケロロが密かに食玩を購入していたことを咎められるシーンなのだけど。あの程度でフィルタがかかってしまうとは…。まあ、機械が判別してることなのでアレだけど。それに、TV東京系みたいだし。仕方ないよな。キレのいい映像が見たかったらDVDを購入せよ、ということでもあるのだろうし。
OP終盤の、買い物から帰ってきたケロロが密かに食玩を購入していたことを咎められるシーンなのだけど。あの程度でフィルタがかかってしまうとは…。まあ、機械が判別してることなのでアレだけど。それに、TV東京系みたいだし。仕方ないよな。キレのいい映像が見たかったらDVDを購入せよ、ということでもあるのだろうし。
◎ 映像の中でオバケが活用されてるあたりが個人的には結構嬉しいのだけど :
オバケと言っても本編に登場するオバケのキャラじゃなくて。素早い動きを見せるときに、残像部分も作画=そのカットだけ静止画で見るとなんだかよくわからないオバケのように見える表現、なのだけど。
OP映像にしろ、本編にしろ、3DCGではおそらくできそうにない、人間のみが描けるであろうそれら表現が頻繁に見られて嬉しかったり。好きなのです。オバケ。 *1
そういえば、EDの3DCGアニメ映像も面白い。面白いと言っても、OP映像・本編とは全く正反対の位置にあるというか…3DCGの得意分野と不得意分野が同居してるトホホぶりが面白いのだけど。<ってオイ。黄金に輝くアフロ像がグルグル回るところは、形状を正確に描写する3DCGのメリット全開だけど。各キャラがふにゃふにゃ踊るところは、モーション以前の問題で、形状が硬過ぎて面白くも何ともないというデメリットを痛いほど感じさせる。狙ってやってるのか、何も考えてないのか、どっちなんだろうなぁ。単なる実験、かしら。
OP映像にしろ、本編にしろ、3DCGではおそらくできそうにない、人間のみが描けるであろうそれら表現が頻繁に見られて嬉しかったり。好きなのです。オバケ。 *1
そういえば、EDの3DCGアニメ映像も面白い。面白いと言っても、OP映像・本編とは全く正反対の位置にあるというか…3DCGの得意分野と不得意分野が同居してるトホホぶりが面白いのだけど。<ってオイ。黄金に輝くアフロ像がグルグル回るところは、形状を正確に描写する3DCGのメリット全開だけど。各キャラがふにゃふにゃ踊るところは、モーション以前の問題で、形状が硬過ぎて面白くも何ともないというデメリットを痛いほど感じさせる。狙ってやってるのか、何も考えてないのか、どっちなんだろうなぁ。単なる実験、かしら。
*1: 初めてそれら表現を意識したのは、MEGA-CD版の「ゆみみみっくす」だったかしら。ヒロインが小動物を拾い上げるカットでそれがあって。「なんだ? 今の表現は?」と思ったのが最初。一度意識すると、結構当たり前のようにそれら表現が使われてるのが判って。ゲームのドット絵でも当たり前のように使ってる、というか使わないと仕事にならないと知って感心した記憶も。
[ ツッコむ ]
#2 [anime] ネクサス、ラストちょっと前の回
悲壮感漂うウルトラマンの人。彼女とのやりとりのあたりは、ちょっと感心してしまった。
が。やっぱりあそこは消して欲しかったな。消したはずなのに消えなかったとなれば、想いの強さもわかろうというもの。ていうかそれって「フルーツバスケット」か。…まあ、そこまでの時間は残されてないのでアレか。それに、既に各話で、「消す」「消さない」を使ったエピソードは書いてるし。
が。やっぱりあそこは消して欲しかったな。消したはずなのに消えなかったとなれば、想いの強さもわかろうというもの。ていうかそれって「フルーツバスケット」か。…まあ、そこまでの時間は残されてないのでアレか。それに、既に各話で、「消す」「消さない」を使ったエピソードは書いてるし。
[ ツッコむ ]
#3 [anime] ジャスティライザー、新しい大ボス登場
オカマか! しかも配色が気色悪い。結構斬新。
全然関係ないけど。今まで、本編のアクションシーンで、ブラーがかかったような映像が時々流れる場面があって。てっきりスタッフが手を加えてるのかなと感心してたけど、アレって実はポケモンショック防止フィルタが効いてただけだったんじゃ…。何せ、TV東京系だし。なんかこうなってくると、編集時・映像加工時のスタッフの工夫ぶりを読み取ろうと努力するのもアレかなという気もしてきた。機械が勝手に判別してわけのわからん映像加工をしてしまうのでは、何がスタッフ自身の手によるものか、判別しにくいよなぁ。
全然関係ないけど。今まで、本編のアクションシーンで、ブラーがかかったような映像が時々流れる場面があって。てっきりスタッフが手を加えてるのかなと感心してたけど、アレって実はポケモンショック防止フィルタが効いてただけだったんじゃ…。何せ、TV東京系だし。なんかこうなってくると、編集時・映像加工時のスタッフの工夫ぶりを読み取ろうと努力するのもアレかなという気もしてきた。機械が勝手に判別してわけのわからん映像加工をしてしまうのでは、何がスタッフ自身の手によるものか、判別しにくいよなぁ。
◎ つーかポケモンショック防止フィルタって本当に効果あるの? :
ちゃんとデータを取って効果を確認したうえで適用してるのだろうか。であれば仕方ないとは思うけど…。防止できるか否か根拠もなく、ただ、「対策してます」とポーズを取るためだけに適用してるなら、ちょっとどうかと思うんだけど。
と言ってもやっぱり、「本来の映像を見たかったらDVDを購入せよ」という話になるから、それらフィルタを排除・改良する必要はない、という話になりそうか。
いっそ、日本のアニメ・特撮は、法律でも制定して、全部、6 frame/sec (4コマ撮り?)ぐらいの映像に制限しちゃうというのはどうか。作る側が楽になるし、子供も倒れたりしない。いいことづくめ!
無理があるか。
と言ってもやっぱり、「本来の映像を見たかったらDVDを購入せよ」という話になるから、それらフィルタを排除・改良する必要はない、という話になりそうか。
いっそ、日本のアニメ・特撮は、法律でも制定して、全部、6 frame/sec (4コマ撮り?)ぐらいの映像に制限しちゃうというのはどうか。作る側が楽になるし、子供も倒れたりしない。いいことづくめ!
無理があるか。
[ ツッコむ ]
#4 [prog][mozilla] JSActionsで文字変換できないものかと試行錯誤中
上手くいきません。うーん。…とりあえず作ってたものをメモ代わりに載せとくか。
やってることは、
JSActions のバージョンは、2.1.0。文字コードの設定は、Shift_JIS。
やってることは、
- 半角カナ→全角カナに変換
- 全角英数文字を半角英数文字に変換
- 特定の半角記号を全角記号に変換
- 改行コードやタブをスペースに変換
- 行頭・行末のスペースを削除。(trim処理)
JSActions のバージョンは、2.1.0。文字コードの設定は、Shift_JIS。
◎ vbs版変換スクリプト :
動いてるけど、クリップボードからの取得に時々失敗する…。
' クリップボード内の文字列を文字変換してクリップボードへ送り直す ' Last updated: <2005/06/19 02:32:26 +0900> Option Explicit WScript.Sleep(500) with CreateObject("InternetExplorer.Application") .Navigate("about:blank") Do until .Busy = False Or .ReadyState = 4 WScript.Sleep 50 Loop With .Document.ParentWindow.ClipboardData Dim stext stext = .getData("text") If IsNull(stext) = False Then stext = GetOperatedText(stext) .SetData "text",stext Else stext = "クリップボード内のデータが不正です。" End If WScript.Sleep(150) WScript.Echo stext End With .Quit End With ' 文字変換 subroutine Function UserTextConvert(utext,dicsrc,dicdist) Dim c, moji, i, index c = "" For i = 1 To Len(utext) moji = Mid(utext,i,1) index = inStr(dicsrc, moji) If index > 0 Then moji = Mid(dicdist,index,1) c = c & moji Next UserTextConvert = c End Function ' 改行等削除、半角/全角変換 Function GetOperatedText(t) Dim bobj Dim t0,t1,t2,t3,t4,t5,t6,t7,t8 Dim d1a, d1b, src, temp, temp2, newsrc,result Set bobj = CreateObject("basp21") ' t1 = bobj.Kconv(t,1) t1 = t t0 = Replace(t1,vbCrLf, " ") t1 = Replace(t0,vbCr, " ") t0 = Replace(t1,vbLf, " ") t1 = Replace(t0," ", " ") t0 = Replace(t1," ", " ") t1 = Replace(t0,"−", "-") t0 = Trim(t1) src = bobj.HAN2ZEN(t0) bobj.Translate "tr/0-9A-Za-z()/0-9A-Za-z()/k",src,newsrc Set bobj = Nothing d1a = "!""#$%&',.+?/:;" d1b = "!”#$%&’,.+?/:;" result = UserTextConvert(newsrc,d1a,d1b) GetOperatedText = result End Function
◎ JSActions側のvbs変換スクリプト呼び出し :
変換自体はvbs側で行ってる。クリップボードに選択範囲をコピーして、該当vbsスクリプトを呼び出してるだけ。
// selection copy -> zenkaku hankaku convert -> copy // zenkaku hankaku convert ... convhzclip.vbs used. jsa_conv_selection_copy(); function jsa_conv_selection_copy() { var wscriptpath = "C:\\WINDOWS\\system32\\wscript.exe"; var convpath = "C:\\home\\bin\\convhzclip.vbs"; if ( _jsaCScript.context.isTextSelected ) { var str = window.getSelection().toString(); // _jsaCScript.dump("Org text : " + str ); _jsaCScript.setClipBoardString( str ); convpath = _jsaCScript.convertCharCodeTo( convpath, "shift_jis" ); _jsaCScript.exec(wscriptpath, convpath); // var cstr = ""; // for ( var i = 0; i<5000; i++ ) { // cstr = _jsaCScript.getClipBoardString; // if ( str == cstr ) break; // } // // if ( str == cstr ) { // _jsaCScript.popAutoHideAlert( "Clipboard : " + cstr ); // convpath = _jsaCScript.convertCharCodeTo( convpath, "shift_jis" ); // _jsaCScript.exec(wscriptpath, convpath); // } else { // _jsaCScript.popAutoHideAlert( "Error : Can't set clipboard." ); // } } }コメントアウト部分は、クリップボードに正しくコピーされたかどうかチェックするようにしてみた部分。でも、絶対、「ちゃんとコピーされてない」と言われる。うーん。
◎ JSActions側だけで変換処理ができないか模索した版(動かないけど) :
JavaScriptだけで変換できればそれが一番いいのだけど。どうも全角文字の切り出し(?)・比較・置換が失敗してるみたいで…。いわゆる、Webページに付加するJavaScriptのサンプル等からコピペしてやってみたのだけど。何が違うのだろう…。
// selection copy -> zenkaku hankaku convert -> copy jsa_hzconv_selection_copy(); function jsa_hzconv_selection_copy() { if ( _jsaCScript.context.isTextSelected ) { var str = window.getSelection().toString(); var rstr = get_operated_text(str); _jsaCScript.setClipBoardString(rstr); _jsaCScript.popAutoHideAlert(rstr); } } function get_operated_text(s) { var ss; ss = del_spc(s); s = ss.replace(/^\s+|\s+$/g,""); ss = kana_h2z(s); s = conv_z2h(ss); return s; } function conv_z2h(s) { var src = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz− "; var dst = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz- "; return convstr_str(s,src,dst); } function del_spc(s) { s = s.replace(/[\t\r\n]+/g," "); s = s.replace(/ /g," "); return s; } function convstr(ostr,src,dst) { var str = ostr; if ( src.length != dst.length ) { _jsaCScript.dump('Error: src.length != dst.length'); str = 'error'; } else { for(var i = 0; i < src.length; i++){ var srcc = src[i].toString(); var dstc = dst[i].toString(); var srccm = '/'+srcc+'/g'; // _jsaCScript.dump('['+srcc+'] -> ['+dstc+']['+srccm+']') str = str.replace(srccm, dstc); } } _jsaCScript.dump('['+ostr+']['+str+']'); return str; } function convstr_str(ostr,src,dst) { var str = ostr; var mode = 0; var sn = src.length; var dn = dst.length; _jsaCScript.dump('sn='+sn+' dn='+dn); if ( sn == dn ) { mode = 0; } else { if ( sn == (dn * 2) ) { mode = 1; // z2h } else { if ( (sn * 2) == dn ) { mode = 2; // h2z } else { _jsaCScript.dump('Error: src.length != dst.length'); return ostr; } } } _jsaCScript.dump('mode='+mode); switch(mode) { case 1: // z2h for ( var i = 0; i < dn; i++ ) { var srcc = src.substr(i*2,2); var dstc = dst.substr(i,1); _jsaCScript.dump("["+srcc+"] -> ["+dstc+"]"); str = str.replace(srcc, dstc); } break; case 2: // h2z for ( var i = 0; i < sn; i++ ) { var srcc = src.substr(i,1); var dstc = dst.substr(i*2,2); _jsaCScript.dump("["+srcc+"] -> ["+dstc+"]"); str = str.replace(srcc, dstc); } break; default: for ( var i = 0; i < sn; i++ ) { var srcc = src.substr(i,1); var dstc = dst.substr(i,1); _jsaCScript.dump("["+srcc+"] -> ["+dstc+"]"); str = str.replace(srcc, dstc); } break; } _jsaCScript.dump('['+ostr+']['+str+']'); return str; } function matchNum(text, sText) { var n = 0; for (i=0; i<text.length;i++ ) { i = text.indexOf(sText, i); if (i == -1) { break; } else { n++; } } _jsaCScript.dump('['+text+']'+'['+sText+']'+'match='+n); return n; } // hankaku kana -> zenkaku kana // http://www5e.biglobe.ne.jp/~access_r/hp/javascript/js_111.html function kana_h2z(str){ var kana1 = new Array( 'ガ','ギ','グ','ゲ','ゴ','ザ','ジ','ズ','ゼ','ゾ', 'ダ','ヂ','ヅ','デ','ド','バ','ビ','ブ','ベ','ボ', 'パ','ピ','プ','ペ','ポ', 'ヲ', 'ァ','ィ','ゥ','ェ','ォ', 'ャ','ュ','ョ', 'ッ','ー', 'ア','イ','ウ','エ','オ','カ','キ','ク','ケ','コ', 'サ','シ','ス','セ', 'ソ', 'タ','チ','ツ','テ','ト','ナ','ニ','ヌ','ネ','ノ', 'ハ','ヒ','フ','ヘ','ホ','マ','ミ','ム','メ','モ', 'ヤ','ユ','ヨ', 'ラ','リ','ル','レ','ロ', 'ワ','ン'); var kana2 = new Array( 'ガ','ギ','グ','ゲ','ゴ','ザ','ジ','ズ','ゼ','ゾ', 'ダ','ヂ','ヅ','デ','ド','バ','ビ','ブ','ベ','ボ', 'パ','ピ','プ','ペ','ポ', 'ヲ', 'ァ','ィ','ゥ','ェ','ォ', 'ャ','ュ','ョ', 'ッ','ー', 'ア','イ','ウ','エ','オ','カ','キ','ク','ケ','コ', 'サ','シ','ス','セ', 'ソ\', 'タ','チ','ツ','テ','ト','ナ','ニ','ヌ','ネ','ノ', 'ハ','ヒ','フ','ヘ','ホ','マ','ミ','ム','メ','モ', 'ヤ','ユ','ヨ', 'ラ','リ','ル','レ','ロ', 'ワ','ン'); return convstr(str,kana1,kana2); }
[ ツッコむ ]
以上、1 日分です。