読者です 読者をやめる 読者になる 読者になる

メモ帳DPA

ぐぐってあまり引っかからないような何かがあったら書いたりする

ねんどろいど情報処理部の設計と構築 (ゆゆ式 Advent Calendar 2016)

ゲーム・漫画・アニメ 制作物

f:id:de0:20160605232200j:plain



ゆゆ式 Advent Calendar 2016 四日目。


今日のテーマ:フィギュア

ゆゆ式のフィギュアが一向に出ないので世界の損失が発生している。
知っている限りでは、グラフィグガシャポンを除くと、立体物は今のところ以下の一種類しかない。

なぜか制服ではないという点はとりあえず脇に置いておくとしても、3人揃わないのは片手落ちも良いところだと思う。
水着にしてもこんな感じのをもう二人分何とかならなかったんだろうか。
f:id:de0:20161127154903j:plain:w300

無ければ作るほかないので作ることにした。

方法

しかし、私にはせいぜいガンプラ素組みするくらいの技術しかなくこの方面に完全に素人であるため、作るにあたって超えないといけないハードルは想像以上に多そうだった。自力で全部作るのは到底一朝一夕には出来そうにもない。

手間を掛けて邪神を生み出しても仕方ないし、せっかく作るならある程度ちゃんとした物が欲しいので、要求レベルが低くかつそこそこの結果が見込めるような、いー感じシステムを探した。
最終的に、ねんどろいどシリーズの既存パーツの組み合わせで作る方法をとることにした。

といった具合に、この方式は都合のよい条件がいろいろと揃っている。

f:id:de0:20161127154902j:plain:w300
ちょうどこういうコマもあることだし。

技術の不足は手段でカバーしないといけない。手を入れれば入れるほどクオリティが下がることは技術的に確実なので、修正箇所と工数は最小限に抑え、難しい工程はなるべく回避する方針とした。

設計

既存の製品全種類を片っ端から探した結果、幸いにもそこそこ近い材料が全員分揃っていた。パーツの使い回しなども考慮し以下を選んだ。
数カ所の差分修正と塗装だけで作れる。

素材 削除 追加
制服 橘万里花 タイを一本に -
橘万里花 髪飾り
おさげ先端
髪のハネ(兼:髪飾りの穴埋め)
おさげ断面の補完
山田葵 前髪中央付近カット -
ゆずこ 美樹さやか 前髪の出っ張り アホ毛

f:id:de0:20160507091330j:plain

体はネクタイ部分をどうにか処理出来る腕があるなら他の制服のもので済みそうな気がする。
また、万里花はプレミアが付いていて定価より高いので、技術的に回避できるなら他の素体を使ったほうがよさそう。逆に山田とさやかは投げ売りされてるので1000円台で手に入る。



ちなみに、一通り作り終わった後で知ったんだけど、ねんどろいどとは別にキューポッシュというものがあったらしい。等身が若干高く可動域も広くなるのが違いで、頭部にはねんどろいどのパーツも使えるとのこと。
第六駆逐隊のパーツがぴったり使えそうなので、万里花でなくこちらを使ったほうが良かったかもしれない。

道具

色々道具を用意したが大体は結果的にあんまり役に立たなかった。結局必要だったのはこんなもんだった。

  • ニッパー
  • ヤスリ
  • カッター
  • 接着剤
  • シール印刷用紙
  • エポパテ
  • ガンダムマーカー(白、黒、青、黄)
  • スプレー(マスタードイエロー、キャラクターフレッシュ2)

下四つだけ追加で買った。

成形

特徴だけ抑えて大規模な変更は回避する。
不要箇所をカットし、追加箇所にエポパテを盛った。そのままではパテと素材の継ぎ目の線が目立つので、しばらく放置して固ってからヤスリをかけて処理した。
f:id:de0:20160506091354j:plain:w300
ゆずこのアホ毛は最初パテで自力で作ったが、完成度がいまいちだったので既存のパーツを移植することにした。三次元的に全方向から破綻のないアホ毛の造形って結構難しい。

移植元は末永みらいを使った。それっぽい形状であることに加えて付属の顔パーツの汎用性も高く、縁用にぴったりのパーツも含んでいるので都合が良かった。これも中古屋で安く買えた。


体の塗装

筆、皿、塗料、スプーンが揃った筆塗りスターターセット的なものを買ったんだけど、上手く使いこなせなかったので最終的には使うのを止めた。
結局、腕に合わせてレベルを下げ、ペン(ガンダムマーカー)で塗ることにした。

以下を塗り替えた。

変更元 変更後 追加
襟内側 -
外周に白線
中央に白線
スカート -
ネクタイ結び目 -
靴下(ゆずこ以外) -
腿(縁のみ) -

襟と袖には白線を入れる必要があるが、1mm程度の猶予しかないので塗るのはかなり難易度が高かった。シール印刷用の用紙を使い、何も印刷せずに細く切って貼ることで回避した。

ちなみに、山田の腕を使うことで夏服っぽくできる。(塗装不要)
f:id:de0:20160605230841j:plain:w300

髪の塗装

縁は切断面だけ塗装した。全体をもう少し明るめにしても良さそうな気もしたが、許容範囲の配色でもあったので余計な手を入れるのは止めておいた。唯とゆずこはベースが茶色と青色なのですべて塗り直す必要があった。

まず筆で塗ってみたが出来がイマイチだった。こういうのを綺麗に作るには、どうやらエアブラシをつかってグラデーションをかけるのが定石らしい。しかし、使いこなすのに慣れが要る(らしい)上に場所的にも機材的にも導入のハードルが高そうだったので、スプレー塗りで妥協した。

スプレーは以下の色を使った。パテの色とベースの色で差分があるので、まず一旦全体を白く塗ってから目的の色を塗った。

タミヤ マスタードイエロー
-
ゆずこ Mrカラー キャラクターフレッシュ2

スプレーに切り替えたことで筆よりは大分ましにはなった。ただ、色がのっぺりしていたり表面が若干凸凹になってしまっていたりと、完璧な出来にはまだだいぶ遠く、改善の余地がある。素直にエアブラシ買ったほうがよさそう。
とはいえ、近寄ってちゃんと見ないとあんまり分からないレベルにはなっているので、これで妥協する。


顔の選択

以上でとりあえず完成。
顔パーツについては目を開けてないパーツなら何でも使えるし、万里花を唯に、さやかを縁に、山田か万里花をゆずこに入れ替えればそれっぽい感じになる。

...と、当初はそれで終わらせるつもりだったのだけれど、せっかくなのでより合うパーツをやっぱり探すことにした。

目を開けているパーツを使う場合は色と形を考慮しないとならない。しかし自力で描けるような腕もない。
仕方ないのでこれも既存のラインナップを片っ端から探した。結果そこそこ近いものにたどり着いた。
f:id:de0:20160619202300j:plain

顔パーツ
ヒナギク
みゆき
ゆずこ まどか

古いモデルでは顔パーツの形状が若干違うようで、みゆきは一部をニッパーでカットしてやらないとはまってくれなかった。

これも全部かなり安く手に入った。人気や出荷量で変わってくるんだろうけど、ねんどろいどの値段は高いか安いかの両極端な気がする。結局、定価以上払ったパーツは万里花くらいだった。
ヤフオクで数百円でパーツ単品売りされていることもあるので、見つかればそちらで入手したほうが良さそう。まどかフェイスは300円くらいで単品で買えた。


写真置き場

f:id:de0:20160511205016j:plain
f:id:de0:20160509230738j:plain
f:id:de0:20161101184954j:plain
f:id:de0:20161101191329j:plain
f:id:de0:20160509213748j:plain
f:id:de0:20160509215756j:plain
f:id:de0:20160509200739j:plain

顔は「へへ」以外は既存のものを使用。
小物は基本的に張りぼてだが、破魔矢、弾頭、バックパックは3Dプリンタで作った。

今日のまとめ

ねんどろいどのフォーマットは流石なかなか優秀で、そこそこの品質のものを割と簡単な作業で作る事ができた。存在するパーツのバリエーションも膨大なので、体パーツさえある程度流用できるデザインのキャラであれば、同様に大体何でも作れそうな気がする。

跳べなそうなハードルはあらかじめ全部蹴って倒した甲斐もあって、めんどうくさいという魔物の出現は塗装の時くらいしかなかった。最初に構成が決まればもうほぼ完成したようなものだったし、一から全部自力で三人分つくる手間を考えれば0みたいな労力だと思う。

これを部屋に置くだけで幸せ成分が得られ、運気は好転し年収が増え風邪は治り心が豊かになるのでおすすめです。


参考

【艦これ】ねんぷち翔鶴・メイキングその1 - かたまり(キャッシュ)
元ページ
※作っている時は見れていたが今は非公開になってしまった模様


髪:さやか、体:小咲 っぽい



全部自作?

関連



使った材料

道具

ガンダムマーカー AMS105 ベーシックセット

ガンダムマーカー AMS105 ベーシックセット

シール印刷用紙: 100均

PC TV with nasneとニコニコ実況の時刻合わせを半自動化する

webサービス ガジェット 制作物

背景

TV録画にnasneを使っている。
PCからはPC TV with nasneで視聴しているが、torneにあるような実況連動機能がない。

素直にtorneを使えば済むことではあるのだけれど、コントローラに持ち替え、映像出力を切り替え、PSとtorneの起動を待ち...という動作が都度発生するのも面倒に思える。
Androidエミュレータtorne mobileを動かすことも考えたが、どれもnasneの認識がうまくいかなかった。

課題

現実的な方法としては、ニコニコ実況アプリ起動して再生画面に重ねる方法がある。
しかし、過去ログを参照する場合は、以下のようなフォームで6箇所も手動で正しい値を都度合わせる必要があり、時刻合わせがかなり面倒だった。これを常用しようとは思えない。
f:id:de0:20161025202714j:plain
過去ログはおまけ機能であって基本はリアルタイムで使えということなのかもしれないけど、番組表から選択するとか時刻ピッカー的な物付けるとかもうちょっと何とかならなかったんだろうか。

ニコニコ実況の仕様

まずフォームを調べてみた。
過去ログ呼び出しは上記のフォームから時刻指定してpostすると、以下のURLスキームが返され、それをローカルで叩くことで実況アプリが起動するようだった。わかりやすい。

nicojk:jk【チャンネルID】&start_time=【指定時刻のunix時間】&end_time=【指定時刻+1h後のunix時間】

例
nicojk:jk7&start_time=1477326840&end_time=1477328640

nasneapi

nasneにはapiが用意されており各種情報が拾えるようになっているらしい。仕様自体は非公開ではあるものの、自力で調べた人達のおかげで主要なところは判明してるようだ。

参考
github.com


再生中情報

"/status/dtcpipClientListGet" を叩いたら再生中の動画IDが拾えた。なお何も再生していない場合は何も帰ってこない。

$ curl -s "http://192.168.1.2:64210/status/dtcpipClientListGet" | jq -M '.'
{
  "errorcode": 0,
  "number": 1,
  "client": [
    {
      "id": 871,
      "macAddr": "BC:5F:F4:xx:xx:xx",
      "ipAddr": "192.168.1.1",
      "name": "PC TV Plus",
      "purpose": 2,
      "content": {
        "id": "14772275870000000213" ←再生中の動画ID
      },
      "encryptType": 1
    }
  ]
}

参考
pocketstudio.jp



動画情報

"/recorded/titleListGet"から録画済みのデータが参照できた。上記で取得したIDで検索すると再生中の各種動画情報が得られた。

$ curl -s 'http://192.168.1.2:64220/recorded/titleListGet?searchCriteria=0&filter=0&startingIndex=0&requestedCount=0&sortCriteria=0&withDescriptionLong=0&withUserData=0' \
 | jq -M '.item[] | select(.id == "14772275870000000213" )'
{
  "id": "14772275870000000213",
  "title": "SHOW BY ROCK!!#",
  "description": "#4「ドキィッ!?がーるずだらけのふわっふわ水泳大会!ですぞ?ポ(以下略)」",
  "startDateTime": "2016-10-23T21:59:47+09:00",  ←使う箇所1
  "duration": 1696,
  "conditionId": "w7",
  "quality": 101,
  "channelName": "TOKYO MX1", ←使う箇所2
  "channelNumber": 90910,
  "broadcastingType": 2,
  "serviceId": 23608,
  "eventId": 51728,
  "genre": [
    {
      "id": 28927,
      "type": 2
    }
  ],
  "audioInfo": [
    {
      "componentTag": 16,
      "componentType": 3
    }
  ],
  "captionInfo": 0,
  "componentType": 179,
  "protectFlag": 0,
  "newFlag": 0,
  "playCount": 5,
  "creatorId": 133072,
  "storageId": 0,
  "recordingFlag": 0,
  "copyControl": 1,
  "copyCount": 10,
  "parentalRating": 0,
  "resumePosition": 278212,
  "containerSize": {
    "main": 1479377904,
    "mobile": 387858480,
    "thumb": 19703308
  },
  "bitrateMobile": 0
}

参考
tateren.hateblo.jp


完成

channelNameとstartDateTimeが動画情報に有るので、抽出してこれを元に整形すれば呼び出し用のURLスキームが作れる。

#!/bin/bash
NASNEADDR=192.168.1.2


#再生中の動画ID取得
CONTENTID=\
`curl -s "http://$NASNEADDR:64210/status/dtcpipClientListGet" \
| jq '.client[0].content.id'`

if [[ "$CONTENTID" == "null" ]];then
        exit 1
fi


#動画情報取得
CONTENTINFO=\
`curl -s "http://$NASNEADDR:64220/recorded/titleListGet?searchCriteria=0&filter=0&startingIndex=0&requestedCount=0&sortCriteria=0&withDescriptionLong=0&withUserData=0" \
| jq -M ".item[] | select(.id == $CONTENTID )" `

CHANNELNAME=`echo $CONTENTINFO | jq -r -M '.channelName'`

# IDに変換 ( ref: http://jk.nicovideo.jp/rankings )
case "$CHANNELNAME" in
        *NHK* ) CHANNELID=1;;
        *Eテレ* ) CHANNELID=2;;
        *日テレ* ) CHANNELID=4;;
        *ビ朝日* ) CHANNELID=5;;
        *TBS* ) CHANNELID=6;;
        *ビ東京* ) CHANNELID=7;;
        *フジテ* ) CHANNELID=8;;
        *MX* )   CHANNELID=9;;
        *テレ玉* ) CHANNELID=10;;
        *TVK* ) CHANNELID=11;;
        *チバテ* ) CHANNELID=12;;
esac


# 時刻変換
DATETIME=`echo $CONTENTINFO | jq -r -M '.startDateTime'`

STARTTIME=`date -d "$DATETIME" +%s`
ENDTIME=`date -d "$DATETIME 1 hour" +%s`


# URLスキーム生成
echo "nicojk:jk${CHANNELID}&start_time=${STARTTIME}&end_time=${ENDTIME}"


Windowsから叩けるようにしたら完成。
バッククォートが使えないことはbatの最低ポイントの一つであると思う。

@echo off

cd %~dp0

set ADDR=192.168.xx.yy
set KEY=ubuntu_privatekey.ppk
set USR=root

for /f %%a in ('ssh %USR%@%ADDR% -i %KEY% nasne2nico.sh') do start %%a


PC TV~ で動画を再生しbatを実行すると、時刻合わせされたニコニコ実況アプリが起動する。

制約

  • batは再生開始後に手動で叩く必要がある (ここ自動化するのは結構手間かかりそうなので妥協する)
  • 開始時刻しか拾えないのでリジュームは使えない
  • 停止や早送り巻き戻しもずれるので使えない

おわり

公式に機能をつけてくれ頼む

上下昇降デスクをホットキーから操作する

部屋改善 ガジェット

前回の続き。

経緯

オカムラの電動デスクを使っており、それと互換性のあるLinakのUSBケーブルを入手してPCと連携した。
そこまでは良かったんだけれど、付属のツールが自分の用途と微妙に合っておらず、キーボード操作できない点と、必要もないアラートを定期的にポップアップしてくるのが不満だった。

対処

Linux用のツールが開発されていたので使ってみたところ、簡単に上手くいった。
github.com

以下に方法を書く。

導入

メインがWin機なので当然そのままは使えない。
そのためだけのraspiを買ったりはしたくなかったので、Win上に最小構成の制御用のUbuntu仮想マシンを立てた。
ハイパーバイザのUSBデバイス共有で「USB Control Link」を共有すると、ゲスト上で制御用USBケーブルが認識できた。

ツールの導入は、ソースと依存パッケージを単純に引っ張ってくるだけで使えた。

apt-get install g++ libusb-1.0-0-dev
git clone https://github.com/ranma1988/usb2lin06-HID-in-linux-for-LINAK-Desk-Control-Cable.git
cd usb2lin06-HID-in-linux-for-LINAK-Desk-Control-Cable
make

相対位置調整できるようにする

高さの数値を引数に渡すと、その高さまで調整してくれる。

./example-moveTo 6000

これだけでかなり便利ではあるのだけれど、絶対位置での指定しかできないので、相対位置の調整も出来るようにした。

adjust.sh

#!/bin/sh

cd `dirname $0`
height=`./example-getStatus 1 | sed -e "s/^.*height: *//g" | sed -e "s/ = .*//g"`
./example-moveTo `expr $height + $1`

Winから叩けるようにする

操作のたびいちいちゲストに入ってられないので、batを作ってWinから一発で叩けるようにした。

move.bat

@echo off

cd %~dp0

set ADDR=192.168.254.128
set KEY=ubuntu_privatekey.ppk
set USR=root

ssh %USR%@%ADDR% -i %KEY% /root/usb2lin06-HID-in-linux-for-LINAK-Desk-Control-Cable/example-moveTo %1

adjust.bat

@echo off

cd %~dp0

set ADDR=192.168.254.128
set KEY=ubuntu_privatekey.ppk
set USR=root

ssh %USR%@%ADDR% -i %KEY% /root/usb2lin06-HID-in-linux-for-LINAK-Desk-Control-Cable/adjust.sh %1

ホットキー化する

キーボードから一発で呼べるように、Autohotkeyに組み込んだら完成。
それぞれの値は適当に調整して決め打ちしている。

desksit(){
	run,D:\datas\program\swift\move.bat 0
}
deskstand(){
	run,D:\datas\program\swift\move.bat 4000
}
deskmax(){
	run,D:\datas\program\swift\move.bat 10000
}

deskup(){
	run,D:\datas\program\swift\adjust.bat 1000
}
deskdown(){
	run,D:\datas\program\swift\adjust.bat -1000
}


>+Delete::deskmax()
>+PGUP::deskstand()
>+PGDN::desksit()

>^PGUP::deskup()
>^PGDN::deskdown()

おわり

物理ボタンでの操作や付属のソフトウェアでの操作時は、指定した高さになるまでボタンを押し続ける必要があった。
移動し切るまで押したまま待つ必要も無くなり、一回呼べば勝手に指定位置まで動かしてくれるので、ちょっと楽になった。

これでデスクもベッドなどと同様に、ホットキーで一発で操作できるようになったので満足した。


関連

上下昇降デスクをPCと連携する (オカムラ swift + USB2LIN06 + LINAK Desk Control)

部屋改善 ガジェット

デスクに岡村製作所の電動昇降デスクのswiftを使っている。

周りの家電の操作をなるべくPCに集約するようにしており、過去に介護ベッドなんかはUSBリレーに接続してPCから制御できるようにしたりもした。
swiftも同様の手段をとりたい所だったんだけれど、コントローラの破壊が必要そうなのと、予備の入手が出来ないので保留としていた。

博報堂オカムラが制御用のアプリのリリースを2016春に予定している、というリリースも昨年末にあったが、一向に出る気配がない。
www.i-studio.co.jp

待ってても仕方なさそうだったので、どうにかする手段を探した。

swiftの構成

まず部品を調べた。swiftは以下のパーツで構成されていた。

  • コントローラ

  • 操作パネル

ほぼ全部LINAK社のパーツであり、オカムラで作っているのはどうも天板だけのように見える。


制御用オプション

LINAK社のデスク用製品は、Desklineというシリーズとして各種パーツが組み替えられる仕様になっているらしい。
コントローラを制御する手段として、ボタン式の操作パネルとは別に、USB接続やBluetooth接続にも対応した製品が存在していた。



購入

LINAKのパーツ群は基本的に個人向けに単品で売られているものではなさそうだった。
単品売りしておりかつ日本への発送の出来る店はないか探しまわった結果、一件だけ見つかった。
オーストラリアの健康器具ショップらしい。


商品68ドル+送料27ドルの計$95で買えた。
オーストラリアからの発送で、注文から6日で届いた。結構速いと思う。

商品

f:id:de0:20160806142303j:plain
ビニール袋詰めだけされた状態で小さめの箱に詰まって単品で届いた。マニュアル類も入ってない。

物理コントローラとの共存

コントロールボックスには操作パネル接続ポートが2ポート付いているので、既存の操作パネルを殺さずに両方接続できた。
デスクの高さ情報はてっきり各操作パネル自体が保持しているんだろうと予想していたのだけれど、コントロールボックスがちゃんと情報を持っているようだ。物理ボタンで操作した際にちゃんとUSB側の高さ情報も連動して変わってくれた。(もちろん逆の場合も連動する)

LINAK Desk Control Software

制御用のソフトウェアが公式サイトからダウンロードできる。
デスクの上げ下げとプリセット3つの操作が出来る。日本語表示に対応していてちょっと驚いた。
f:id:de0:20160806190251j:plain

おまけ機能として(もしかしてこっちがメインなのかもしれないけど)、高さ変更をおすすめするアラートを出してくれる機能が付いている。
時間もしくは消費カロリーを設定すると、それに応じて適当なタイミングでアラートダイアログが表示される。
f:id:de0:20160806190248j:plain
履歴も取ってるらしい。
f:id:de0:20160806190247j:plain

ただ、アラートは別に必要ないので正直邪魔だと思っている。

制御ソフトの制御

学習リモコンやベッド制御の操作は、Autohotkeyを使用してキーボードショートカットにしていた。
これも同じ要領で簡単に出来るだろうと思っていたのだけれど、ウィンドウの作りが特殊なようで、controlclickで操作ボタンに直接メッセージをうまいこと送ることが出来なかった。

仕方ないので、ウィンドウをアクティブにして、ボタンの座標でマウスをクリックさせるという雑すぎる力技でとりあえず諦めた。

;デスク操作共通
deskmove(x,y){
 	winactivate, LINAK Desk Control
	Click, L, D, %x%, %y%
	Sleep 7000
	Click, L, U
}
;座位プリセット
desksit(){
	deskmove(80,370)
}
;立位プリセット
deskstand(){
	deskmove(190,370)
}
;プリセット3(最大高設定)
deskmax(){
	deskmove(300,370)
}

他の人達によるその他の手段について

操作パネルへの接続はよくあるRJ45の三芯で、UP/DOWN/GNDの単純なものらしいので自力で作れるらしい。ただ、だとすると高さ情報はどうやってやり取りしてるのか謎がある。
blog.nortal.com

Linux用の制御ソフトを自作した人も見つかった。
github.com


おわり

そもそも机をPCからいじれるようにして何が嬉しいのかかというと、ベッドからの利用時に机まで手をのばす必要がなくなることにある。
机の前に居る時は物理ボタン押せば済むのだけど、ベッド側から利用する場合、机の高さを調整するのにボタンまで手をのばす必要があった。



PCから制御出来るようになったので、上のような状態を切り替える際に体を起こす必要がなくなった。

ただ、制御ソフトの制御のやり方にかなりの妥協があるので、何かしら改善策が思いついたらどうにかしたい。



※追記
どうにかした。


関連



3Dプリンタでフィギュア台座を省スペースに圧縮する

部屋改善 ガジェット

まとめ

やたらかさばるフィギュア台は3Dプリンタで簡単に代替品を自作できるので置き換えるとよい

背景

「フィギュアは一体買うと自動的に増える」という説は本当だった。部屋にはあまり物を増やしたくなかったはずだったのに、一体目買ってからあっという間に壁が埋まった。

余計な家具を部屋に増やすことまではしたくなかったので、壁掛けの棚を使っている。ただ、各棚のスペースがあまり広くないため、配置には結構な制約があった。特に台座が本体以上にやたら面積を食うせいで、棚からはみ出したりそもそも置けなかったりしていた。

3Dプリンタ買った

CADの経験もないし大した目的もなかったんだけれど、Amazonアウトレットで3万だったので、多少高めのおもちゃ感覚で無計画にポチってしまった。
基本的な使い方は半日もあればすぐ覚えられたし、実用的な小物も作れたりして割と楽しく遊べている。

(そういえば一時期やたら持ち上げられてたこともあったけど最近めっきり聞かなくなったね3Dプリンタの話)

フィギュア台座の多くは単に板の上に数本の棒が立っているだけの物体だった。自分のような素人でも十分作れる単純な作りだったので試しに自作してみたところ、結果的に割と上手くいった。

誰か他の人のやり方を真似て作ろうとしたのだけど、3Dプリンタの例は見つからなかったので記しておくことにします。

結果

f:id:de0:20160430152920j:plain
はみ出さずちゃんと綺麗に収まるようになった。やったね。


環境

プリンタ : ダヴィンチJr1.0
3Dプリンター ダヴィンチ Jr. 1.0

CAD : Fusion360

以下の流れで作れた。ほとんど手間はかからずかなり簡単に出来る。

1. 軸の位置を決める

実物の寸法を定規で測り、各ポイント間の距離と軸の直径をスケッチに起こす。
f:id:de0:20160429231902j:plain
角度は測らなくても距離関係だけ決めれば上手いこと調整してくれるので、かなり楽に書けた。

2. サンプルを作る

安物だからか3Dプリンタの精度はあまり高くない。実際の寸法は結構平気で数字とずれる。測り方も雑にやっているので、1発ではまず成功しない。
最初は一気に完成させようとしてフィラメントと時間を結構無駄にしてしまったが無謀だった。

f:id:de0:20160429232019j:plain
軸を伸ばし薄く土台をつけて一回プリントする。10分くらいで完成する。

3. 微調整する

サンプルを本体に実際に当てがってみると、位置が微妙にずれてるとか軸のサイズが合わないとかいった問題が見えてくるので、スケッチの寸法を微調整する。
なお軸は多少ズレてても成形後にヤスリで削って調整するって手段が残されているので、迷ったら細すぎるよりは太すぎるほうがよい。

f:id:de0:20160430151543j:plain
重心を適当に考慮して台座をくっつける。
厚さ2.5mmもあればかなりかっちりした台座になる。安定しているものであれば1mmで十分だった。
直径は物にもよるが10cmもあれば大きすぎるくらいだと思う。

4. 印刷する

印刷して本体にくっつけたら完成。1時間~2時間程度で出てくる。
今回は特に必要なかったのでやらなかったけど、いくらでも作れるので、必要に応じてテープ貼ったり穴開けたりネジ止めしたりのような雑な固定法も遠慮なくできる。

完成例

f:id:de0:20160430191337j:plainf:id:de0:20160430191757j:plain
このようにかなりコンパクトになる。左にあるのが元の台座。
2体で対になるデザインなのに台座がでかすぎるせいであまり寄せられないという謎な作りだったんだけど、そういった問題もついでに解決する。
(グリフォン 香霖堂魔理沙/霊夢)



f:id:de0:20160430191423j:plainf:id:de0:20160430190822j:plain
逆に軸を台座側に挿すタイプの台座でもいける。
(GFF ディープストライカー)


f:id:de0:20160430191402j:plainf:id:de0:20160425201442j:plain
特殊形状な軸でもだいたい何とかなる。
ちなみにこれは一番台座が大きかったのでかなり効果が高かった。直径21cm→10cm角になった。
(グッスマ タマ)


課題

単に平面に棒が立ってるのではなく足裏の形状に合わせた曲面の上に本体を乗せるタイプの台座がある。
横から写真を撮って3Dモデルに起こす方法を試してみたがあまり上手くいかなかった。

f:id:de0:20160430190908j:plain
(アルター クララクラン)

大雑把にだいたいの形が合っていれば良いだろうと考えていたが、軸が途中で折れてしまった。ぴったりハマらないと軸に結構負荷がかかるっぽい。(物にもよるんだろうけど)
また、軸が細めなことや、この本体が大量のフリルのおかげでやたら重量があることなんかも関係してそうな気がする。
(ちなみに、穴の中に折れて残ってしまった軸の残骸は、熱すればまた柔らかくなるのでハンダごて突っ込めば取り除けた)

理屈上出来ないってことはないはずので、単に私の作図能力の問題だと思う。そこまで巨大な台座ではなかったのでとりあえずそのまま妥協しているが、そのうちリトライしたい。

おわり

フィギュアの置き場所の問題は解決したが3Dプリンタの置き場所がないという問題が新たに出てきたので困った。

IIDX/SDVXのスコアデータcsv提供が始まったので覗いてみた(ついでに超簡易ビューア作った)

ゲーム・漫画・アニメ 制作物

スコアデータのCSV提供が始まった

コナミが「e-AMUSEMENT プレミアムコース」なるサービスを始めるようだ。
その中のサービスの一つとして、音ゲーのスコアリザルトをcsv形式で提供する機能が付いていた。
p.eagate.573.jp

音ゲー界隈はなぜか他のゲームジャンルに比べて異常に自作ツール類が豊富に作られており、たとえばIIDX用だけでもざっと思いつくだけで2桁はある。主要な音ゲーはほぼ何かしら作られていると思ってよい。
やたら作られる理由はよくわからないけれど、ユーザが意欲的なのか公式の機能が不十分であるのか、多分そのあたりな気がする。


de0.hatenablog.com
自分も前に作ったことがあるが、たしか公式の機能がショボすぎるので仕方ないから作るかという動機だったと思う。


管理系のツールは大抵収集用にbookmarkletかアドオンが用意されており、公式サイトからページを1枚一枚開いてはスクレイピングしていく形式が主流だった。
サーバにパスワード預けるタイプや、サーバから自動収集するタイプのツールも過去にあったけれど、コナミから警告を受けて消滅したと記憶している。

これから公式にデータが提供されることでそんな七面倒臭い手順が不要になるので、なかなか画期的な試みだと思う。
(ただ、公式に機能拡張していくやる気は対して無いのであとは勝手に作れというメッセージにも読める)

ビューア作った

内容の解読ついでに、せっかくなので自分用にささっと軽く作ってみた。
csv読んで個人的に必要な集計を出するだけのかなり簡易的なものだけれど一応置いておく。
(何かプログラム書いたわけでもなく単なるexcelシートを作っただけ)

dropboxからシートダウンロードすれば多分使えます。

SDVX用

f:id:de0:20160420215240j:plain
www.dropbox.com


データ(SDVX)

csvに含まれるデータは以下だった。

  • 楽曲名
  • 難易度
  • 楽曲レベル
  • リアランク
  • スコアグレード
  • ハイスコア
  • プレー回数
  • クリア回数
  • ULTIMATE CHAIN
  • PERFECT

バージョン、作曲者、譜面作者、トータルチェインあたりは入っていなかったが、必要な情報としては十分そうに見える。
未解禁の曲のデータは含まれていなかった。

データ(IIDX)

  • バージョン
  • タイトル
  • ジャンル
  • アーティスト
  • プレー回数
  • NORMAL 難易度
  • NORMAL EXスコア
  • NORMAL PGreat
  • NORMAL Great
  • NORMAL ミスカウント
  • NORMAL クリアタイプ
  • HYPER 難易度
  • HYPER EXスコア
  • HYPER PGreat
  • HYPER Great
  • HYPER ミスカウント
  • HYPER クリアタイプ
  • ANOTHER 難易度
  • ANOTHER EXスコア
  • ANOTHER PGreat
  • ANOTHER Great
  • ANOTHER ミスカウント
  • ANOTHER クリアタイプ
  • 最終プレー日時

曲名のカンマは全角にエスケープされていた。
過去バージョンでプレイしたが今作未プレイの曲はミスカウントが「-1」となっていた。
存在しない難易度の欄は難易度が「0」となっていた。
こちらも未解禁の曲は含まれていなかった。

課題

IIDXcsvにはトータルノート数もクリアランクも含まれていない。スコアの重みはトータルノート数で変動するので、EXスコアだけ表示されてもそれだけでは無意味な数字になってしまっている。
他のサイトからノート数情報を拾って突き合わせないとスコア管理用途では全く使いものにならないので、その辺りは今後改善して欲しいところではある。

また、現状自分のデータしか取れないので、他人のデータも拾えると比較や統計が取れて面白そうなのにと思う。(プレミアム機能なので望みは薄そう)


おわりに

もっとちゃんとしたツールはそのうちこれから誰かが作ってくれることと思う。
この調子で他機種や他社もどんどんデータ提供していく流れになると色々と面白そうなので期待したい。

伸びてるツイート104万件分を調べた

twitter

パクころというWebサービスを公開していて、250favs以上のツイートが現時点で161万収集されている。
気付いたらかなり集まっていたので、量があれば単純な集計だけでも何か見えないだろうかと思い立ったので雑に調べてみることにした。
(何で単純な集計だけかというとちゃんとした統計手法的なものを知らないからです)

条件について

集計にあたり、パクころ/@pakurares等で使用しているデータベースより、500favs以上取得しているツイートのうち104万件をサンプルとした。ちなみに161万件全部読み込むとExcelの行数の限界(1048576)を超えてるので収まるように適当な量まで絞っている。妥協。

なお、ツイート情報しか収集していないので、ユーザ情報に絡めては何も調べられていない。正直そっちの観点の方が面白そうな結果が出そうな気もするんだけど、無いものはしょうがない。

サンプルの都合上、以下の内容は全て「特定の収集条件下かつ500favs以上のツイートでは」の但し書きが付く点に注意が必要。

データ

サンプル数: 1,048,498

期間:2006/3/22~2016/2/26
データの収集開始が2014年3月からのためそれより古くなるにつれどんどん取りこぼしは大きくなる。なので、年代別的な集計は避けることにした。

RT Fav
平均 1760 2368
中央値 618 1239
標準偏差 6507 5738
最大 3337105 2130021

かなりばらつきがあるので、あんまりFavとRTは見ずに単純なツイート数をメインで見ることにした。

結果

先に結果だけ書いておくと、なんとなく見えた内容としては大体以下な感じだった。

  • 曜日は日曜が多い、しかし極端に大きな差ではない
  • ピークタイムは21時。
  • 最も人が居ないのは4時。
  • 画像なしのツイートは40%しかない。60%は画像を添付してる
  • テキストのみのツイートは31%しかない。69%はURLを含んでいる
  • クライアントは公式一強。73%を占める

曜日

f:id:de0:20160312225614j:plain
土日が大きく突出するグラフが出てくるのを予想していた。
実際のところ、日曜が多いのは合っていたがそこまで大きな差ではないようだ。一番少ない火曜に比べて11%増しくらいの差しかなかった。

時間

f:id:de0:20160312230826j:plain
f:id:de0:20160312230638j:plain
ピークは21時頃、一番少ないのは4時頃だった。
12時頃もピークだろうと予想していたが、夕方~夜に比べるとそこまで大きな山ではないようだ。
ちなみに、収集しているツイートの対象はほぼ日本語圏です。

文字数

f:id:de0:20160312231100j:plain
80文字近辺と140字ギリギリが多い。ある程度テキスト量があったほうがやっぱり伸びやすいのかもしれない。

改行の数

f:id:de0:20160312230115j:plain
f:id:de0:20160312230222j:plain

改行いっぱい入れているツイートほど伸びているんじゃないかと予想したが、あんまり影響してないようだ。
全体の60%は改行をしていないし、RT数の平均でもそんなに差はないように見える。

URLの有無

f:id:de0:20160312231502j:plain
URLを含んでいないツイートは全体の31%しかなかった。1つ含むものは61%、2つ含むものは7%だった。3つ以上はほとんどない。
URLのドメインごとに集計したら何か見えないだろうかと思ったけど短縮URLになってて手間が掛かりそうだったのでやめた。

画像有無

f:id:de0:20160312231503j:plain
69%のツイートは画像を添付している。何となく予想はしていたが予想以上に多い。
画像だと情報量が多いしクライアント上での表示面積も増えるしいろいろと有利なんだろうと思う。

URLの結果を見ても、完全にテキストのみで構築されたツイートで伸びるのは結構珍しいと思って良さそう。

Fav/RTの比率

f:id:de0:20160313102558j:plain
だいたい1:3位の比率でまとまるのではないかと予想してたけど実際はかなりバラバラだった。

これはデータとかでなくなんとなくの感覚的な話だけど、favをRTで割った値は内容の傾向に応じて結構変動してくる印象がある。F/R値が大きいものは特定の集団向けの内輪度が高くなり、小さくなるほど炎上度もしくはスパム度が高くなる傾向にある気がする。
(なので、ツイートを掘り返してRTしていく@pakuraresというbotを動かす際、この値が極端に大きいまたは小さいものは排除するようにしている)

クライアント

f:id:de0:20160312232654j:plain

クライアント名 ツイート数 割合
Twitter for iPhone 455457 43%
Twitter Web Client 214136 20%
Twitter for Android 69007 7%
web 28988 3%
Echofon 27602 3%
TweetDeck 20061 2%
Tweetbot for iΟS 17805 2%
Janetter 13642 1%
twittbot.net 9739 1%
Instagram 9712 1%
Twitter for iPad 8713 1%
HootSuite 7482 1%
Hootsuite 7482 1%
iOS 7470 1%
EngageManager 6589 1%
Tween 6430 1%
ついっぷる  6406 1%
Buffer 6234 1%
Vine - Make a Scene 5440 1%
twicca 5373 1%

(1%未満のクライアント群は省略)

サンプルに含まれているクライアントは全部で2073種類あったが、上位数種類が大半を占めていた。
プラットフォーム合算で73%は公式クライアントによるものであり、ほぼ一人勝ちに見える。

おわりに

ということで、全部盛り込むとするなら、日曜21時に画像とURLを付けて80文字か140文字のツイートをすると伸ばすのに多少に有利になるかも、ってことになるんだろうか。
でも実際伸びるには結局かなりの割合で運によるものが大きい気がするし、小細工でどうにかなるってもんでもないと思う。

全体としてそんなに新しい発見があったという感じでは無かったけど、何となく体感している内容が値として再確認できたって点での意義はあったかもしれない。(と思いたい)


おまけ - 調べてる途中で見つけたツイート

ぶっちぎりの桁違いでRT数が一番多かったもの


アカデミー賞の記念写真らしい

最初のツイート


tweetid 20

1文字で一番伸びてたもの




2文字で一番伸びてたもの


何を言うかより誰が言うかみたいなのの極限っぽいやつ