広告/統計/アニメ/映画 等に関するブログ

広告/統計/アニメ/映画 等に関するブログ

映画『閃光のハサウェイ』は主人公の感情にフォーカスした興味深い作品

映画『閃光のハサウェイ』の完成度が高いという噂を聞いて鑑賞してきた。

youtu.be

*1

因みに自分は原作小説を見ていないので、三部作がこの先どうなるのかは知らない。あくまで第一部について感じた所感だ。

ガンダムらしくないガンダムの描写

何を以て「ガンダムらしい」とするかは異論があると思うが、自分はガンダムの中心にはいつも以下の描写があると思っている

  • 主人公或いは語り手が偶然から戦争に巻き込まれる(→ 自然に設定を受け入れられる)
  • ガンダムを所有する組織が孤立し居場所がなくなる(→ 応援したくなる)
  • 政治的な主義主張が敵味方両方にある(→世界観が壮大な印象になる)
  • 自分勝手でダメな主人公が少し成長する(→ 王道)
  • 登場人物が感情的な激論を交わす(*富野由悠季作品に多い少し噛み合わない喧嘩腰の会話)

だが、本作ではそれらが殆どない。特に政治的な主義主張に至っては、何のために誰と誰が戦っているのかが殆ど説明されないし、動機は最後まで不明のままだ。

主人公の葛藤や心の揺れ動きに描写が注力されている

一方で本作は、組織同士の対立の描写がない代わりに、以下のようなに個人にフォーカスした心情の描写が厚い。

  • 運悪く出会った人たちに主人公が興味を持つ描写がある
  • (同様に)出会った人たちや仲間の主人公に対する興味関心や感情の訴えを匂わす描写がある
  • 主人公が自分の精神的な迷いと悩む台詞がある
  • 戦闘シーンより日常シーンが長い
  • 冒頭を除いて説明的な台詞が少なく暗喩的で推測させる描写が多い(小物にフォーカスしたシーンが多数インサートされる)
  • 主人公の主観でブレたりボケたりする映像のインサートがある

今までのガンダムとはフォーカスするポイントが異なるが、自分は寧ろこういった個人の感情に注力した描写がある方が人間味があって好きだし、バランスも良いと思う。

独特のMS戦闘シーン

これはガンダムシリーズが好きな人には好き嫌いが出そうなポイントだと思ったが、

  • モビルスーツの全身を大きく見せるシーンがない(巨大感やキメカットがない)
  • 明るいところでモビルスーツが登場するシーンがない(形がよく見えない)
  • モビルスーツ同士の物理的な戦闘シーンがとても短い

といった、これまでのガンダムシリーズが凝っていた戦闘シーンの描写はあまりない。 一方で、

  • 銃声の音響が強く重い
  • ビームだけが光る緊張感のあるシーン
  • 無重力空間の恐ろしさの演出
  • 市街戦で消火栓が溶ける、天井から落下物がある、など細かい描写で恐怖を煽る

など、今までとは違った形で、戦闘シーンに「重さ」を見せてくる。

巨大なロボットが戦う描写や、派手に建物が壊れる様子や、逃げ惑う人の悲鳴などのこれまでのステレオタイプな描写とはまた違った見せ方だと感じた。

『逆襲のシェア』は見ておいた方がいい

ストーリーを理解するためというより、主人公の葛藤を追いかけるには、主人公の「ハサウェイ」がどんな”ダメ少年”だったかを知っている方が感情移入できる。

少し情緒不安定なヒロインに再び翻弄されるハサウェイ君が少し成長しつつも憎めないところがあり、泣けてくるのだ。

大きなスクリーンと良い音響のスクリーンがあてがわれているうちに見たい作品だ。

*1:公式の予告1,2がネタバレをしているのでこの特報映像をお勧めする

Jupyter notebookでvpythonを表示させるにはcanvas()が必要

読んでいる本でvpython (visual python)のライブラリを使うところが出てきたが、何故か表示されなず困っていた。

迷っていると同じ悩みがstack overflow にあったので、リンクをメモしておく。

stackoverflow.com

Jupyter nobebookを使っている場合は、

canvas()

が必要なようだ。

有名な球体の表示だとこうなる

from vpython import *
canvas()
sphere()

f:id:yyhhyy:20210523154102p:plain

Google 検索のサジェスト機能からデータを取得する。(Python、XML、2021年5月)

Google 検索のサジェスト機能(Google suggest)のAPIを使ってデータを取得するための情報は多いが、古くなっている情報も多いので最新の情報をメモしておく。

PythonによるXML形式でのGoogle suggest API 取得

Google suggest API は、JSONで取得するコードが多いが、JSON形式はいつの間にか廃止されているようなのでXML形式を採用する

https://so-zou.jp/web-app/tech/web-api/google/suggest/

参考にしたコード

自分はPythonしか使えないのでPythonで取得している記事を参照する

https://gist.github.com/fpt/b21b8abea239392129b6

幾つか既に古くなっている箇所を補足する

unicodeメソッドは廃止されている。今は、文字列にするにはstr()だけで良い。

http://diveintopython3-ja.rdy.jp/porting-code-to-python-3-with-2to3.html

同時にこれによって、OSの規定の文字コードを取得するコード類も不要となる。

API内容の補足

日本語の検索結果にするか、日本にエリアを限定するかなどを設定できる。

https://importsem.com/query-google-suggestions-api-with-python/

コードの実装

自分は、対話式のJupyterで作業できれば良いので、コマンドプロンプトからの入力情報を受取る必要はない。なおparserをJupyterで使うにはテクニックがいるようだ。(自分は使っていないので慣れていない)

https://qiita.com/uenonuenon/items/09fa620426b4c5d4acf9

https://qiita.com/kzkadc/items/e4fc7bc9c003de1eb6d0

必要なライブラリの読み込み

import pprint
import requests
from lxml import etree
import numpy as np
import pandas as pd

検索したいワードを指定する

qstr = "セキュリティ"

APIIの取得

google_r = requests.get("http://www.google.com/complete/search",
                 params={'q':qstr,
                         'hl':'ja',
                         'ie':'utf_8',
                         'oe':'utf_8',
                         'output': 'toolbar'})

google_root = etree.XML(google_r.text)

suggestされた語句の取得

google_sugs = google_root.xpath("//suggestion")
google_sugstrs = [s.get("data") for s in google_sugs]

データフレームに順番に格納する

google_suglist = []
for ss in google_sugstrs:
    google_suglist.append(ss)
    print(ss)
セキュリティ
セキュリティソフト
セキュリティニュース
セキュリティパッチ
セキュリティインシデント
セキュリティトークン
セキュリティポリシー
セキュリティグループ
セキュリティコード
セキュリティ 資格
google_suglist_df = pd.DataFrame(google_suglist)
display(google_suglist_df)
0
0 セキュリティ
1 セキュリティソフト
2 セキュリティニュース
3 セキュリティパッチ
4 セキュリティインシデント
5 セキュリティトーク
6 セキュリティポリシー
7 セキュリティグループ
8 セキュリティコード
9 セキュリティ 資格

エクセルファイルなどの書き出せる

google_suglist_df.to_excel("google_suglist_df.xlsx")

アニメ「新世界より」は「メロドラマ」だった

数カ年遅れで「新世界より」のアニメ版を見た。原作を読んでいないので原作読者からすると的外れな感想かもしれなけれど、とても美しかったので、忘れないうちに記録にしておきたい。

ホラーにもサスペンスやアクションにもできたプロット

少しだけネタバレをしながら説明すると、本作は、超能力を持つ子ども達が、特定の目的で管理されながら育てられ、主人公たちはその秘密を解き明かしながらも襲いかかる敵と立ち向かっていく数カ年の物語で、いかに社会を安定的に保つかという管理社会の思想を問うテーマも持っている。

約束のネバーランド」のようにホラーにすることもできたし、秘密に迫るサスペンスにすることもできたし、管理社会を風刺する社会派にすることもできたし、超能力を使ったバトルやアクションにすることもできるプロットだ。

どれを選択するかはプロデューサーや監督の裁量次第ということだろう。

メロドラマだと感じた

自分は、「本作はメロドラマだ」という感想を持った。

主人公が過去を振り返るナレーションが入るのは、映画「タイタニック」のような哀愁を感じさせるし、何より、誰と誰が恋仲かという描写や嫉妬や離別のシーンなどに割かれているシーンが多かったからだ。

離別してしまった友を思い返す描写や、思い出の中の友に助けられるシーンもあるし、忘れてしまっていた友の記憶を思い出すシーンも印象的かつ効果的に使われている。

劇伴(BGM)もアクション向けの曲より哀愁漂うスローテンポな曲の使用が多く、何より、ドボルザーク新世界より」の「家路」が合っていた。徐々に減っていく仲間と、主人公が過去を振り返るという形式が、懐かしさと哀愁を強調する。

同じプロットからテーマはいくらでも変化させられる

本作を見て思ったのは、プロットとテーマ(主題)の関係の柔軟性だ。

原作を読んで超能力バトルの色を強くすることもできたろうし、管理社会制度を問う社会派にすることも、色んな選択肢がある中で、主人公が離別していった友を想うことにフォーカスを当てたことで、とても物悲しく泣ける作品になったのだが、何をテーマにして作るのかということはプロデューサーや演出家にとって重要な決断だと思う。

自分は、このような美しい方向へ演出を振り切ったことに感謝したい。

Pandasで文字列に対してcase_whenをしたいときの注意箇所

pandas でSQLのcase_whenのように、特定の列の条件に応じて新しく分類を作りたい場合がある。

様々な選択肢があるが、シンプルなのはこのサイトのように関数を作って列に適用させる手法だろう。

qiita.com

数値の列であれば参考サイトの通りに行えば問題ないが、文字列の場合は注意が必要だ。

テストデータの準備

import numpy as np
import pandas as pd
df = pd.DataFrame({
    "商品名":["オレンジ","アップル","はくさい","れんこん","サバ"],
    "売上":[100,120,80,40,90]
})
display(df)
商品名 売上
0 オレンジ 100
1 アップル 120
2 はくさい 80
3 れんこん 40
4 サバ 90

このデータフレームに新しく「野菜」「魚」「果物」などの分類列を加えたいものとする。

str.containsではエラーになる

文字列の条件といえば、str.containsである。

商品名にオレンジを含むかどうかであれば以下のように記述すれば良い

df["商品名"].str.contains("オレンジ")
0     True
1    False
2    False
3    False
4    False
Name: 商品名, dtype: bool

だが、ここで先程のサイトのように関数にするとエラーになる

def func_case_when_kubun_1(x):
    if x.str.contains("オレンジ"):
        return "果物"
    elif  x.str.contains("アップル"):
        return "果物作"
    elif x.str.contains("はくさい"):
        return "野菜"
    elif x.str.contains("れんこん"):
        return "野菜"
    elif x.str.contains("サバ"):
        return "魚"
    else:
        return "その他"
    
df["商品名"].apply(func_case_when_kubun_1)
AttributeError: 'str' object has no attribute 'str'

エラーの理由

「 'str' object has no attribute 'str'」というエラーでググると、丁寧に説明しているページがあった

stackoverflow.com

df["商品名"]の各要素の型は「str」なのだ

type(df["商品名"][1])
str

解決策

では、「str」型の文字列に対して「~を含む」などの処理をどうするかというと、こちらのサイトに紹介がある。

note.nkmk.me

ということで、関数は以下のように書き直して実行すれば良い。

def func_case_when_kubun_2(x):
    if "オレンジ" in x:
        return "果物"
    elif "アップル" in x:
        return "果物作"
    elif "はくさい" in x:
        return "野菜"
    elif "れんこん" in x:
        return "野菜"
    elif "サバ" in x:
        return "魚"
    else:
        return "その他"
    
df["商品名"].apply(func_case_when_kubun_2)
0     果物
1    果物作
2     野菜
3     野菜
4      魚
Name: 商品名, dtype: object

元のデータフレームに列を追加したいので以下のように插入する

df["分類"] = df["商品名"].apply(func_case_when_kubun_2)
display(df)
商品名 売上 分類
0 オレンジ 100 果物
1 アップル 120 果物作
2 はくさい 80 野菜
3 れんこん 40 野菜
4 サバ 90

これで、文字列条件を使ってpandasデータフレームに新しいカテゴリ分類を追加することができた。

「スパイラル -推理の絆-」の劇伴と見せ方が凄い

「裏世界ピクニック」を見ていると登場人物が「スパイラル -推理の絆-」を読んでいた。見よう見ようと思って見ていなかったので、初めて見たのだが、演出の良さが半端ない作品だった。自分は大した分析の知識もないけれど、ここが良かったなぁと思ったことを忘れないうちに書いておく。

「スパイラル -推理の絆-」TV版はどんな`シーンが描かれるのか

「スリル」「サスペンス」辺りに分類されるような作品。TV版を大まかに説明すると、主人公は、疾走した兄が残した言葉によって、変な組織の子供たち(ブレードチルドレン)に実力を試されるような生死をかけたゲームに参加させられたり、逆に彼らが別の組織にゲーム的に狙われるのを助けたり、ということをする。推理と書いてあるがメインは推理モノではないし、SF的要素も感じさせる設定だが、実際のシーンでは超常現象も超能力も登場せず、心理の読み合いが中心なので、派手なシーンは殆どない。モノローグシーンもかなり多い。

劇伴らしい劇伴

劇伴には大きく3つの方向性がある。効果音が中心の劇伴(ドラえもんのような子供向けや、萌・ギャグ系)、曲として独立しても成立する劇伴(最近の異世界転生系、戦闘シーンが多い作品)、世界観にあわせた劇伴(EVAの頃の鷺巣詩郎さんや大野雄二さんのルパン三世)。

この作品は、世界観にあわせた劇伴のタイプで、これから展開尾の流れが変わるぞ?という時に気分の高まる劇伴が流れ始める。

効果的なピアノ曲

リスト、ラヴェルドビュッシーなど近代音楽系の美しいピアノ曲にいろんなシーンが載るとそれだけで趣がある。主人公やアイズ・ラザフォードはピアノを弾くキャラクターであり、演奏シーンもある。

個性的なコンテ

担当者が異なる回によって作風が違うものの、画面が見切れる大胆なアップや、不安な画面のローアングル、孤独感のある俯瞰等々、内容を説明することよりも心理描写に重きを置いた印象のカット。殆ど動かない登場人物たちによるモノローグなので、単調にならないまま25話一気に流れるのはとても凄い


サウンドトラックも買ってしまった。メインテーマがとにかくいい。

ダーリン・イン・ザ・フランキスの劇伴の質感が好き

ドコモ・アニメストアのオススメに従って「ダーリン・イン・ザ・フランキス」を観た。視聴し始めてすぐ惹かれてしまったのだが、コクピットのシーンが卑猥に見えると放送当時話題になった作品だったことには、途中から気がついた。

まとまった分析でもなんでもないものの、個人的に凄く印象に残ったので忘れないうちに感想をとどめておきたい。

湿っぽい劇伴

自分は音楽の知識と語彙力が低く、なんと形容して良いのかわからないが「とても湿っぽい曲が多い」と感じた。

例えば、6:20あたりから紹介あされている「Clarity」 youtu.be

戦闘シーンなどにはもちろんもっと強い曲があるものの、日常のシーンは全体的に暗い。とにかく暗いのだが、この湿っぽい質感に惹かれて、最終話まで数日で観ることになってしまった。

暗いストーリー、彩度が低い画面

そもそもの設定が、閉じられた世界で育てられた子どもという暗さに加え、画面の彩度も低く、全体的に重い。PV第1弾を見るとなんとなくわかってもらえるだろう。

youtu.be

ストーリーを補完する劇伴

少しだけネタバレすると、本作は襲って来る敵との戦いや組織の謎の解明というストーリーラインがありつつも、大半は三角関係のもつれが描かれる。

少し優しくされただけで惚れてしまったり、そもそもなんで男女ペアで戦うのかの納得性もなく、敵の正体なども実は納得いかないまま、プロットについては自分は納得いかなかったのだが、この美しい劇伴と一緒に見せられると時々目頭が熱くなってしまった。

改めて、劇伴の重要性を感じた作品だった。

雰囲気の違うエンディング

そんな重苦しい20分が終わった後に、青春を感じるアイドルグループソングのようなエンディングが流れる。途中何曲か変わっていくのだが、どれも良い曲だ。

youtu.be



裏世界ピクニック

因みに今放送中の作品の中で劇伴が好きなのは「裏世界ピクニック」だ。劇伴というか効果音というか、ホラーなところのある作品なのでとにかく裏世界中のシーンが怖く、怪しい音が続くのがたまらない。

この作品は、主人公の朴訥とした喋り方もまた質感が良い。

youtu.be