バーコードスキャナを購入

なんとなくUSBタイプのバーコードスキャナを買ってみました。

バーコードスキャナの実体は単なるUSBキーボードですので、iPad等でもLightning to USBアダプタ経由で利用可能です。

バーコードの生成は様々なソフトウェアで生成出来ますのであまり困ることはありませんが、自分は python-barcode を使用しました。

python-barcodeは様々なバーコードを生成出来ますが、ここではEANを試しています。

import barcode
from barcode.writer import ImageWriter

bc_ean = barcode.get_barcode_class("ean")
bc_ean("200123456789", writer=ImageWriter()).save("filename")

使用できるのは12文字の0-9までの数字となります。

自分で使う分には、好き勝手な番号を設定すれば良いのですが、JANコード等のルールに沿うと先頭は国コードを入れる事になっています。

日本の国コードとしては450〜459, 490〜499が割り当てられており、実際には国コードを含めて7桁か9桁の企業コードとして利用されています。

ルールに沿うと、国内において好きな数値を利用するには、先頭を20〜29までの範囲の数値にする事で、インストアマーキングとして利用可能です。

というわけで、使用できるのは12桁中10桁の範囲となります。

印刷サイズについて

バーコードは印刷サイズに制限があり、一番細い幅が0.33mmという決まりがあり、縮小したくても 0.8倍率までという決まりがあります。

手元のレーザープリンタで出力させたものを読み込んでみたところ、全体の幅が20mmを切るとかなり読み取りが怪しくなりました。

Nyan!ハルにゃん?の公開

頒布物の配置が悪かったり告知不足だった事もあり、読めなかったという声もありましたので、リリカルマジカル28で無料頒布した「Nyan!ハルにゃん?」を公開しました。

絵は同じですが、当日頒布したものからすこし文章を手直ししました。

物語は一緒ですが文体がバラバラでしたので、なるべく同じような文体に揃えました。

既にお持ちの方は、手元のものとの違いを楽しんでみたり、電子ブック変わりに保存してみたり(?)とご利用下さい。

頒布終了物のページから閲覧可能です。

イベントお疲れ様でした

リリカルマジカル28に参加された皆さん、お疲れ様でした。

今回は新刊がなかったのですが、それにも関わらずスペースに来てくれる方もいまして、嬉しいやら恥ずかしいやら…といった感じでした。

終わった後にお品書きを出してもしょうも無い気がしますが、当日のお品書きは以下の様なものでした。

今年はリリマジ以外のイベントにも参加してみました。

頑張ってみたもののイベントラッシュに自分の執筆速度がついていけませんでした。二種類のお品書きのうち右側がソードアート・オンライン関係になっているのはその名残(?)だったりします。

新刊について

新刊は用意出来なかった…というよりも間に合わなかったのですが、サークルカットで描いた、マスターとデバイスが入れ替わっちゃう話をコピー誌として作成しました。
サークルカットでは、アインハルト <-> ウラカンだったのですが、実際にはアインハルト <-> アスティオンとなりました。

アインハルトさんとティオの不思議な体験を楽しんで貰えれば嬉しいです。今回は無償配布だったのと、話を読んでみたいという方がいましたので、手直し後に公開する予定です。

差し入れありがとうございます

リリカルマジカル11から水凪工房としてイベントに参加しはじめた時、本を描いて、ましてや差し入れを頂けてしまうとは…

今回も何人かに差し入れを頂いたり、お菓子を交換しあったりしました。実は当日、朝食を食べていなかったのもあり、早速食べてしまったものもあったりします。

もの凄く嬉しいけど、太らないように気をつけないと…

今回のイベントは新刊が出すことは出来ませんでしたが、それでも楽しい時間を過ごすことが出来ました。

次回はちゃんと本をだすぞ〜!!!

イベントお疲れ様でした

スーパーヒロインタイム2019秋に参加された皆さん、お疲れ様でした。
水凪工房は、先週(みみけっと)、今週(スーパーヒロインタイム)と、連続でイベントに参加し、無事乗り切ることが出来ました。

今回もSAO枠で参加しました。SAOでGGOでフェイタルバレットという、だいぶ脇道なシリーズを扱っています。

フェイタルバレットは本編と異なる時間軸を進んでいるのが、それはそれで嬉しかったりして。(ユウキがわりと元気だったり、ユナやエイジ、アリス、ユージオ等が普通に同居している)

前回は、フェイタルバレットの登場キャラクター達に他作品の服装を着てもらう本でしたが、今回はGGOのレンちゃんだけに絞り込んだ本にしてみました。

イベント感想

自分の本はマンガでもイラスト集でもなく、レンちゃんがかわいい服を着て(あわよくば)スクショを撮るといった、謎コンセプト溢れる内容でしたが、思った以上に本を手に取ってくれる方がいました。

こんなにレンちゃん好きがいたなんて…(勘違い)

「きがえてレンちゃん 素敵なコーデ!」について

ところで今回殆どの人に「この値段設定大丈夫ですか?」と心配されました。なんとわりと大丈夫ではなかったりします(笑)

毎度ながら執筆が遅い為、コピー誌による頒布をしていたところギリギリで印刷が間に合ってしまいました。ところが既にコピー誌での頒布と値段を告知してしまった後だった為、値段はそのままにしました。

でも、レンちゃんがもっと好きになる → GGO好きが増える → 原作小説やマンガ、アニメが売れまくる → GGOの二期が放映される → フェイタルバレットの続編が発売される。となれば問題なしですね。

それにしてもおまけで描いたアリス(画像は加工前のもの)、アニメを観ている人だと誰だか判らないと思うのですけど、フェイタルバレットのアリスは軍服の様な格好をしていてかっこよかったりします。

レンちゃんが自分のホームで活躍できるゲームは、確かにフェイタルバレットだけなのですけど、思ったより遊んでいる人がいて驚き。

まぁ私はXBOX One版なんですけど…w

スケブについて

今回もスケブ依頼を頂いたのですが、どう頑張ってもデジタルでしか描けないためお断り致しました。絵を描いて欲しいという依頼がくるというのは、とても嬉しいです。

スケブは無理でもなるべくアナログ感溢れるイラストを渡せないかと考えて、今回実験的に描いてみた物。

もう少し線を細めにして、水彩かマーカーで塗ったら良い感じになる様な気がする。

ポスターについて

今回はこんなのを作ってみました。

リリマジだと新刊をタペストリーにして飾って、終了前に抽選を考えていましたが、今回はサークルスペースの看板を兼ねてサークル名やタイトル、スペース番号を入れてしまいました。

こちらはイベント終了後のアフター景品にして貰いました。

SHTに参加します

2019年09月23日開催予定の、スーパーヒロインタイム2019秋に参加します。

お品書きはこんな感じです。

新刊(オープンβ)

着替えてレンちゃん 素敵なコーデ! ¥100-

SAOAGGOの主人公、レンちゃんがGGOでおしゃれな格好やスクショ(インスタ)映えに挑戦してみたイラスト集です。

おしゃれしたのに〜!

どのあたりがオープンβかというと、印刷が思った出力が出来ていない部分です。内容自体は今後出力しなおすバージョンと同じです。

GGOではありますが、ゲーム版のフェイタルバレットが元ネタです。

既刊

シノンとシリカのクリアファイルセット ¥500-

ALOのシノンとシリカが描かれたクリアファイルです。
みみけっとで頒布したものと同じです。

シリカのクリーナークロス ¥300-

SAOのシリカとピナが描かれたクリーナーです。
前回のダイシーカフェで配布したものと同じです。

LEDネームバッジの制御方法

趣味TECH祭2019(夏)にて、LEDネームバッジを購入したので、取り扱い方法についてメモを残してみたり。

同類品が幾つか存在している様なのですが、自分はこちらのプログラムで制御出来ました。

Led-Bedge-44×11

https://github.com/jnweiger/led-name-badge-ls32

44×11というのは、LEDのサイズが横44、縦11ドットという意味です。

動作確認はUbuntu 16.04 LTS上のPython3で行いました。

ライブラリの導入は、README.mdに記載されている内容そのままです。

sudo pip install pyhidapi
sudo pip install pillow
sudo apt-get install libhidapi-hidraw0
sudo ln -s /usr/lib/x86_64-linux-gnu/libhidapi-hidraw.so.0 /usr/local/lib/

基本的な使用法は、以下の様になります。

# 例)
sudo python3 ./led-badge-11x44.py "TEST"

送信が完了するとネームバッジの電源が落ちますので、ケーブルの抜き差しをして再度電源を入れてやります。

標準状態では半角英数しか利用できませんが、PNG画像を指定することで任意の二値画像を表示させることが出来ます。

今回は値段を表示させたかったので、以下の様な画像を用意しました。白が点灯する場所となります。

# 例)
sudo python3 ./led-badge-11x44.py ":image.png:"

みみけっと42に委託参加します

2019年9月15日開催予定の「みみけっと42」に委託参加します。

委託して頂くサークルは「やぎ09 天国うさぎ教会」さんとなります。

委託頒布予定

ネコミミっ娘・涼感マフラータオル ¥1,000-

水で湿らせて首にかけると涼しさを感じる横長のタオルです。
収納ケースつきです。


シノンとシリカのクリアファイルセット ¥500-

ふたりのALOでのアバター姿をイラストにしてみました。
二枚一セットとなります。


シリカのクリーナークロス ¥300-

こちらはSAOでのアバター姿ですが、シリカとピナ。
ひと休みを描いたイラストとなります。

iPhone/iPad用のポーズ人形

ArtPose, Easy Poserについてのメモ記事。

iPad Air2でキャプチャーを行いました。

ArtPose Pro

http://art-pose.com

ArtPoseには三種類のラインナップがあり、以下の三種類がリリースされています。

  • ArtPose Male Edition
  • ArtPose Female Edition
  • ArtPose Pro

それぞれ700円前後で販売されていますが、ArtPose Pro以外は男性モデル・女性モデル専用版ですので買う必要はないです。

基本画面

モデルは最大で二体まで表示させる事が出来ます。体型については若干の変更が可能です。(痩せ・中・太り(筋肉質)程度の切替)

ポーズ操作

ArtPoseの操作は動かしたい関節をクリックしてから、スワイプする事でその場所を回転させます。このとき一本指か二本指かで回転軸が変わります。

ポーズについては自分でつける以外にプリセットからの選択も可能です。

操作自体は割と直感的ですが、リアルよりな造形です。

手の調整

手の形はプリセットの中からの切替のみとなります。

自分はこれを弄ってポーズを考えて、気に入ったポーズが出来たらスクリーンショットで保存しています。

Easy Poser

https://madcatgames.tistory.com

Easy Poserは広告付きの無料版とアプリ内課金による有料版(600円前後)があります。(画面はPro版)

無料版では操作自体は行えますが、

  • 保存が出来ない
  • 一体しか配置出来ない
  • 選択出来るモデルが少ない
  • プリセットポーズが一部しか選択出来ない

といった制限があります。

ArtPoseはリアルでしたがこちらはマンガ・アニメ向けのモデル構成となっています。モデルには大人・子供の男女が用意されていたり、四頭身のモデル等もあります。

また、小物を持たせたり簡単なボックスを配置したりも出来ます。

ポーズ操作

ポーズの設定は動かしたい場所を選んでから、表示されるスライダーをドラッグする事で行います。ArtPoseに比べるとやや直感的ではないですが、

手の調整

手の形はプリセットから選択する事も出来ますが微調整も可能です。

出来なくはない…といった感じで結構面倒かも。

Taskletのサンプル

Stackless PythonのTasklet実行のサンプルコード。

# -*- coding: utf-8 -*-
import stackless


def task_setup1(name):
    """何らかのセットアップをする関数1
    """
    print("task - %s - prologue" % name)
    for n in range(2):
        print("task - %s - step(%d)" % (name, n))
        # 任意のタイミングで自分の処理を一時停止して他のタスクに切り替える
        stackless.schedule()
    print("task - %s - epilogue" % name)


def task_setup2(name):
    """何らかのセットアップをする関数2
    """
    print("task - %s - prologue" % name)
    for n in range(3):
        print("task - %s - step(%d)" % (name, n))
        # 任意のタイミングで自分の処理を一時停止して他のタスクに切り替える
        stackless.schedule()
    print("task - %s - epilogue" % name)


def main():

    # 処理すべきタスクを必要なだけ登録
    task1 = stackless.tasklet(task_setup1)
    task1.setup("task1")
    task2 = stackless.tasklet(task_setup2)
    task2.setup("task2")

    # メイン側では何か処理をしつつタスクの終了を待つ
    while any([task1.alive, task2.alive]):
        print("main ----------")
        # タスクを1ステップ呼び出し
        stackless.schedule()
        print("")

    # タスク終了後は次の処理へ
    print("tasklet - complete")


if __name__ == "__main__":
    main()

実行結果

taskletは、登録した順番に呼び出されて処理される。

実行するTaskは常に一つとなる為、同期オブジェクトは不要となります。

main ----------
task - task1 - prologue
task - task1 - step(0)
task - task2 - prologue
task - task2 - step(0)

main ----------
task - task1 - step(1)
task - task2 - step(1)

main ----------
task - task1 - epilogue
task - task2 - step(2)

main ----------
task - task2 - epilogue

tasklet - complete

こういった処理は、microthread, Fiber, coroutineといった名称で呼ばれます。(Stackless Pythonではtaskletです)

Anacondaでのstackless

Anacondaでstackless Pythonを使用する場合は、以下の手順でPythonを切り替えます。

conda create -c stackless -n stackless27 python=2.7
conda activate stackless27
conda env --add channel stackless
conda install -c stackless stackless
conda install -c stackless python=2.7

素材を使って銃器を描く

3D Warehouseの素材を元にShade 3Dでトゥーンレンダリングしたものです。

ピーちゃん(FN P90)

https://3dwarehouse.sketchup.com/model/1bd2fba303e04ce1283ffcfc40c29975/Weapon-FN-P90

右太と左子(MGL-140)

https://3dwarehouse.sketchup.com/model/e815bffc1dee0414f4aa69a000077765/Milkor-MGL-140-rocket-launcher3D

おまけ(M1A2)

https://3dwarehouse.sketchup.com/model/e61852835b26748f2aecefafbbe13778/M1A2