Rでお遊び:ダンまち無事終了!2期の放送を期待です。エンドカードの色コードまとめ


2015月4月より放送していた「ダンジョンに出会いを求めるのは間違っているだろうか」が遂に終了しました。例の紐で盛り上がったり、最後までクオリティーが高かったアニメだと思います。

原作はまだ続いていますし、2015/6/25にはコミック5巻も発売されAmazonのkindle有料Top100にもランキングされるなどアニメ2期を期待してしまう作品です。個人的には第6話最高でした。エンディング曲「RIGHT LIGHT RISE」元気が出ますのでitunesで聞いてみてください。

2期の放送を期待して、アニメオフィシャルサイトで提供されている各エンドカードのカラーコード出現数Top50を紹介します。

また、キャラ紹介の画像を解析したところ「例の紐」の色コードは「#4b61ba」となっています。プレゼン資料等に色コードを使用ください。あちこちで「例の紐」の色が使われるとダンまちの知名度が更に上がるかも知れません。

ブルーレイ1巻購入しました。限定版についているオリジナルサウンドトラックすごく良いです。おすすめです。2期が見たいなぁ。
image1


「からだにいいもの」ではシャーロットを応援しています。

公式サイト:http://charlotte-anime.jp/
TVアニメ「Charlotte(シャーロット)」公式サイト


シャーロットの内容をまとめています

・7話までの気になることをピックアップ
 https://www.karada-good.net/bodygood-mono/anime-manga/charlotte-6/

・オープニング「謎の図形」3つをトレース
 https://www.karada-good.net/bodygood-mono/anime-manga/charlotte-3

・オープニング「謎文字」を書き起こし!
 https://www.karada-good.net/bodygood-mono/anime-manga/charlotte-4/


出現頻度Top50のカラーコード

<カラーコードTop50>
左から順に1話から13話のエンドカード順です。色は明度順です。出現数ではありません。
danRplot

<カラーコードTop50のテーブル>
操作が可能です。いろいろ試してみてください。モバイルの方はこちらからご覧いただくと見やすいです。
別ウィンドウで開く


実行コマンドの紹介

下記コマンドを実行してください。詳細はコメントを確認してください。オフィシャルHPよりエンドカードをダウンロードして試してみてください、なお、1920 x 1080のサイズを解析しています。

・ダンまちオフィシャルHP
http://danmachi.com/index.html

#パッケージのインストール
#install.packages(c("png", "jpeg", "colorspace", "DT"))

#パッケージの読み込み
library("tcltk")
library("png")
library("jpeg")
library("progress")
library("colorspace")

#読み込みフォルダを選択
FoldPath <- paste(as.character(tkchooseDirectory(title = "読み込みフォルダを選択"), sep = "", collapse =""))

#フォルダ内のアイテムを取得
ItemList <- list.files(path = FoldPath)

#ファイル名を設定
CharaName <- paste0(formatC(1:13, width = 2, flag = "0"), "話")

###S:フォルダ内の全画像からカラーコードを取得#####
#データ格納用の変数を初期化
MasterRGBCol <- NULL

#アイテム数の取得
ItemVol <- length(ItemList)

#プログレスバーの設定
pb <- progress_bar$new(format = "  処理状況 [:bar] :percent",
                       total = ItemVol, clear = FALSE, width= 60)

for(i in seq(ItemVol)){
  #プログレスバーの表示
  pb$tick()
  
  #Imageファイルの読み込み
  selectAImage <- paste(FoldPath, "/", ItemList[i],
                        sep = "", collapse = "")
  
  #jpeg/png/gifファイルの判断
  if (unlist(strsplit(ItemList[i], "\\."))[2] == "png"){
    
      Image <- readPNG(selectAImage)
      LABCol <- as(RGB(as.vector(Image[,, 1]), as.vector(Image[,, 2]), as.vector(Image[,, 3])), "LAB")
      RGBCol <- cbind(LABCol@coords[,1:3], hex(LABCol))
    
  }else{
    
      Image <- readJPEG(selectAImage, native = FALSE)
      LABCol <- as(RGB(as.vector(Image[,, 1]), as.vector(Image[,, 2]), as.vector(Image[,, 3])), "LAB")
      RGBCol <- cbind(LABCol@coords[,1:3], hex(LABCol))
    
  }

  #マスターデータのデータフレーム化
  RGBCol <- as.data.frame(RGBCol)
  
  #特定の色を削除。白色を削除
  RGBCol <- subset(RGBCol, RGBCol[, 4] != "#FFFFFF")
  
  #カラーコードを文字列化
  RGBCol[, 4] <- as.character(RGBCol[, 4])
  
  #画像で使用されているカラーコードを集計
  CountColor <- as.data.frame(table(RGBCol[, 4]))
  
  #集計データをカラーコードで並び替え
  CountColor <- CountColor[order(CountColor[, 1], decreasing = TRUE), ]
  
  #マスターデータの重複を削除
  RGBCol <- RGBCol[!duplicated(RGBCol[, 4]),]
  
  #マスターデータをカラーコードで並び替え
  RGBCol <- RGBCol[order(RGBCol[, 4], decreasing = TRUE),]

  #結合
  RGBCol <- cbind(ItemList[i], CharaName[i], RGBCol, CountColor[, 2])
  
  #プロットデータの作成
  MasterRGBCol <- rbind(MasterRGBCol, RGBCol)
  
  #必要のないImage,LABCol,RGBColの削除
  rm(Image,LABCol,RGBCol)
    
}

#行名の付与
colnames(MasterRGBCol) <- c("NO", "話数", "明度:l", "補色次元:a", "補色次元:b", "カラーコード", "出現数")

#ファイルの保存、解析画像数によってはファイルサイズが非常に大きい場合があります
#また、エクセルなどで読み込めないことがあるのでコメントアウトしています。
#setwd(paste(as.character(tkchooseDirectory(title = "保存場所を選択"), sep = "", collapse ="")))
#write.csv(MasterRGBCol, "分析結果.csv", fileEncoding = "CP932", eol = "\r\n")
###E:フォルダ内の全画像からカラーコードを取得#####


###データのプロット#####
#軸の設定
xRange <- seq(0, 1, by = 1/ItemVol)

#グラフ幅の設定
xWidth <- seq(1/ItemVol, 1, by = 1/ItemVol)

#プロット領域の作成
par(bg = "#2E2E2E")
#plot(0:max(c(xRange, xWidth)), 0:max(c(xRange, xWidth)), type = "n", axes = FALSE, xlab = "", ylab = "")
plot(0:1, 0:1, type = "n", axes = FALSE, xlab = "", ylab = "")
box()

#プログレスバーの設定
pb <- progress_bar$new(format = "  処理状況 [:bar] :percent",
                       total = length(ItemVol), clear = FALSE, width= 60)

#テーブル作成用のデータ格納用変数
TableDrowData <- NULL

for(k in seq(ItemVol)){
  #プログレスバーの表示
  pb$tick()
  
  #データの抽出
  Plot <- subset(MasterRGBCol, MasterRGBCol[, 1] == ItemList[k])

  #出現数で並び替えてTOP50を抽出
  Plot <- Plot[order(as.vector(Plot[, 7]), decreasing = TRUE),]
  Plot <- head(Plot, n = 50)
  
  #プロット内容の指定
  #明度で並び替え
  #行番号を指定することで並び替えの基準を変更できます
  #2行目"明度:l", 3行目"補色次元:a", 4行目"補色次元:b", 5行目"カラーコード"
  Plot <- Plot[order(as.vector(Plot[, 3]), decreasing = TRUE),]
  
  #テーブル作成用データ
  TableDrowData <- rbind(TableDrowData, Plot[, c(1, 2, 6, 7)])
  
  #データのプロット
  rasterImage(as.raster(Plot[, 6]),
              xRange[k], 0, xWidth[k], 1, interpolate = FALSE)
  
}

#色付きJavaテーブルの作成
#パッケージの読み込み
library("DT")

#HTMLファイルの保存場所を指定
setwd(paste(as.character(tkchooseDirectory(title = "保存場所を選択"), sep = "", collapse ="")))

#データの整形
TableDrowData <- TableDrowData[, -1]

#テーブルの作成
DataTable <- datatable(TableDrowData, rownames = FALSE, options = list(pageLength = 10, lengthMenu = c(5, 20, 40, 120)),
                       caption = 'ダンまち カラーパレット', escape = FALSE)

#キャラ名のセルの色をパイプ"%>%"でつなげてformatStyleで設定します
DataTable <- DataTable %>% formatStyle('カラーコード',
                                       backgroundColor = styleEqual(TableDrowData[, 2], TableDrowData[, 2]))
#作成テーブルをhtmlで出力
saveWidget(DataTable, 'DataTable.html')

少しでも、あなたのアニメ生活が充実しますように!!

スポンサードリンク

おすすめコンテンツ


スポンサードリンク