ポプテピはアニメじゃない、とは言わないけれど。

「ポプテピはアニメじゃない」アニメ大好き芸人・ハライチ岩井が『ポプテピピック』大絶賛の風潮に反論*1

完全に理解できているかわからないけど、雰囲気は理解した…かな。

シュールをやりにいっちゃいけないんですよ。シュールをやりにいったら、ネタとか劇とかできない。

 たとえば舞台があります、何時に劇場に集合してくださいって言って、みんなでそこの劇場に行かずに、蕎麦屋で蕎麦を食べている。これがシュールです。そこに行って、演劇をやっている時点でシュールじゃない。

なんとなく、言わんとしていることはわかる…ような、気がする。

アニメ1話で印象に残っているのは、あんた名は、クロノトリガー、トトロ、あたりだ。そのあと原作漫画を買ったけれど、これらのネタ全部なかった。2話の勇者ネタも無い。料理ネタは何回かあるけれど「ポプテピクッキング」とセリフにあったのは1度きり。推理ドラマやホラーは影も形もない*2

たぶん原作既読の人にとっては「こんなのねーよw」というネタとして受け取られたのだろう。星色ガールドロップ同様「無いものをあるように見せる」というネタともとれる。一方、「原作が面白いからアニメ化した」という視点で見た場合、その面白さをトレースしていない、ともとれるわけで。何でもアリ、パロディ多め、(誉め言葉の)クソである、という共通点、方向性の一致はあるけれども、原作を台本に演出・再構成したものとは異なる。「シュールをやりにいったら、ネタとか劇とかできない。」はこれを指して言っているのかなと。わけがわからない闇鍋をやるためには、わかってるものを出すと合わない、というか。
最終回に有名(?)な「竹書房ゥァア゛ーッ」がそのままの形で出てこなかったのも、台本に沿ったらシュールにならない為なのかもしれない。

声優を楽しむというのも、漫画には存在しない楽しみ方である。まあそれは他のアニメでも同様だけれど「役に合っている」「合っていない」という軸での評価ではなかった。「男声かよ!」とか、パロディを元ネタの声優がやってしまった*3とか、そういう方の面白さだった。ボブネミは原作にわりと忠実だけれど*4、どちらかというと台本よりも絵の面白さでウケている。ゲームネタを本当にドットにするのや、料理ネタを本当にTV番組風にするのは「実際にやってみた」系に見える。原作漫画はパロディを多く含むが、アニメはパロディ漫画のパロディになっていたのかもしれない。「才能の無駄遣い(有効活用)」「プロの犯行」に近い概念というか、なんというか。

一番原作に忠実で長いネタは、星色ガールドロップのオープニングだったのではないか、そんな気すらしてくる*5


かといって、原作無視してるから原作と関係ないのでは無いか、と言うとそうでもなく。
ポプテピピックがオリジナルアニメだったら、たぶん星色ガールドロップは使えないなとか。ヘルシェイク矢野も原作に数コマという前提でのネタだよなとか*6

まあ4コマを30分アニメにする時点で、原作に忠実なアニメというのは無いんでしょうけどね*7

*1:このタイトルの正確性には疑問がある

*2:逆に、オリジナルだと思っていた竹書房彦摩呂ハム太郎やヘルサザンクロスは原作にあって驚いた

*3:声優さんの持ちネタ披露ともとれる?

*4:「ヘルシェイク矢野」除く

*5:アニメ全部記憶してないため、見直したら変わるかもしれない。

*6:紙芝居単体でも面白いけど

*7:原作者監修は、どのあたりの作業を指してたたんだろうか

とりあえず

ドッカンバトルのコード部分を転記。
「ドラゴンボールZ ドッカンバトル」「出現キャラ一覧」及び「出現キャラ提供割合」の表示に関する不具合の詳細

CardDatas CardModel:getMasterCardDatasByIds(const std:Vector & masterCardIds) Const
{
  vector results;
  results.resize(masterCardIds.size());
  size_t exists = 0,
  for (inti = 0; i < masterCardIds.size(); i++){
    auto p = results[i] = cardDataCache.fetch(masterCardIds[i]);
    if (p != nulptr) {
      exists++;
    }
  }
  if (masterCardIds.size() == exists) {
    return results;
  }
  string sq = form("SELECT * FROM cache.cards where id IN (%s)", join(masterCardIds, ",").c_str());

  int i = 0;
  DatabaseManager::getInstance()->query(sql, [this, &results, &i](sqlite3_stmt* stmt) {
    if(results[i]==nulptr) {
       results[i] = CardDataCache.store(make_shared(stmt));
    }
    i++;
  }
  return results;
}


わかるところだけ推測でコメント付け足すとこんな風?違ってたらごめんなさいで。

//masterCardIds: 全カードのIDの配列
CardDatas CardModel:getMasterCardDatasByIds(const std:Vector& masterCardIds) Const
{
  vector results; //カード情報の配列
  results.resize(masterCardIds.size());//配列のサイズ決定
  size_t exists = 0; //メモリ上に存在するカードIDの数

  //メモリ上に存在するカードIDの数をカウントする
  //cardDataCacheがおそらくメモリ上のデータ
  for (int i = 0; i < masterCardIds.size(); i++){
    //メモリに既にあるデータをカウント、格納
    auto p = results[i] = cardDataCache.fetch(masterCardIds[i]);//該当するIDがあるかチェック
    if (p != nulptr) {
      exists++;
    }
  }
  //全データがメモリにある場合には更新なしで終了。
  if (masterCardIds.size() == exists) {
    return results;
  }

  //以下、不足データがある場合、ストレージ(DB?)から差分を追加する(はずだった)処理

  //DBから全カード情報を読みだすSQL文の組み立て
  string sql = form("SELECT * FROM cache.cards where id IN (%s)", join(masterCardIds, ",").c_str());

  int i = 0;
  //この先が読めない。stmtどこ?
  DatabaseManager::getInstance()->query(sql, [this, &results, &i](sqlite3_stmt* stmt) {
    if(results[i]==nulptr) {
       results[i] = CardDataCache.store(make_shared(stmt));
    }
    i++;
  }
  return results;
}

Nexus 5xへデータ移行したときのメモ

アプリのバックアップとリストア

ネットワークadb backupを使った。コマンドライン1行ですべて終わるかと思ったらそう簡単でもなかった。

失敗 その1

adb backup -all -obb -apk -f hoge.ab
最初に試したもの。すべてのアプリとアプリデータを1ファイルに書き出すこまんど。……なのだけれど。ファイルが3GB(Winodows制限)を超えるよう容量になり、後半のアプリが途切れてしまった。

失敗 その2

容量を超えてしまうのなら
インストールアプリのパッケージ名一覧は

adb shell pm list
で取得できる。これをadb backupの引数に渡すと、指定パッケージだけをバックアップできる。
adb backup -all -obb -apk -f hoge1.ab com.android.app1 com.android.app2 (略) com.android.app20
adb backup -all -obb -apk -f hoge2.ab com.android.app21 com.android.app22 (略)
と、4つくらいのファイルに分割してバックアップ、リストアした。結果としてこれもうまくいかなかった。コマンドラインには文字数制限(256文字)があり、それより長い部分は無視されてしまう。この場合、パッケージ名のところが長すぎて一部がバックアップできていなかった。

うまくいった例

上記を踏まえ、コマンド文字列を256文字に収まるようパッケージ名を少なくして、adb backupを行う。

adb backup -all -obb -apk -f hoge1.ab com.android.app1 com.android.app2 (略) ※256文字以内
adb backup -all -obb -apk -f hoge2.ab com.android.app3 com.android.app4 (略) ※256文字以内
自分の場合、分割数が10個を超えたのでバッチファイルにした。また、adb backupはたまに止まるので、そのときはCtrl+Cで強制終了してやり直した。

移動できなかったもの

バックアップが出来ていても、新しいスマホにインストールされないアプリがあった。

  • Twitter, Facebookなど:アプリ側でprotected設定なのかもしれない。ストアから通常インストールと、設定やり直しで対応。
  • 旧携帯の独自アプリ:機種やOSのバージョン制限しているのかもしれない。

それ以外は大体保存データ込みで移行ができた(オプション-obb)。

そのほか

  • アプリ側で引継ぎ機能のあるものは、念のためにいったんデータクリアして正規の手順で引継ぎをした。

PC接続

MTPはできず、PTPのみが使えている。PCが古いせいかもしれない。MTPドライバをインストールしてみたけれど、効果はなかった。

Sifting Through the Embers

  • ダグラス・アダムスの本「これが見納め」の最終章を勝手に訳してみた。
  • 著者は「シビュラの書」が元ネタだと書いているが、神話そのままではない様子。
  • ちゃんとした訳は和訳本を読んだほうがいいですよ。というか、最終章だけ読んでも著者と同じように「理解できない」かもしれないので、本編読むのをおすすめします。
続きを読む

Image::Magick + PerlMagickのインストール

ActivePerlのバージョンを上げた(5.16)ので、ライブラリも再インストール。

http://www.imagemagick.org/script/binary-releases.php

ImageMagick-6.8.7-5-Q16-x86-dll.exeをインストールしたけれど、最初はエラーで動かなかった。

プロシージャ エントリ ポイント ComplexImagesがダイナミックリンク ライブラリ CORE_RL_magick_.dllから見つかりませんでした。

Can't load 'C:/Perl/5_16/site/lib/auto/Image/Magick/Magick.dll' for module Image

Magick: load_file:指定されたプロシージャが見つかりません。 at C:/Perl/5_16/lib

/DynaLoader.pm line 191.

インストール時にPathを追加するオプションを外したから、かと思ったらそうでもない。

ActivePerl5.8のときはすんなりだったのになあ…と悩んでいたら、古いバージョンのImageMagickがpathに含まれていた。削除したらあっさり解決。

編集方針とか

何を書くか/書かないか、メモ帳日記との線引きを作っておきたく。明言しないと迷走しそうなので。

  • twitterは思いつきをパッとかけるけど、字数制限もあり練ったこと書けない。流れ早くて書いた本人も読み返さない。
  • 作文の練習。公開できる文章を書いて実際公開してみる。どういう書き方が理解されやすいのか、どのくらいの発言までなら許容されるのか
  • コメントに返信を頑張ってみる。(これが一番難しい)。でも自己満足ならメモ帳にしまっておけばいいので。


これこそメモ帳に書いておけ、と思われそうだけどあえて。