頭と尻尾はくれてやる!

パソコンおやじのiPhoneアプリ・サイト作成・運営日記


Harry Potter全巻読み終えた

ついにHarry Potter and the Deathly Hallowsを読み終えた。

iPhone/iPadでHarry Potterを読んでみる
↑1巻目の the Philosopher’s Stone を読み始めたのが2013年の初め頃、、、全部読むのに4年半かかったか、、、

映画は映画館で見たけどストーリーをすっかり忘れてたこともあって楽しめたなあ。

次はやっぱり Fantastic Beasts and Where to Find Them を読もう!と思ってたんだけど、いざ買おうとpottermore.com見たらこれ、The Original Screenplay って書いてある。
Amazonで少し見たらやっぱり小説ではなく脚本形式になってるやつだ。こういうの読みにくいんだよなあ。「呪いの子」は日本語のを読んだけどそれでも読みにくかったしな。さてどうしたものか。


SceneKitでマスクをしたい

ARKitを使ってごにょごにょしてるんだけど、どこでもドア的な表現をSceneKitでしようとしてふと固まってしまった。SceneKitでマスクってどうやるんだ?

どこでもドアの向こう側には別な世界があって、それらがドアの入り口形状の長方形でマスクされれば表現できるわけだけど、、、

いろいろ調べたつもりなんだがマスクのやり方がわからない。

Metalのステンシルバッファでマスクしてみる
↑Metalでステンシルバッファ使ってやったことはあるけど、、、超絶めんどくさい。天下の(?)SceneKitなんだからもっとサクッとできそうな気がしてならない。

結局、、、ステンシルバッファは使わずに、SceneKitでオフスクリーンレンダリング、つまり最初にマスクしたいオブジェクト(どこでもドアの向こうにあるオブジェクト)をMTLTextureに出力し、次にドアのこちら側のオブジェクトとドア入り口の長方形をディスプレイに表示する。その長方形の色はフラグメントシェーダーでMTLTextureから選んで表示してやる、という流れでやることにした。

オブジェクトの位置関係

↑位置関係はこんなの。黄色い四角形がドア入り口に相当。

↑床面がドアの向こうにも表示されてるのはご愛嬌(手抜き)。

GitHub - lachlanhurst/SceneKitOffscreenRendering: Using SCNRenderer to render a scene offscreen to a texture that's then displayed in another scene
↑すごく参考になったのがこちらのコード。不要な部分を排除してすんごい理解しやすいコード。感謝、感謝。SCNRendererクラスって初めて使ったわ。

上のサンプルコードと異なる部分だと、、、
出力するテクスチャの設定。
{
	MTLTextureDescriptor *textureDescriptor = [MTLTextureDescriptor texture2DDescriptorWithPixelFormat:MTLPixelFormatBGRA8Unorm width:width height:height mipmapped:NO];
	offscreenTexture = [device newTextureWithDescriptor:textureDescriptor];
}

ドア入り口の長方形の表示にシェーダーを設定する。ここでシェーダーに渡してやるテクスチャ画像をoffscreen renderingの出力画像に設定してる。
-(void)setupShaderForNode:(SCNNode *)node
{
    SCNGeometry *geometry = node.geometry;
    
    SCNMaterial *material = geometry.firstMaterial;
    
    SCNProgram *program = [SCNProgram program];
    program.vertexFunctionName = @"myVertex";
    program.fragmentFunctionName = @"myFragment";
    material.program = program;
    
    SCNMaterialProperty *imageProperty = [SCNMaterialProperty materialPropertyWithContents:offscreenTexture];
    [material setValue:imageProperty forKey:@"offscreenTexture"];
}

こんな感じでマスクできそうだけど、、、
うーーーーん。やっぱりそのうちSceneKitでしれっと実装される気がする。


Anker PowerCore 13000と100均Type-CケーブルでSwitchを充電

ダイソーのType-Cケーブル

↑ダイソーでSwitch充電用にとUSBとType-Cのケーブル買ってきた。

モバイルバッテリーはいつもiPhone充電用に重宝しているAnkerのPowerCore 13000ってモノ。去年の9月に購入。



そもそもこのバッテリーで充電できるのかも不明。

とにかくダイソーのケーブルを接続して充電してみた。

SwitchをAnkerモバイルバッテリーで充電

↑充電中の様子。

80%のスイッチのバッテリー残量が64分後には99%になってた、ってとこは確認した。
とりあえず充電はできるみたい。


SwitchをiPhoneのテザリングでネットに接続したが

Nintendo SwitchをiPhoneでテザリングしてネットに接続できる、と聞いたので外出先で試してみた。

iPhone 7 Plusのインターネット共有をオンにし、表示されるパスワードをSwitch側で入力。

すると、、、接続成功!
いや、まだここで喜んでいてはいけない。

Nintendo SwitchでNAT超えができなかった理由
↑NAT超えできなきゃARMSやスプラトゥーン2はネットの向こうの人と対戦して遊べない。

AかBならいいんだよな?とドキドキしながら接続テストをすると、、、

Switchの接続テスト結果

あああ、NATタイプは F、、、orz

【Switch】エラーコード「2618-0516」が表示されました。どうしたらいいですか?

↑この辺りを読んだけど、iPhoneで接続に関しどうこうできるようには見えないしなあ。

ネット上には接続かつゲームをプレイできた、という情報もあるので回線の問題なのかな?残念〜!



回線はb-mobileのおかわりSIMといういわゆる格安SIM
デバイスはiPhone 7 Plus , iOS 11 beta 5


ARMSのプレイ動画用チャンネルを作ってみた



↑AMRSのプレイ動画をまた作ってしまった。#2 ベーゴマ級で初対戦 というランクマッチの様子の動画。
専用の新しいチャンネル(ブランドアカウントって言うの?)まで作ったよ。

新しいチャンネルを作成する - YouTube ヘルプ
↑その作り方。

YouTubeでは1つの動画を別のチャンネルに移動させることはできないみたいなので、#1は新しいチャンネルに再度アップロードした。

よくわからないのは同じように録画、編集して作った動画なのに、今回のは著作権がどうのこうのとは出ていないんだよな、、、?謎だ。




Copyright ©頭と尻尾はくれてやる!. Powered by FC2 Blog. Template by eriraha.

FC2Ad