2016年3月7日月曜日

ANE でアプリ内課金(In App Purchase)を Flash CC (Animate CC) で導入する手順

はいはいFlashは死にましたね。そーですね。
(とか書いてる間に Adobe Animate CC になったよ)
おかげで2016年にもなるとANEの使い方すら見つけ難い始末ですよ。
あっても Flash Builder での使い方とかばっかで意味わからんワー。
ってなわけで、自分で書きます。

■ やりたいこと
AIR for android で作ったアプリに課金機能を追加してジャブジャブ課金してもらう。

■ 使ったソフト
・ Adobe Flash Professional CC 2015

■ あまり参考にしてはいけないページ
Adobe AIR 用ネイティブ拡張の使用
http://help.adobe.com/ja_JP/air/build/WS597e5dadb9cc1e0253f7d2fc1311b491071-8000.html
「ANEの使い方」などと検索するといまだに上位に出てくるけど、一部の情報が古く既に不要となった手順なども含まれているという公式マニュアルとは思えないページ。

■ 一般的な ANE の使い方手順
1)ANE ファイルを用意する
GitHub とかから落とすなりなんなりする。

2)FlashでさっきのANEを登録。
1、2、3で完了だ。


3)ActionScript でなんやかんやする。
まともなマニュアルやリファレンスが用意されてる ANE なんてこの世に存在しないけど頑張れ!

4)AIR でパブリッシュ!
おわり。
うわチョー簡単!上記公式マニュアルのクソっぷりが際立つ!

ただし、利用する ANE によっては上記以外に、なんたら-app.xml への追記なども行う必要があるぞ。
あと、ANE は AIR じゃないと使えないからパブリッシュのターゲットは AIR のやつを選ぼう。
Flash Player とのマルチプラットフォームの場合は条件付きコンパイルとか使ってコードも実行されないようにしないとダメだぞ。

■ 試してみた ANE
いずれも2016年1月時点でダウンロードしたものを使用。

・ Freshplanet の ANE-In-App-Purchase
おそらく最も利用されているであろう有名な ANE なので、当然動くものと思い実装してみるもパブリッシュ時にエラーを吐血する始末。
フォーラムでも同症状の人が質問しているが、もー3ヶ月ぐらい経ってるけど現時点でも回答なし。
自己解決はあきらめて次へ進んだ。

・ StudioPixMix の ANE-InAppPurchase
ちょっと試してみた ANE。
驚いたことにどうやらライセンスキー(パブリックキー)を設定する手段がないという ANE なので完全に使い物にならない。
これをもとに自分で作れる人向けなのか?それにしてはリファレンスまで用意してるのが謎…;

・ pozirk の AndroidInAppPurchase
Android のみ。ANE と swc のハイブリッドw

今回は消去法で pozirk の AndroidInAppPurchase を使用することに決定。
もーこの時点で不安しかない。

■ 具体的に実装手順
1)AndroidInAppPurchase のページから一式ダウンロードする。
https://github.com/pozirk/AndroidInAppPurchase
「Download ZIP」から落とせるよ。探せ。

2)必要なファイルをコピーする。
比較的親切な readme.md の指示に従い
「InAppPurchase.ane」と
「air\InAppPurchase\bin\InAppPurchase.swc」をflaファイルと同じ場所にコピー。
フォルダ構成は無視して2つともファイルだけ直に置けばOKだ。
それ以外はゴミだ捨てろ。

3)FlashでさっきのANEを登録。
上記の「1、2、3で完了だ」を2つ分やる。

4)なんたら-app.xml にアプリ内課金の権限(パーミッション)を追加。
権限の設定は「AIR for Android 設定」の「権限」タブでできるが、残念ながら課金権限のチェックボックスは用意されていない。
つまり自分で xml に追記する必要がある。
一度でもパブリッシュしていれば xml も勝手に生成されているはずなので、それを利用するが、その前に「権限」タブで「アプリケーション記述ファイルへの権限およびマニュフェストの追加を主導で管理します」にチェックを入れておかないと、毎回追記するはめになる。
ちなみにチェックを入れても権限とマニュフェスト周辺以外は引き続き更新してくれるので、毎回バージョンを書きなおすとかはしなくてもOKだ!

んで、追記する場所は <manifestAdditions> のなかということだけれど、具体的には…
<uses-permission android:name="android.permission.INTERNET"/>
とかの次でいいんじゃね?てきとーてきとー。
え?そんなのどこにもない?しるか!「権限」タブでチェック入れとけや!

んでそこに↓を追記する。
<uses-permission android:name="com.android.vending.BILLING" />
<application android:enabled="true">
<activity android:name="com.pozirk.payment.BillingActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" android:background="#30000000" />
</application>
あと <extensions> に <extensionID> を追加する必要があるけど、これは自動的におこなわれるはず。

5)ActionScript を書く!
ありがたいことに readme.md に例が記述されているので参考にする。

[サンプル準備中]

6)テストする
当たり前だけど Flash のプレビューとかでは Google アカウントと紐付いていないからエラーが出てテストにはならないよ。
実機でテストしませう。
ただし、開発者アカウントでインストールすると「出版社はこのアイテムを購入できません。」とかいうネイティブな日本語エラーが返ってくるだけなので、別のアカウントを使わないとテストにならない。
で、その別アカもテストユーザーとして登録しておかないと、ベータ版テストだろうと容赦なく課金されるので注意だ。
ちゃんとデベロッパーコンソールの「設定」>「アカウントの詳細」>「ライセンス テスト」でメアドを登録しておきませう。(2016年3月現在)
さすれば数時間後には効果が発揮され、テス垢で購入しようとすると「これはテスト用の注文です。課金は発生しません。」というメッセージが表示されるようになって課金テストし放題になるでござる。

7)公開する!
そして現実は甘くないことを実感するがいい!

2015年8月6日木曜日

stencyl 3.3.2 での備忘録

Flash と Android(無課金)での動作確認によるものです。
  • Map タイプの Attribute を Hidden で使いたい場合は、利用前に set [Map] to (create new map) としないとエラーが出る。
  • Map タイプの Attribute に Stencyl (GUI) 上で設定された値は数値でも TEXT として処理される様子。(その後スクリプトにて Number 化すればOK)
  • Game Attribute の Map を for each [key] item in [map] しようとするとエラーが出る。(Actor の Map は無問題)
  • simple Physics で Enable Debug Drawing を ON  にすると Android の Publish は失敗する。
  • あたりまえだけど32pxタイルのシーンに16pxのタイルを使用すると表示がおかしくなる。 症状はパブリッシュ先で異なる。(どちらにしろダメだけど)
  • Android だと広いシーンの読み込みにすんごい時間がかかる。
  • Android だと画面に多くのタイルを描画させると重くなる。 例えば16px のタイルより 32px のタイルを使ったほうが結果的に画面内のタイル数が減り軽くなる。
  • 相変わらず、アクターのアニメーションフレームで異なるサイズに差し替えると、Origin Point が変化してしまう。(しかもリロードするまで表示に変化はない)

2015年7月29日水曜日

常用漢字のテキストデータ(漢字の一覧)

常用漢字のテキストデータが欲しいのに全然見つからなかったのでわざわざ作りました。
組み込みフォントで文字指定するときに便利です。
コピペしれ。
2010年の改定版対応



亜哀挨愛曖悪握圧扱宛嵐安案暗
以衣位囲医依委威為畏胃尉異移萎偉椅彙意違維慰遺緯域育一壱逸茨芋引印因咽姻員院淫陰飲隠韻
右宇羽雨唄鬱畝浦運雲
永泳英映栄営詠影鋭衛易疫益液駅悦越謁閲円延沿炎怨宴媛援園煙猿遠鉛塩演縁艶
汚王凹央応往押旺欧殴桜翁奥横岡屋億憶臆虞乙俺卸音恩温穏
下化火加可仮何花佳価果河苛科架夏家荷華菓貨渦過嫁暇禍靴寡歌箇稼課蚊牙瓦我画芽賀雅餓介回灰会快戒改怪拐悔海界皆械絵開階塊楷解潰壊懐諧貝外劾害崖涯街慨蓋該概骸垣柿各角拡革格核殻郭覚較隔閣確獲嚇穫学岳楽額顎掛潟括活喝渇割葛滑褐轄且株釜鎌刈干刊甘汗缶完肝官冠巻看陥乾勘患貫寒喚堪換敢棺款間閑勧寛幹感漢慣管関歓監緩憾還館環簡観韓艦鑑丸含岸岩玩眼頑顔願
企伎危机気岐希忌汽奇祈季紀軌既記起飢鬼帰基寄規亀喜幾揮期棋貴棄毀旗器畿輝機騎技宜偽欺義疑儀戯擬犠議菊吉喫詰却客脚逆虐九久及弓丘旧休吸朽臼求究泣急級糾宮救球給嗅窮牛去巨居拒拠挙虚許距魚御漁凶共叫狂京享供協況峡挟狭恐恭胸脅強教郷境橋矯鏡競響驚仰暁業凝曲局極玉巾斤均近金菌勤琴筋僅禁緊錦謹襟吟銀
区句苦駆具惧愚空偶遇隅串屈掘窟熊繰君訓勲薫軍郡群
兄刑形系径茎係型契計恵啓掲渓経蛍敬景軽傾携継詣慶憬稽憩警鶏芸迎鯨隙劇撃激桁欠穴血決結傑潔月犬件見券肩建研県倹兼剣拳軒健険圏堅検嫌献絹遣権憲賢謙鍵繭顕験懸元幻玄言弦限原現舷減源厳
己戸古呼固股虎孤弧故枯個庫湖雇誇鼓錮顧五互午呉後娯悟碁語誤護口工公勾孔功巧広甲交光向后好江考行坑孝抗攻更効幸拘肯侯厚恒洪皇紅荒郊香候校耕航貢降高康控梗黄喉慌港硬絞項溝鉱構綱酵稿興衡鋼講購乞号合拷剛傲豪克告谷刻国黒穀酷獄骨駒込頃今困昆恨根婚混痕紺魂墾懇
左佐沙査砂唆差詐鎖座挫才再災妻采砕宰栽彩採済祭斎細菜最裁債催塞歳載際埼在材剤財罪崎作削昨柵索策酢搾錯咲冊札刷刹拶殺察撮擦雑皿三山参桟蚕惨産傘散算酸賛残斬暫
士子支止氏仕史司四市矢旨死糸至伺志私使刺始姉枝祉肢姿思指施師恣紙脂視紫詞歯嗣試詩資飼誌雌摯賜諮示字寺次耳自似児事侍治持時滋慈辞磁餌璽鹿式識軸七叱失室疾執湿嫉漆質実芝写社車舎者射捨赦斜煮遮謝邪蛇尺借酌釈爵若弱寂手主守朱取狩首殊珠酒腫種趣寿受呪授需儒樹収囚州舟秀周宗拾秋臭修袖終羞習週就衆集愁酬醜蹴襲十汁充住柔重従渋銃獣縦叔祝宿淑粛縮塾熟出述術俊春瞬旬巡盾准殉純循順準潤遵処初所書庶暑署緒諸女如助序叙徐除小升少召匠床抄肖尚招承昇松沼昭宵将消症祥称笑唱商渉章紹訟勝掌晶焼焦硝粧詔証象傷奨照詳彰障憧衝賞償礁鐘上丈冗条状乗城浄剰常情場畳蒸縄壌嬢錠譲醸色拭食植殖飾触嘱織職辱尻心申伸臣芯身辛侵信津神唇娠振浸真針深紳進森診寝慎新審震薪親人刃仁尽迅甚陣尋腎
須図水吹垂炊帥粋衰推酔遂睡穂随髄枢崇数据杉裾寸
瀬是井世正生成西声制姓征性青斉政星牲省凄逝清盛婿晴勢聖誠精製誓静請整醒税夕斥石赤昔析席脊隻惜戚責跡積績籍切折拙窃接設雪摂節説舌絶千川仙占先宣専泉浅洗染扇栓旋船戦煎羨腺詮践箋銭潜線遷選薦繊鮮全前善然禅漸膳繕
狙阻祖租素措粗組疎訴塑遡礎双壮早争走奏相荘草送倉捜挿桑巣掃曹曽爽窓創喪痩葬装僧想層総遭槽踪操燥霜騒藻造像増憎蔵贈臓即束足促則息捉速側測俗族属賊続卒率存村孫尊損遜
他多汰打妥唾堕惰駄太対体耐待怠胎退帯泰堆袋逮替貸隊滞態戴大代台第題滝宅択沢卓拓託濯諾濁但達脱奪棚誰丹旦担単炭胆探淡短嘆端綻誕鍛団男段断弾暖談壇
地池知値恥致遅痴稚置緻竹畜逐蓄築秩窒茶着嫡中仲虫沖宙忠抽注昼柱衷酎鋳駐著貯丁弔庁兆町長挑帳張彫眺釣頂鳥朝貼超腸跳徴嘲潮澄調聴懲直勅捗沈珍朕陳賃鎮
追椎墜通痛塚漬坪爪鶴
低呈廷弟定底抵邸亭貞帝訂庭逓停偵堤提程艇締諦泥的笛摘滴適敵溺迭哲鉄徹撤天典店点展添転填田伝殿電
斗吐妬徒途都渡塗賭土奴努度怒刀冬灯当投豆東到逃倒凍唐島桃討透党悼盗陶塔搭棟湯痘登答等筒統稲踏糖頭謄藤闘騰同洞胴動堂童道働銅導瞳峠匿特得督徳篤毒独読栃凸突届屯豚頓貪鈍曇丼
那奈内梨謎鍋南軟難
二尼弐匂肉虹日入乳尿任妊忍認
寧熱年念捻粘燃
悩納能脳農濃
把波派破覇馬婆罵拝杯背肺俳配排敗廃輩売倍梅培陪媒買賠白伯拍泊迫剥舶博薄麦漠縛爆箱箸畑肌八鉢発髪伐抜罰閥反半氾犯帆汎伴判坂阪板版班畔般販斑飯搬煩頒範繁藩晩番蛮盤
比皮妃否批彼披肥非卑飛疲秘被悲扉費碑罷避尾眉美備微鼻膝肘匹必泌筆姫百氷表俵票評漂標苗秒病描猫品浜貧賓頻敏瓶
不夫父付布扶府怖阜附訃負赴浮婦符富普腐敷膚賦譜侮武部舞封風伏服副幅復福腹複覆払沸仏物粉紛雰噴墳憤奮分文聞
丙平兵併並柄陛閉塀幣弊蔽餅米壁璧癖別蔑片辺返変偏遍編弁便勉
歩保哺捕補舗母募墓慕暮簿方包芳邦奉宝抱放法泡胞俸倣峰砲崩訪報蜂豊飽褒縫亡乏忙坊妨忘防房肪某冒剖紡望傍帽棒貿貌暴膨謀頬北木朴牧睦僕墨撲没勃堀本奔翻凡盆
麻摩磨魔毎妹枚昧埋幕膜枕又末抹万満慢漫
未味魅岬密蜜脈妙民眠
矛務無夢霧娘
名命明迷冥盟銘鳴滅免面綿麺
茂模毛妄盲耗猛網目黙門紋問
冶夜野弥厄役約訳薬躍闇
由油喩愉諭輸癒唯友有勇幽悠郵湧猶裕遊雄誘憂融優
与予余誉預幼用羊妖洋要容庸揚揺葉陽溶腰様瘍踊窯養擁謡曜抑沃浴欲翌翼
拉裸羅来雷頼絡落酪辣乱卵覧濫藍欄
吏利里理痢裏履璃離陸立律慄略柳流留竜粒隆硫侶旅虜慮了両良料涼猟陵量僚領寮療瞭糧力緑林厘倫輪隣臨
瑠涙累塁類
令礼冷励戻例鈴零霊隷齢麗暦歴列劣烈裂恋連廉練錬
呂炉賂路露老労弄郎朗浪廊楼漏籠六録麓論
和話賄脇惑枠湾腕


常用漢字以外の人名用漢字

丑丞乃之乎也云亘些亦亥亨亮仔伊伍伽佃佑伶侃侑俄俠俣俐倭俱倦倖偲傭儲允兎兜其冴凌凜凧凪凰凱函劉劫勁勺勿匁匡廿卜卯卿厨厩叉叡叢叶只吾吞吻哉哨啄哩喬喧喰喋嘩嘉嘗噌噂圃圭坐尭坦埴堰堺堵塙壕壬夷奄奎套娃姪姥娩嬉孟宏宋宕宥寅寓寵尖尤屑峨峻崚嵯嵩嶺巌巫已巳巴巷巽帖幌幡庄庇庚庵廟廻弘弛彗彦彪彬徠忽怜恢恰恕悌惟惚悉惇惹惺惣慧憐戊或戟托按挺挽掬捲捷捺捧掠揃摑摺撒撰撞播撫擢孜敦斐斡斧斯於旭昂昊昏昌昴晏晃晒晋晟晦晨智暉暢曙曝曳朋朔杏杖杜李杭杵杷枇柑柴柘柊柏柾柚桧栞桔桂栖桐栗梧梓梢梛梯桶梶椛梁棲椋椀楯楚楕椿楠楓椰楢楊榎樺榊榛槙槍槌樫槻樟樋橘樽橙檎檀櫂櫛櫓欣欽歎此殆毅毘毬汀汝汐汲沌沓沫洸洲洵洛浩浬淵淳渚淀淋渥湘湊湛溢滉溜漱漕漣澪濡瀕灘灸灼烏焰焚煌煤煉熙燕燎燦燭燿爾牒牟牡牽犀狼猪獅玖珂珈珊珀玲琢琉瑛琥琶琵琳瑚瑞瑶瑳瓜瓢甥甫畠畢疋疏皐皓眸瞥矩砦砥砧硯碓碗碩碧磐磯祇祢祐祷禄禎禽禾秦秤稀稔稟稜穣穹穿窄窪窺竣竪竺竿笈笹笙笠筈筑箕箔篇篠簞簾籾粥粟糊紘紗紐絃紬絆絢綺綜綴緋綾綸縞徽繫繡纂纏羚翔翠耀而耶耽聡肇肋肴胤胡脩腔脹膏臥舜舵芥芹芭芙芦苑茄苔苺茅茉茸茜莞荻莫莉菅菫菖萄菩萌萊菱葦葵萱葺萩董葡蓑蒔蒐蒼蒲蒙蓉蓮蔭蔣蔦蓬蔓蕎蕨蕉蕃蕪薙蕾蕗藁薩蘇蘭蝦蝶螺蟬蟹蠟衿袈袴裡裟裳襖訊訣註詢詫誼諏諄諒謂諺讃豹貰賑赳跨蹄蹟輔輯輿轟辰辻迂迄辿迪迦這逞逗逢遥遁遼邑祁郁鄭酉醇醐醍醬釉釘釧銑鋒鋸錘錐錆錫鍬鎧閃閏閤阿陀隈隼雀雁雛雫霞靖鞄鞍鞘鞠鞭頁頌頗顚颯饗馨馴馳駕駿驍魁魯鮎鯉鯛鰯鱒鱗鳩鳶鳳鴨鴻鵜鵬鷗鷲鷺鷹麒麟麿黎黛鼎


個人的にびっくりした実は含まれていない漢字(異体字も含む)

々龍罠糞肛蛾蛙謳諜誹醤隕飴餃騙鮭嘘


(参考)一度は追加候補漢字に入りながら、その後外された漢字(人名用漢字などとダブりあり)

叩噓噂濡笠嬉朋覗撫溜鷹揃頷摑翔喋嚙洩禄栗馴駕鴨淵駿蘭胡蘇狼蝶搔惚蒼腿菩吊雀樽壺祀卿歪棲磯桶鷲媚寵秤套醬疼賤顚糊誼截綬庄毅揆躇躊憐狽萌撥謳蔓捏饉倦屛恍斡膠疇謗乖誹蒙聘憚哨

2015年2月15日日曜日

甘酒(生甘酒)のウソ。飲む点滴?美白?酵素?コウジ酸?効能などのまとめ。

火入すると酵素が死ぬとかについて。
  1. まずそもそも酵素は生き物じゃねーし。
  2. 酵素を食べても体内でアミノ酸に分解されるから体内の酵素は増えない。日本経済新聞「科学」にだまされないで 健康食品のウソ・ホント」
  3. 酵素は50度~70度程度(種類による)で活性を失う。なので死ぬ非活性化するのは確かだが、甘酒作成後も活性にしておく必要はない。
  4. 酵素そのものより酵素の働きにより生成される栄養が大事。
コウジ酸(麹酸)による美白効果?
  1. 甘酒を塗ったら効果あるかもね。
  2. 「造り酒屋の杜氏さんやお味噌屋さんの手がとても綺麗」で、顔は?
    食べて効果があるなら全身に効果があってもいいんじゃない?
    食べた場合の美白効果の研究結果が見当たらない。
  3. 化粧水やクリームの商品ばかり。なんでドリンクないの?
  4. ちなみにコウジ酸は比較的(?)熱に強いとのこと。熱に弱い酵素や麹菌と混同注意。
  5. 小動物に人への規定量を遥かに上回る高濃度のコウジ酸を餌に混ぜて食べさせた結果、発がん性が確認されて化粧品業界震撼。(2003年)
    でも塗るぶんには問題ないことが証明されて一安心。化粧品も販売再開。(2005年)
    だからまぁきっと飲んでも大丈夫w
  6. なお、味噌、醤油、お酒に関しては、醸造中に微生物、酵素などの影響により分解されるため、最終製品中にコウジ酸が残存する可能性は少ないとのこと。甘酒なんてマイナーな嗜好品の調査は行われておりませんよプゲラウヒョ。
飲む点滴だからすごい?
  1. そもそも点滴は栄養豊富という知識が誤り。「点滴 栄養補給」でググれ
  2. もっとも多く使われる点滴は0~100kcal(500ml当たり)と、かなりの雑魚との比較。
  3. 点滴で補給できる栄養量は微々たるもので、通常、点滴は胃腸虚弱時の水分補給に用いられるもの。
で、実際どれくらい栄養があるの?
  1. まずは、ビタミンやミネラルについて。以下、参考サイト。アミノ酸については後記。
    甘酒80ccの栄養成分表(カロリーSlism)
    グリコ栄養成分ナビゲーター:「一般食品 > し好飲料類 > その他」に甘酒があります。
    文部科学省 食品成分データベース:「あまざけ」で検索ぅ。
  2. 米麹なのか酒粕なのか、生なのか乾燥なのか、火入れ後なのか、などの状態は不明ですが、少なくとも上記のデータ上では、それほど特別に栄養価の高い食品ではないことが分かります。
  3. 同量の豆乳や牛乳などと比較してみましょう。
    あなたの求める栄養は、本当に甘酒でとるのがベストなのか調べましょう。
    ぶっちゃけビタミンとかミネラルが欲しいのなら目玉焼きでも食ったほうが数倍から数百倍効率的です。
でもでもアミノ酸は豊富でしょ?
まぁたしかに色々入ってるっちゃー入ってますがね。
甘酒製品のページに掲載されていた成分表をまとめてみました。
製品名はとりあえずふせておきます。あと一部単位が違うので注意。親切なので卵の成分も書いておきますね。(^^)

甘酒
米麹 酒粕
100ml 100g 100g 100g 100g
スレオニン 39mg 48mg 55mg 7mg ---
バリン 65mg 95mg 84mg 13mg  858mg
メチオニン 26mg 58mg 40mg 23mg  380mg
イソロイシン 43mg 78mg 59mg 7mg  671mg
ロイシン 87mg 128mg 116mg 19mg  1086mg
フェニルアラニン 56mg 74mg 74mg 11mg  680mg
リジン 38mg 76mg 52mg 10mg  912mg
トリプトファン 14mg 13mg 20mg --- 167mg
アルギニン 84mg 134mg --- 24mg 820mg
アスパラギン酸 99mg 132mg --- --- 1329mg
アラニン 61mg --- --- 14mg  735mg
セリン 55mg --- --- 8mg 971mg
プロリン 53mg --- --- 4mg  512mg
グリシン 52mg --- --- 6mg  432mg
チロシン 52mg --- --- 15mg  499mg
グルタミン酸 182mg --- --- 22mg  1673mg
ヒスチジン 28mg --- --- 4mg  309mg
シスチン 25mg --- --- --- 272mg
生米麹がいい?
  1. 必要なのはコウジカビ由来の酵素(アミラーゼ)であって、麹菌そのものではない。
  2. 麹菌は50度前後で死滅するので、甘酒製造時には早々に死滅するし生きていてもらう必要はない。
  3. 菌は死んでも米麹の栄養はとれる。
  4. つまり乾燥米麹でもいんじゃね?
  5. もっと言えば、酒粕タイプの甘酒でもいんじゃね?酒粕だって栄養豊富wだよ?
米麹なら砂糖不使用で作れるしダイエット効果も?
  1. あー、ブドウ糖の量はハンパないけどね。(調子のってると糖尿病のリスク)
  2. 痩せたいなら体動かせ筋肉つけろ。
ジャパニーズヨーグルトwwww
  1. 乳酸菌を増やさないように60℃程度で作るのに、できあがったものに乳酸菌の効果を期待するって意味不明なんですけどwww
素人のまとめです。嘘、大げさ、紛らわしい情報が含まれている可能性があります。
間違いがありましたらご指摘頂ければと思います。

ちなみに私は甘酒大好きです。
でも大した効果も期待できないのに「甘酒すげー」とかいうサイトばかりなので、まとめてみました。
うまけりゃいーんだよ。

2015年1月22日木曜日

Stencyl で Android アプリ作成のメモ

Windows 版 Stencyl 3.2 時点でのメモです。(無課金)
Android 向け以外のことも書いてます。

GUI 上で設定した日本語テキストは表示できない

あら不思議、Stencyl は Android アプリにすると、ビヘイビアの text とか list とか map なんかで入力しておいた日本語が表示されなくなります。

ただし何故かスクリプトからであれば使用できます。
つまり set [text] to [attribute] というように、スクリプト上で設定すればOK。
ビヘイビアやアクターのカスタマイズとかの画面で入力した日本語は表示されないので注意。

なお、Flash 書き出しなら、何の問題もなく出力されます。

GUI でビヘイビアのテキスト属性値を設定すと、表示できない文字がある

それは「<」「>」「”」「&」です。「&lt;」などとエンティティ化しやがった上でそのまま表示しやがります。

ただしこちらもスクリプトからであれば使用できます。
なので、スクリプト上で「replace “&lt;” with “<" in [text]」とかすれば解決はします。 また、Flash であれば問題なく表示されます。 ちなみに 1byte フォントで該当する位置にある文字は使用できないことになります。(位置はフォントによる)

フォントの「Import Font from Image」機能がへん

この問題は Stencyl 上で発生します。
なんかこの機能はまともに動作しないです。
(ワークスペースフォルダ内のファイルを直に書き換えたりしないとダメ)

show alert with title ブロックは使えるよ。

もちろん日本語は使えないがな!
ちなみにスクリプト上で「\u3042」という感じに文字コードで入力したらコンパイルが止まらなくなったゾ☆

AdMob Extension は利用できない?!

Setting にて AdMob Extension を利用可能な状態にするだけで、Compiling が中断してしまう。
英語圏では特に問題になっていないようなので、私の環境限定なのかは分かりませんが、とにかくダメになりやがります。
Stencyl 自体をクリーンインストールしなおすと直るかもしれないらしいです。
標準の Monetization 機能使えということか?!

App Name に日本語は使えない

全角が含まれていると Compiling が終わらない。
運良く終わってもアプリ名が文字化けする。

Scale Mode でスケール変更するようにしていると WebViews の位置がズレる

100%で表示されるなら問題ないと思われますが、拡大縮小されるとその分 WebViews の位置がズレます。
No Scaling にして Scale 1x、1.5x…で対応するようにすればOK。

Enable Debug Drawing が有効なのは Box2D の時だけ

この問題は Android に限りません。Flash でも発生します。
また、Collision Group で何かしらのグループの Region を ON にすると書き出し時にエラーが出ます。
さらに動的に create region したい時は、Created イベントなどで作らないと、生成されるのに反応しない region ができる。(例えば Enter Screen イベント時で作っても反応しない)

シーンでアクターのカスタマイズをすると本家の値も変更される場合がある

この問題は Stencyl 上で発生します。
List 形式の Attributes でよくなります。
本家の編集画面を開いていると回避できるような…

Attribute の Internal Name を変更したら一旦セーブしてからゲームを閉じた方がいい

この問題は Stencyl 上で発生します。
でないと null がぁーってエラー出るだけで参照できません。

アプリ終了するには、以下のスクリプトで安定か?!

Import で、
import nme.Lib;
をインポートして、必要な箇所で
#if android
nme.Lib.exit();
#end
とすればOKかな。
ほかにも
import nme.system.System;
nme.system.System.exit(1);
という案もあるようだが、こちらでは完全に終了されない様子。

「trigger event」にテキストは渡せない

この問題は Android に限りません。Flash でも発生します。
テキストの Attribute はムリなご様子。
「trigger event [text] in behavior [text] for [actor]」とかを使いませう。

五十音のテキストデータ(ひらがな・カタカナの一覧)

ひらがな、カタカナ、の五十音テキストデータが欲しいのに全然見つからなかったのでわざわざ作りました。
組み込みフォントで文字指定するときに便利です。
コピペしれ。

あいうえお
かきくけこ
さしすせそ
たちつてと
なにぬねの
はひふへほ
まみむめも
やゆよ
らりるれろ
わゐゑを


がぎぐげご
ざじずぜぞ
だぢづでど
ばびぶべぼ
ぱぴぷぺぽ

ぁぃぅぇぉ

ゃゅょ

アイウエオ
カキクケコ
サシスセソ
タチツテト
ナニヌネノ
ハヒフヘホ
マミムメモ
ヤユヨ
ラリルレロ
ワヰヱヲ


ガギグゲゴ
ザジズゼゾ
ダヂヅデド
バビブベボ
パピプペポ

ァィゥェォ

ャュョ



、。ー~「」【】『』゛゜
♪♭■□◆◇△▲▽▼◎○●◯‥…・∴∵※×〒
!”#$%&'()=~|`{+*}<>?_-^\@[;:],./\
!”#$%&’()=~|`{+*}<>?_-^\@[;:],./\

abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ

0123456789

abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ

0123456789

2014年6月30日月曜日

【自作】1分で作れる Oculus Rift っぽいスマホ VR HMD (ヘッドマウントディスプレイ)【安価】

※もはや百均で VR ゴーグルや VR メガネそのものが買えるので、自作する意味はほぼ失われました。
ただしそれらは高価な製品に比べるとレンズなどの質が落ちるので注意です。
楽しみかた(コンテンツ)はこちら

まずは完成品の写真をご覧ください↓


おっと!バカにするのは実際に試してからにしてもらおうか!(`・ω・´)

Oculus Rift を体験した衝撃から自作する方が多いようですが、どうも工作に自信のある方のハイレベルな物ばかりなので、もっと究極に手軽なものを考えてみました。

また、先日 Google I/O で配布されたダンボールで自作できる Cardboard もかなりお手軽な感じはありますが、自作するには部品点数も多くダンボールといえど高いカッティング技術が要求されるなど、まだまだ難度は高いように感じます。

※ 最近では簡単に作れるキットも発売されています。
ハコスコ
タオバイザー|TaoVisor

このページでは簡易 VR HMD の作り方や楽しみ方の紹介をしています。
こうやって使うのデス!

■ では早速作り方!

完成品を見れば一秒で理解できる構造(?)ですが、実は色々と注意点もあるので最後までよく読んでね。
まず以下のものを用意してください。
  1. 画面サイズ5~7インチ程度のスマホ
  2. 置き型ルーペ(2個)
  3. セロハンテープ
手軽とか謳っておきながら初っ端にスマホを要求するところが詐欺臭いですが、電子工作なしでディスプレイからトラッキングまでを実装できる唯一の方法なので、これを外すことはできません;

☆ 注意点その1:画面サイズについて

[2016/12/28追記]
Google 先生が画面サイズに依存しない方法を考案してくれました。
これで画面サイズの問題はほとんど解決できます。
詳しくは「iPhone で VR (YouTube・Cardboard )がずれる場合の対処法(android もOK)」の解決策その3をご確認ください。

スマホなら何でも良いというわけではありません。
特に画面サイズ(幅)が重要です。
詳しくは下の図をご覧ください。


つまり中心が大きくズレないことが条件です。
多少のズレ(特に内側へのズレ)は眼球がどうにかしてくれます。(疲れやすくなるけど)
個人差もありますが、昨今の5インチディスプレイ端末であればたぶんOKです。
7インチでもいけるらしいのですが、モノがないので未確認です。(FakeRift では7インチを採用してる)

次に至近距離からディスプレイを見れるようにするための、凸レンズが必要になります。
置き型ルーペであればピント調整や外装を用意する必要もなく、取り付けるだけで完成させることができるのでお勧めです。

ただし恐らくこのルーペを調達することが、最も困難な工程になるかと思います。

☆ 注意点その2:ルーペの選び方

置き型ルーペであれば何でも良いというわけではありません。
そもそも画面内に2つ置ける大きさである必要があります。


没入感に大きく関わる部分なので、余裕のある方は色々な製品で試してみることをおすすめします。
私は運良く丁度いいサイズのルーペが100均で用意できたのですが、そうでない方はこの部分を自作する必要があります。
その方法は後記『置き型ルーペを自作する』を参照してください。
(実は写真のルーペも一手間加えることでより良くできることが後で分かりました⇒『改良してみた』)
先の完成品の写真では以下のものを使用しています。
  1. Samsung Galaxy S III
  2. 100均のルーペ


ちなみに百均でルーペは文房具コーナーではなく老眼鏡コーナーにあることが多いです。
ルーペの位置は個人差があるので一概には言えませんが、まずは両画面の中心にルーペを置き、実際に映像を確認しながら見やすいと思う位置に微調整しましょう。
あとはルーペをテープで固定すれば完成です。


なお、テープはスマホを持った時の上側一箇所だけで止めておけば、ルーペをペロンとひっくり返すだけでタッチ操作ができるようになるので楽チンです。

■ 楽しみ方(コンテンツ)

追記:Youtube ではヘッドトラッキング機能を利用した360°動画も楽しめます。
下記の3D検索と同様に360°動画も絞り込み検索できます。
「#360Video」で検索してチャンネルにアクセスし、360Video のハウス チャンネルを開きましょう!
動画のメニューで Cardboard を選択すれば左右の2画面にできます。
ただし360°=3D動画ではありません!(これ超重要)
ただの 360°動画を左右2画面にしても立体視の効果はないので騙されないようにしてくださいw(360° 3D 動画も無くはない)
最も手軽なのは YouTube の3D動画やニコ動にある立体視(平行法)の画像や動画です。
ヘッドトラッキング機能は利用できませんが、数も多く再生するだけで手軽に楽しめます。
「立体視」や「平行法」などのキーワードで検索すると捗ります。
※ただしスマホの画面と縦横比率が異なり中心がズレるタイプのものは利用できません(ニコ動に多い)
また、YouTube では3D動画を絞り込み検索できます。



専用アプリであればヘッドトラッキング機能を利用した、より没入感の高いコンテンツを楽しむことができます。
同じようなアイデアで作られた自作 VR HMD 用アプリも色々と出ているので、いくつかご紹介します。
ちなみにここで紹介しているものは全部 Android 用です。



Tuscany Dive


Dive City Rollercoaster


The Height Demo

足元にボタンがあって視点を数秒合わせると歩き始めるとか色々工夫されていて面白いです。
Android 対応ゲームパッドがあれば、より本格的なゲームも楽しめます。
まぁ本機では両手がふさがってるから無理ですがねw



REFUGIO 3D Space-Station


Hang Gliding


Shadowgun VR

この他にも色々あります↓
ハコスコに対応している iOS、Androidアプリの紹介(ハコスコ以外でも利用できるもの多数)
divegames のゲーム一覧ページ
REFUGIO3D のゲーム&動画紹介ページ(消えた?)
なお残念ながら Oculus Rift 対応のゲームを遊ぶことはできません。
あと、部屋を暗くしたりイヤホンを使用したりすると、臨場感&没入感がましてイイ感じになります。

■ 置き型ルーペを自作する

そもそも置き型ルーペ自体手に入りにくいので、比較的どこの百均にもある虫眼鏡タイプのルーペで代用する方法を考えてみました。
ルーペは以下のようなものを選びましょう。
  1. できるだけ画面上に2つ収まるサイズ
  2. それでいて、できるだけ大きいもの
  3. できるだけ拡大率(倍率)がいい感じのものw
てか「拡大率がいい感じ」ってナンヤネン!と思われるかもしれませんが、画面やレンズのサイズによって最適な倍率は異なるので、実際に店頭でスマホにかざして試してみることをおすすめします。
(そもそも「○倍率」とかの表示自体が微妙に信用できないです…)

なお、2~3倍のレンズでは数枚重ねなければ、まったく話しにならないレベルです。
そのため、手に入るレンズのサイズと倍率にもよりますが、少なくともこれが2セット(計4個)くらい必要になることが多いです。
小さいお店だとデカイくせに倍率2倍とかのしか無い場合があります。
(そもそも大きいレンズより小さいレンズのほうが倍率を高くしやすい)

どうしても2~3倍のものしか無いという場合は、片側4枚重ねの計8個とかになる場合もありますので覚悟してください。
では、具体的な試し方を説明します。


  1. レンズと目の距離を可能な限り近づける
    (レンズの外が見えないようにするため。大きいほうが許容範囲が広くメガネにも対応しやすい)
  2. その状態でピントが合う位置まで画面に近づく
    (目は遠くを見る感覚のまま、距離でピントを合わせること!)
  3. その状態の視野によって判断する
    • A.広すぎる(余計なものが見えてしまう)
      ⇒倍率が低いので、より倍率の高いものに替えるか、もう一枚重ねて再度1.からやり直し。
      ※妥協点:既に3枚以上重ねてる
    • B.丁度いい
      ⇒その組み合わせで利用できそうです。
    • C.狭すぎる
      ⇒倍率が高すぎる。倍率が低いものに替えて再度1.からやり直し。
      ※妥協点:ほかにない
※この試し方は片目でもおこなえます。
※多少広かったり狭かったりしても、使えないわけではないのである程度は妥協も必要です。


先にも書きましたが文房具コーナーではなく老眼鏡コーナーにあることが多いです。
「やだあの人、老眼鏡でスマホ見てるプププ」という視線に晒されることもありますが、とにかく根性でいい感じのものを探してくださいw

ルーペが用意できたら、早速取り付け作業に入りましょう。
あらかじめ実際に映像(ヘッドトラッキングしない動画や静止画)を再生しながら、ルーペの組み合わせを確認したり、画面との距離や位置などを測り、最適な状態をメモしておくと良いでしょう。


土台(?)には加工しやすい紙コップを使用します。
高さ調節も簡単ですし、なにより円錐形なので視野も保たれます。
紙コップの底をカッターで切り取り、ピントが合うよう高さもカットしてルーペを載せれば完成です!
わ~カンタン!

まぁ組み合わせによっては使えない方法かもしれないけど、各自こんな感じで工夫してみてね!
なお、上記の例では3.5倍ルーペを2枚重ねで使用していますが、それでも視界に余計なものが入ってしまいます。

同じ製品を使用している方は3枚重ねにして距離を縮めることをお勧めします。

■ もう一手間加える

コップの内側を黒く塗りさらに室内を暗くすれば、余計な部分が目立たなくなり見やすくなります。


特に両目で見た時の反射によるチラツキが抑えられます。

レンズだけにするとコンパクトにできます。
重ねにくくなりますが、重い場合や幅があり過ぎる場合に有効です。
ノコギリなどで写真のように一部をカットすればレンズだけ取り外せます。
取っ手を切り取るだけでも軽量化になります。

■ 改良してみた

市販の置き型ルーペをそのまま利用してもそれなりの成果を得られましたが、少し視野が狭いと感じたので、その点を改良してみました。

特定の製品を使用しているため、参考になるか分かりませんが何かの足しになれば幸いです。
さて、「視野が狭い」ということは「倍率が高過ぎる」ということなので、そこを調整する必要があります。

当該置形ルーペはキャップを開けるように回せば、簡単に分解できます。

幸いなことにこのルーペではレンズを2枚使用していたので、1枚外すだけで倍率を下げることができます。
(商品は3倍率と謳っていますが、これ一枚で3.5倍と謳っているルーペより拡大率が高かったです…
何をどう信じたらいいのか分かりません;)

ただし、それだけでは今度はピントがズレてしまい使い物になりません。

ピントを合わせるには画面から少し離す必要がありました。
そこで、下に倍率低め(といっても3.5倍)のルーペを敷いてみたところ、ぴったりと合いました。


あ、あとキャップも外しています。(縦にした時レンズが落ちないようにもした)
結果これだけの効果がありました。(実際にレンズ越しに撮影したものです)


周りがよく見えるようになり、ドットの荒さも気にならなくなりました。
同じような製品が手に入る方は、ぜひお試しください。(/・ω・)/

■ 過度な期待は禁物ですw

当たり前ですが、いろいろな面で Oculus Rift には及びません。
  1. 期待したほどの没入感はない(組み合わせにもよるけど)
  2. Oculus Rift のゲームは遊べない
  3. トラッキング遅延
  4. そもそもヘッドにマウントしてないよね
ディスプレイやレンズのサイズによっては期待したほどの没入感は得られないかもしれません。
多くの手作り VR HMD では7インチを採用しているので、その方がいいのかもしれません。
私は5インチでジェットコースターのアプリをワクワクしながら起動してみましたが、別に全然ギャーとかなりませんでしたw
より高品質な体験を希望する方は、素直に Oculus Rift を注文しましょう。

■ 参考資料

タオバイザー|TaoVisor
FakeRift関連
FakeRiftクラウドファンディングのためのメモ
https://media.dmm-make.com/maker/379/
Google Cardboard
Durovis Dive
REFUGIO 3D
iPhone 向けダンボール製の簡易 HMD キット『ハコスコ
「スマートフォン用ポータブル・VRケース」