Category Archives: 発表、ニュース

発表、ニュース

Java版マインクラフトの地形データをエクスポート&インポートするには?

Published by:

Minecraftで地球を再現しよう!というプロジェクト「Terra 1 to 1」。

リアルな地形データを使って、地球まるごとマイクラワールドにしてしまうという壮大なプロジェクトです。
Java版のForgeプラグインとして実装されており、必要なプラグインを集めるのはちょっと面倒ですが、ダウンロードしてインストールするだけなので、Forgeで遊んだことがある人なら普段どおりの手順で起動することが出来ます。

/tp コマンド(テレボート。指定座標に移動)の代わりに /tpll コマンドで緯度経度を指定したテレポートも出来るので、Googleマップで座標を確認すれば世界中のどこにでもマイクラ内で移動することが出来ます。すごい!

ただ、いかんせんJava版ですので、私が普段遊んでいるiPadのマイクラアプリ(統合版)ではプレイできず、インストールして「へーすごいー」となっただけ。このワールドをエクスポートして統合版で遊びたい!と思いつき、実際にやってみることにしました。

マイクラのデータをエクスポート&インポートするには、WorldEditというプラグインが使えるのですが、試したところせいぜい300×300ブロック程度の入出力が出来る程度で、私が住んでいる沼島(Terra 1 to 1 ワールド内の座標でいうと「3418200 -6 13483250」 ~ 「3415300 130 13480800」の範囲)である3,000×3,000ブロックを入出力しようとするとメモリエラーになってしまう・・・。

300×300ブロックに分割して入出力しようと考え、WorldEditプラグインを拡張し、/worldexport、/worldimportという2つのコマンドを実装しました。WorldEditのコードをフォークして、GitHubにもプッシュしています。

改造版のWorldEditのjarはこちら

この2つのコマンドは、schematic形式のファイルを分割エクスポート&インポートするプログラムです。
使い方はGitHubのページに記載したとおりで、「/worldexport x1 y1 z1 x2 y2 z2 max_block_length」コマンドでエクスポート、「/worldimport [from] [to]」でインポートできます。

かなりの時間がかかるのと、たっぷりのメモリ(16GB以上推奨)が必要になります。私の場合、取り込み側の起動構成は「-Xmx24G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M」でした。

インポートする場合、「Terra 1 to 1」の起動構成とは別に分けたほうが良いです。「Terra 1 to 1」で使っているプラグインがさらにメモリを使いますので、schematicをインポートする専用の起動構成を分けたほうが、まだスムーズに行けるかと思います。

インポートするワールドはスーパーフラットで作り、私の場合は島だったので「Water World」のプリセットを用意しました。
元のプリセットのままだと海が深すぎて高さ分の処理負荷がかかるため、浅めの海(3;minecraft:bedrock,3minecraft:stone,2minecraft:dirt,2minecraft:sand,6minecraft:water;24;oceanmonument,biome_1・・・水は高さ6、それ以外の要素も低く設定。)を作成。

実行したコマンドは、

■エクスポート@「Terra 1 to 1」のワールド
/tp @p 3418200 0 13483250
/worldexport 3418200 -6 13483250 3415300 130 13480800 200

■インポート@新規ワールド(「Water World」プリセットのスーパーフラット)
/tp @p 0 8 0
/worldimport

エクスポートは30分もあれば終わるのですが、インポートはなんと12時間もかかりました。
特にY軸の位置合わせを何度も間違えたので、最初は小さめのワールドで確認したほうが間違いないかと思います。

無事インポートできたら、MCCToolChest PE (Bedrock version)で統合版ワールドに変換します。
これも結構時間かかりましたが、完璧な精度で変換できたので文句なし!です。

↓がインポートした沼島。船着き場が海に沈み込んでいるのは、海面位置のバグがあるのかなと思っていましたが、もともと船着き場あたりは埋立地だったことを思いだしました。

「Terra 1 to 1」では地形データに「Terrain Tiles」というオープンデータを使っていて、そこには「A global dataset providing bare-earth terrain heights」と説明書きがありましたので、ある意味正確に元の地形が再現されているのだと思います。

マインクラフト統合版の沼島ワールドも公開しておきます。
もしよかったらダウンロードして探索してみてください。

マインクラフト統合版の沼島ワールド

これから船着き場やおうち、その他もろもろを作っていこうと思います。

日常 沼島 発表、ニュース

コープ受け取りin沼島

Published by:

Android8&9の検証用に購入したHUAWEI nova light 3の撮影テスト。

北区の浜
橋本商店
弁天さん
コープを受けとる汽船場。
すぐいくと混雑してるので、少し遅めにいってます。
今日は天気がよく、淡路島もきれいに見えます。
沼島いち、コープを利用してるんじゃなかろうか。
発表、ニュース

アプリ版「風来のシレン」のアイテム値段表

Published by:

識別用のチェックリストつき!(カッターナイフで切ってね)

近所の友人にすすめられ、ぬけぬけと「不思議のダンジョン 風来のシレン」というゲームアプリをiPadにインストールしたのが最後、すっかりハマってしまいました。

トルネコの冒険を含め、これまで不思議のダンジョン系はまったく手を出したことがなく、不惑にしてその面白さ、中毒性に侵されています。

最近「フェイの最終問題」という一番難しいダンジョンに挑戦しており、必要にかられてA4一枚で確認できる値段表を作成しました。

※値段は「値段による判別表/DS/風来のシレン攻略 – ドラクエ&パズル」を参考にしました。

検索すると同じようなPDFを公開されている方がたくさんいたのですが、アイテム識別済みのチェックリストが欲しかったので、自作してしまいました。

とにかく恐ろしいゲームですので、誰にもおすすめできません。数独以上に時間が奪われていきます・・・!

発表、ニュース

統合版マインクラフト用サーバーで複数ワールド起動

Published by:

MINECRAFT 用サーバーソフトウェア (アルファ版) をダウンロード
から統合版(Bedrock Edition/BE)用のサーバーをダウンロードできます。

このサーバーは今のところNintendo Switchからはアクセス出来ませんが、それ以外のAndroid、iPad、PC用などの統合版マインクラフトからアクセスでき、「親機」を用意せずともいつでも誰でもマルチプレイのワールドへアクセスできてとても便利です。 (Java Editionからのアクセスもだめ)

まだアルファ版ということもあり、プラグインが使えなかったりチートコマンドが全部は使えなかったりしますが、省メモリでかなり安定動作しているので、とにかくおすすめです。

インストール方法はMinecraft:Bedrock Edition用の公式バニラサーバーを開いてみたに詳しく説明してくれています。

一つ個人的に問題があって、一つのインストールディレクトリで複数ワールドをサーブすることができないんです。
仕方がないので複数ディレクトリにコピーして、ポート番号を変えて運用することになりますが、起動スクリプトなんかを用意するのが面倒・・・ということで、インストールディレクトリ名を screen コマンドのスクリーン名にして起動・終了・再起動・screenアクセスするスクリプトを作成しました。

bedrock-shells.zip

access.sh・・・起動後のシェルへアクセスできます
restart.sh・・・crontab登録用。バックアップ処理も行います(参考
start.sh・・・起動スクリプト
stop.sh・・・終了スクリプト

小学生の息子や近所の友達ともかくれんぼや秘密基地作り、探検をして楽しんでます!

ビットコイン ブロックチェーン プログラミング 発表、ニュース

ビットコインのウォレットと、支払い用のプログラムを作ろう

Published by:

ビットコインのウォレットは数多くありますが、ハードウェアウォレットは高いしなあ・・・という方は、とりあえずウォレットアプリを利用するのがおすすめです。
ウォレットアプリだと、スマホが壊れたときや新しいスマホに買い替えたときに大事なビットコインがなくなっちゃうんじゃない?なんて心配になりますが、大丈夫!
すべてのビットコインはブロックチェーン上に保管されていて、そのブロックチェーンは世界中に遍在しています。

ハードウェアウォレットだろうとペーパーウォレットだろうと、もちろんウォレットアプリも同じですが、すべてその中にビットコインはありません!
これらウォレットはブロックチェーンに保管されているビットコインへの鍵のようなもので、仮にウォレットがぶっ壊れてもビットコインが失われたわけではなく、合鍵を使ってアクセスすればいいのです。

合鍵となるのがリカバリーフレーズですが、最初にウォレットを作るときに必ずメモを残すようにしましょう。
また、このリカバリーフレーズさえあればだれでもそのウォレットへアクセスできますので、十分気をつけて保管して下さい。

私が使っているCopayというウォレットアプリでは、12の日本語の単語(ひらがな)でリカバリーフレーズが作れます。
仮に私がCopayでウォレットを1つ作り、そのリカバリーフレーズを人にあげれば、それはそのまま相手のウォレットにもなっちゃいます。
この仕組み、本当に面白いですよね・・・

最近個人的に作っているプログラムでビットコインの支払いを受け付ける必要があったのですが、HDウォレット形式に対応することで毎回支払いのビットコインアドレスを変えることが出来ます。
こうすることでちゃんと支払われたかどうかをプログラムでチェックできるのでおすすめです。
1つのアドレスに全部送ってもらうようにすると、どれが誰のものか分からなくなってしまうんですよね。

下はTypeScript版のコードですが、これで新しい受取用のアドレスを生成することが出来ます。
Wallet.tsの「const mnemonic = ‘リカバリーフレーズ’;」のところに、Copayで生成したウォレットのリカバリーフレーズを入れます。

import bitcoin = require('bitcoinjs-lib');
import bip39 = require('bip39');

const mnemonicToM = (mnemonic, password, network) => {
    const seed = bip39.mnemonicToSeed(mnemonic, password || "")
    const m = bitcoin.HDNode.fromSeedBuffer(seed, bitcoin.networks[network || "bitcoin"])
    return m
}
const mnemonic = 'リカバリーフレーズ';

/**
 *  ビットコインウォレット
 */
export class Wallet {
  /**
   *  支払い用アドレス生成
   */
  public static createPaymentAddress(tx_index: number) {
    const m = mnemonicToM(mnemonic, '', 'bitcoin');  // 秘密鍵
    // console.log(m.derivePath("m/44'/0'/0'").toBase58()); // xpriv...
    // console.log(m.derivePath("m/44'/0'/0'").neutered().toBase58());  // xpub...
    // console.log(m.derivePath("m/44'/0'/0'/0/0").getAddress()); // 1DQ...

    let paymentAddress = m.derivePath("m/44'/0'/0'/0/" + tx_index).getAddress();
    return paymentAddress;
  }
}

次に、受取チェックのプログラム。

import blockexplorer = require('blockchain.info/blockexplorer');
import rp = require('request-promise-native');

import { BitcoinAddress } from "./BitcoinAddress";
import { BitcoinTransaction } from "./BitcoinTransaction";

/**
 *  ビットコイントランザクション
 */
export class Transaction {
  /**
   *  最新のブロック総数を取得
   */
  public static getBlockCount(): Promise<number> {
    let url = 'https://blockchain.info/ja/q/getblockcount';
    return rp(url)
      .then((body: string) => {
        let count = parseInt(body.trim());
        if (isNaN(count)) {
          return -1;
        }
        return count;
      });
  }

  /**
   *  指定のアドレスの情報を取得
   */
  public static getAddress(address): Promise<BitcoinAddress> {
    // 最新のブロック総数を取得
    return Transaction.getBlockCount()
      .then((count: number) => {
        // アドレス情報を取得
        return blockexplorer.getAddress(address)
          .then((result) => {
            let bitcoinAddress = new BitcoinAddress();
            bitcoinAddress.address = address;
            bitcoinAddress.total_received = result.total_received / 100000000;
            bitcoinAddress.last_confirmation = 0;
            bitcoinAddress.txs = [];

            // トランザクションの承認数を確認
            if (result.txs && result.txs.length > 0) {
              for (let i = 0; i < result.txs.length; i++) {
                let tx = result.txs[i];
                let bitcoinTransaction = new BitcoinTransaction();
                bitcoinTransaction.block_height = tx.block_height ? tx.block_height : count;
                bitcoinTransaction.confirmation = Math.max(0, count - tx.block_height);
                bitcoinTransaction.confirmation = !isNaN(bitcoinTransaction.confirmation) ? bitcoinTransaction.confirmation : 0;
                if (bitcoinAddress.last_confirmation == 0) {
                  bitcoinAddress.last_confirmation = bitcoinTransaction.confirmation;
                } else {
                  bitcoinAddress.last_confirmation = Math.min(bitcoinAddress.last_confirmation, bitcoinTransaction.confirmation);
                }
                bitcoinTransaction.btc_amount = 0;
                for (let j = 0; j < tx.out.length; j++) {
                  let out = tx.out[j];
                  if (out.addr == address) {
                    bitcoinTransaction.btc_amount += out.value / 100000000;
                  }
                }
                bitcoinAddress.txs.push(bitcoinTransaction);
              }
            }

            return bitcoinAddress;
          });
      });
  }
}
import { BitcoinTransaction } from "./BitcoinTransaction";

/**
 *  ビットコインアドレス
 */
 export class BitcoinAddress {
   public address: string;
   public total_received: number;
   public last_confirmation: number;
   public txs: BitcoinTransaction[];
 }
/**
 *  ビットコイントランザクション
 */
 export class BitcoinTransaction {
   public block_height: number;
   public confirmation: number;
   public btc_amount: number;
 }

実行するとこんな感じです。

import { BitcoinAddress } from "bitcoin/BitcoinAddress";
import { Transaction } from "bitcoin/Transaction";
import { Wallet } from "bitcoin/Wallet";

// tx_indexは0スタートのインクリメント値
let paymentAddress = Wallet.createPaymentAddress(0);
console.log('paymentAddress', paymentAddress);

Transaction.getAddress(paymentAddress)
  .then((bitcoinAddress: BitcoinAddress) => {
    console.log('bitcoinAddress', bitcoinAddress);
  });

$ npm run wallet_test 

> myprogram@1.0.0 wallet_test /home/xxxxxxxxx/myprogram
> env NODE_PATH=./build node ./build/wallet_test.js

paymentAddress 1rUTG3jWJ3rkEiKFLyvXbMaQcLnqxr49c
bitcoinAddress BitcoinAddress {
  address: '1rUTG3jWJ3rkEiKFLyvXbMaQcLnqxr49c',
  total_received: 0.0104252,
  last_confirmation: 1508,
  txs: 
   [ BitcoinTransaction {
       block_height: 492652,
       confirmation: 1508,
       btc_amount: 0.0104252 } ] }

生成された支払い法のアドレス(上の実行例では1rUTG3jWJ3rkEiKFLyvXbMaQcLnqxr49c)が、Copayで表示される受取用アドレスと一致してればOK。
または、Copayの設定画面で確認できる、ウォレットの拡張公開鍵と、Wallet.tsでコメントアウトしている「// console.log(m.derivePath(“m/44’/0’/0′”).neutered().toBase58()); // xpub…」のコメントを外して実行してみて、その出力結果が一致しているかどうかも確認した方がいいでしょう。

ソースのダウンロードはこちら

Android 発表、ニュース

Windowsとスマホ/タブレットの写真を共有する(アルバムーバ利用編その4)

Published by:

ALBUMova

WindowsとAndroidスマホ/タブレットの写真を共有したいときにも、アルバムーバが使えます。

 

Windowsの写真をスマホ/タブレットで見る

Windows7/Windows8/Windows8.1ともWindows7以降であれば、Windowsに保存されている写真や動画、音楽もすべてDLNA配信(メディアサーバー化)することが可能です。

[コントロールパネル] - [ネットワークと共有センター] - [共有の詳細設定]を開き、「プライベート」ネットワークのネットワーク探索を有効にします。

(1)[コントロールパネル] – [ネットワークと共有センター] – [共有の詳細設定]を開き、「プライベート」ネットワークのネットワーク探索を有効にします。

同じ画面の「すべてのネットワーク」の中の「メディアストリーミング オプションの選択」をクリックします。

(2)同じ画面の「すべてのネットワーク」の中の「メディアストリーミング オプションの選択」をクリックします。

(3)メディアストリーミングが有効になっていない場合、メディアストリーミングを有効化します。

(3)メディアストリーミングが有効になっていない場合、メディアストリーミングを有効化します。

アクセスさせるデバイスを選択し(すべて許可で良いと思います)、「許可」を選んで「OK」ボタンをクリックします。

アクセスさせるデバイスを選択し(すべて許可で良いと思います)、「許可」を選んで「OK」ボタンをクリックします。

設定を終えた後、アルバムーバの「Wi-Fiシェアリング」を開くと、Windowsのアイコンが増えています。

Windowsのアイコンが増えている。

Windowsのアイコンが増えている。

一度設定しておけば、Windowsが起動している間は、いつでも写真を見ることが出来ますよ。

スマホ/タブレットの写真をWindowsで見る(Windowsのデフォルト機能を使って)

逆にスマホやタブレットの写真をWindowsから見たい、コピーしたいという場合は簡単です。
アルバムーバの「Wi-Fiシェアリング」でシェアリングの開始スイッチをオンにするだけで、「PC(マイコンピュータ)」に表示されるようになります。

Wi-Fiシェアリングで共有開始。

Wi-Fiシェアリングで共有開始。

「PC(マイコンピュータ)」にALBUMovaのアイコンが表示されます。

「PC(マイコンピュータ)」にALBUMovaのアイコンが表示されます。

このように、日付やフォルダで写真を選択することが出来ます。

このように、日付やフォルダで写真を選択することが出来ます。

もしアルバムーバのアイコンが見えない場合は、「Windowsの写真をスマホ/タブレットで見る」の最初の手順(ネットワーク探索の有効化)を試してみてください。

スマホ/タブレットの写真をWindowsで見る(Windows Media Playerを使って)

Windows Media PlayerもDLNAクライアントとして利用できます。
起動すると「その他のライブラリ」の中にALBUMovaが表示されますので、そこから写真の一覧を表示できます。

Windows Media Playerで表示したところ。こっちだとサムネイルが表示されます。

Windows Media Playerで表示したところ。これだとサムネイルが表示されます。

いずれの方法にしてもサムネイルが表示されなかったり小さかったりして、私の好みの見え方ではないんですよね。。
いつかWindowsアプリも作る・・・?

アルバムーバに関する記事一覧

Android 発表、ニュース

iPhoneとAndroidの写真を共有(アルバムーバ利用編その3)

Published by:

これまでスマホスマホと書いてきましたが、今のところアルバムーバはAndroidアプリしか作っていません。

iPhone/iPadの写真も同じように見られたら・・・という人がいるかもしれません。
「私のiPhoneをアンドロなんとかと共有しないで」という声しか聞こえてこなさそうですが・・・、まあ一応出来ますよということで。

Androidにはアルバムーバをインストールした上で、iPhone/iPadに下のアプリをインストールすれば、交互に写真を共有することが出来ます。

Androidの写真をiPhoneで見る

Media Link Player
Media Link Player
Media Link Player (MLPlayer) は、DLNAやUPnP規格に準拠したサーバ製品に蓄積されたコンテンツをネットワーク経由で再生する機能に加え、DLNAや一部のUPnP規格に準拠したレンダラ製品(TVやオーディオ機器)に再生を指示するコントロール機能に対応したアプリケーションです。


iPhoneの写真をAndroidで見る

iMediaShare
iMediaShare
iMediaShare is the easiest way to stream your photos, video, and music from your mobile to your TV. No box, no dongle, no TV apps! Your content is instantly available to play on any screen around – at home or at a friend’s house. For online content like movies, music, sports, and news, check out the Flipps app.


いろいろ試してみたのですが、アルバムーバと同じ構成のアプリ(端末とメディアサーバーの写真をグリッド表示&DLNAサーバー機能)は見つからないものですね。
やっぱりいつかiPhone版も作ろうかな・・・

アルバムーバに関する記事一覧

Android 発表、ニュース

スマホとスマホ/タブレットの写真を共有する(アルバムーバ利用編その2)

Published by:

開発小咄

「スマホとスマホ(もしくはタブレット)の写真をたがいに見られるようにする」というコンセプトは、そもそも意味があるのかどうか。
多分そういうアプリを作ろうとする人も必要とする人も、いない気がします。

スマホというものはかなり個人的なツールですし、家族であっても端末を共有して使っている人は少ないですよね。
メーラーやSNSにログインしっぱなしの端末を、家族や友達に自由に使わせることってまず無いと思います。

私もアルバムーバを開発しているときは、あくまでメディアサーバーのクライアントアプリ/ビューワーとして作っていました。
ですが「いろんな端末で撮った写真を自由に選んだり、持ち運びできるAndroidアプリを作ったよ(2)」にも書いたタブレットからスマホの写真を見られる機能をつけた時の、パートナーの驚きのリアクションを見たことで、何か新しい使い方があるのかなと思い始めました。

まず作りながら面白いと思ったのは、テスト用の端末から昔「iD Shoot」という証明写真を撮るアプリを作った時のテスト写真がどんどん出てきたことです。
淡路島に引越してくる前、大阪市に住んでいた時の写真をついつい懐かしく眺めてしまいました。

スマホを買い替えた時って、いちいち写真を移動したりしませんよね。(iPhoneの場合、iCloudで強制的にコピーされてしまいますが)
昔使っていたスマホの写真を見たり、コピーするのに(地味に)便利だなと。

あとスマホで撮った写真を人に見せる時、普段使っているスマホだと見せている時にもポーンと通知が来ますよね。
人に写真を見せるのにアルバムを部屋から持ってくるのではなく、部屋に招き入れて飾ってある写真を見せるみたいな、ちょっとしたぎこちなさがあります。

もし家族共有のタブレットがあれば、それぞれのスマホの写真をそのタブレットで見ることが出来ます。
タブレットをテレビにキャスト(同じ内容をテレビの画面に表示すること。ミラーリング)すれば、家族みんなで写真を楽しむことも出来ます。
みんなで見るのには、やっぱりTVサイズの画面が必要なんですよね。

この端末間の共有は、使ってみないと楽しさがわからない部分がありますので、無料版でも使えるようにしています。
興味をもたれたらぜひ試してみてください。

使い方は簡単で、「Wi-Fiシェアリング」の「+」アイコンをクリックして、開始スイッチをオンにするだけです。
同じWi-Fiネットワークにつながっているスマホやタブレットから見えるようになりますよ。

Wi-Fiシェアリングで共有開始!

Wi-Fiシェアリングで共有開始!

アルバムーバに関する記事一覧

Android 発表、ニュース

デジカメの写真をスマホ&タブレットで共有(アルバムーバ利用編その1)

Published by:

ALBUMova

いよいよ「Wi-Fiシェアリング」の説明です。

まず簡単にどういう技術なのかを簡単に説明しますと、ブラウザでインターネットを見るのと同じで、HTTPを使っています。
ブラウザにページを表示するのはHTMLですが、「Wi-Fiシェアリング」はXMLで情報をやりとりし、UPnP(ユニバーサル プラグアンドプレイ)というプロトコルに沿って動作します。
DLNAというのはUPnP互換の規格で、・・・というつまらない話はここまでにして、まずはデジカメの写真をスマホやタブレット、PCで見られるようにしましょう。

あ、ちなみに「Wi-Fiシェアリング」という言葉は私が勝手に使っているだけで、技術的には「UPnP」「メディアサーバー」「DLNAサーバー」を組み合わせたものです。

デジカメを使っていない人は、スマホとスマホ/タブレットの写真を共有する(アルバムーバ利用編その2)へお進みください。

今回アプリを開発にあたって、身近な人にデジカメの写真をどう管理しているのかインタビューしてみました。その回答はこちら。

  1. デジカメのSDカードに入れっぱなしで、容量が足りなくなったら古いのを消す
  2. Windows、Macに移動する
  3. DVDに焼く

何十人にも聞いたわけではないですが、みんなこれに当てはまるようでした。
NAS(ネットワーク型HDD)を使っている人も、全部クラウド(インターネット上)って人も、もちろんメディアサーバーを使っている人もいません。

 
 

ネットワーク共有フォルダ(簡易NAS)準備

以前は私もパソコンに移動していたのですが(上記2)、家族内で写真を共有したい時に不便なので、無線LANルーターのUSBポートに外付けのHDDをつけて、そこに保存するようにしています。

ネットワーク上に共有フォルダを作ると、同じネットワークの人は誰でもアクセスできる

ネットワーク上に共有フォルダを作ると、同じネットワークの人は誰でもアクセスできる

お使いの無線LANルーターの後ろにUSBポートがありませんか?
バッファロー、コレガ、IODATA、NEC、PLANEXなどいろんなメーカーの多くルーターに、USBポート(とメディアサーバー機能)がついています。

無線LANルーターの裏側にUSBポートがありませんか?

無線LANルーターの裏側にUSBポートがありませんか?

そこに外付けのHDD(なければUSBメモリでもよい!)を挿してみてください。
WindowsやMacからアクセスできるようになるはずです。
見えないよっていう人は、違うPCから試してみたり、ルーターの管理画面(ブラウザからアクセスできる)で設定を確認してみてください。

興味はあるけど、残念ながらUSBポートやメディアサーバー機能がついていなかった・・・という人は、無線LANルーターの買い替えもご検討を。。

 
 

SDカードから共有フォルダへコピー(方法その1)

ネットワーク上の共有フォルダができたら、デジカメの写真をそこへ移動するようにします。
デジカメのSDカードをPCで読み込んで(パソコンにカードの読み取りスロットがない場合、USB接続のカードリーダーを使う)、共有フォルダに画像を保存していきます。

私は今のところ、写真の取り込みにGoogleが提供しているPicasaを使っています。
インポート時に日付フォルダを作ってくれて、直接共有フォルダに出力するよう設定できるので便利です。
SDカード上のインポート済みファイルも削除してくれます。

Picasa

Picasa

Picasaのインポート画面

Picasaのインポート画面

ただ、2015年現在ではMacのサポートが打ち切られ、Windows版もいつまでサポートするかはちょっと分かりません。
いざという時には他に乗り換えようかなと思っています。
 
 

SDカードから共有フォルダへコピー(方法その2)

SDカードをデジカメから取り出して、パソコン経由で共有フォルダにコピーするのは、手間といえば手間ですよね。
EyefiFlashAirといったWi-Fi付きSDカードを使うと、その手間がだいぶ緩和されます。
今のところ私は面倒に感じていないので、普通のSDカードを使っています。そっちのほうが安いですしね。
 
 

SDカードから共有フォルダへコピー(方法その3)

NAS(ナス)を使うと、SDカードを直に挿すだけで自動で取り込んでくれたりします。
独自にメディアサーバー配信が可能ですので、無線LANルーターにUSBポートがない場合はぜひ選択肢に入れて下さい。

 
 

SDカードから共有フォルダへコピー(その他)

これ以外にも、デジカメを直接PCにUSBケーブルで接続したり、デジカメ自体にWi-Fi接続の機能があったりして、多分他にもいろんな方法があると思います。
継続して行う作業ですので、一番手間のない方法を模索しましょう~。

 
 

メディアサーバー上の写真をパソコンから見る

写真を取り込んでもすぐにはメディアサーバーに反映されないかもしれません(内部でインデックスを作ってるので)。お茶の一杯も淹れて、はやる心を抑えつつWindowsの「PC(マイコンピュータ)」アイコンを開いてみましょう。見慣れないアイコンが増えているはずです。
増えてない人は、メディアサーバー機能がOFFになっているかもしれませんので、再度ルーターの設定画面を確認しましょう。

それでも見えないって人は、コントロールパネルの「デバイスとプリンター」を開いて、「デバイスの追加」をクリックすると見つかるかもしれません。

デバイスの追加を試しているところ

デバイスの追加を試しているところ

その他にも、ネットワーク探索が無効になっている可能性もあるかもしれません。

ネットワーク探索を有効にしましょう。

ネットワーク探索を有効にしましょう。

まあ、うまくいかない時は、「PC(マイコンピュータ)」の画面をずっと開きっぱなしにしたら見えるようになったりもするかもしれませんよ(本当に)。

首尾よくアイコンが表示されたら、クリックして開いてみましょう。

メディアサーバーのアイコンをクリックしたところ

メディアサーバーのアイコンをクリックしたところ

順番はいろいろですが、音楽と写真と動画の3つのフォルダに分かれて表示されるはずです。
さらにフォルダを開いていきます。

写真(Photos)を開いたところ

写真(Photos)を開いたところ

音楽と写真と動画のメディアによって異なりますが、ブラウズしやすいように日付ごと、フォルダごと、音楽の場合はアーティストやアルバムごとにフォルダが分かれています。
動画はたいていシーク可能な形で配信されますので(Youtubeのようにシークバーで見たいところへスキップできる)、とても便利です。

Windows8では写真のサムネイルが表示されず(環境による?)、写真選びには使いにくいことになってしまいました。

なぜかサムネイルが表示されないWindows8・・・

なぜかサムネイルが表示されないWindows8・・・

 
 

メディアサーバー上の写真をAndroidから見る

さていよいよ準備が整いましたので、ALBUMova アルバムーバ無料版はこちら)をインストールして、「Wi-Fiシェアリング」を開いてみましょう。

ALBUMovaで表示したところ

ALBUMovaで表示したところ

Windows標準のDLNAクライアントでは不可能な、こんなグリッド表示もできます。

Windows標準のDLNAクライアントでは不可能な、こんなグリッド表示もできます。

ピンチイン・ピンチアウトでグリッドサイズも切り替えられますので、画面サイズや目的に応じて変えてみてください。

さて、私がこんなアプリが欲しいと思っていたのは、最初この部分まででした。
写真を選んでアルバムを作ったり、端末にコピーしてDTPショップに持って行ってプリントできたら便利だなあと。

次のスマホとスマホ/タブレットの写真を共有する(アルバムーバ利用編その2)では、楽しい端末間での共有をご説明します。

アルバムーバに関する記事一覧

Android 発表、ニュース

いろんな端末で撮った写真を自由に選んだり、持ち運びできるAndroidアプリを作ったよ(2)

Published by:

ALBUMova

さてALBUMova(アルバムーバ)というアプリを作ったわけですが。

「メディアサーバー」とか「DLNA」とか「NAS」とか、とにかく知らない人は全然知らない用語ばかりなためか(私も2008年まで知らなかったけど)、パートナーに開発中のアプリを見せても非常に反応が薄く、「デジカメの写真をこれで簡単に見られるんだ」といっても頭に「?」がつきっぱなし。

写真はみんな撮るし、選ぶし、SNSにもアップするんだけど、だいたい「スマホ <---> クラウド」とか「デジカメ <---> ファイルサーバー or パソコン」みたいに、動きが固定的な気が・・・
メディアサーバーを導入することで、一気に写真の移動がアクティブになるのに、一般の人に伝わっていないのは非常にもったいないと思うのです。

そんなわけでパートナーの反応の薄さを見ながら、またニッチなもの作っちゃってるなあ・・・と思っていました。
そんな開発も後半に差し掛かったころ、アプリに写真の配信機能をつけました。
それまではメディアサーバーの写真を見るだけだったのですが、端末そのものをメディアサーバー化して、他の端末から閲覧できるようにしたのです。

配信機能の名前を「端末の写真を配信する」みたくすると、またパートナーの頭にクエスチョンマークが増えそうだったので、「Wi-Fiシェアリング」という名前にして、パートナーに見せてみました。
スマホで写真をとって、タブレットでその写真が見られるんだよーと動かしながら説明していたら、これまで何の反応もなかった彼女は「なんでこっちの写真が、こっちで見られるの?!?!」とすごく驚くじゃあないですか。
私からすると、これまで何度も「メディアサーバー」について説明していたので、何に驚いているのか逆に不思議で驚きですよ。

パートナーの意見を聞きながらメニューの配置も大きく変えて、アプリ名もUNIフォトからALBUMova(パートナーがつけてくれた)という動きのある名前に変えました。
不評だった「メディアサーバー」という名前も使わないようにして、「Wi-Fiシェアリング」に統一しました。
新しい技術が一般の人に伝わるのは、ちょっとしたところからなのかもしれません。

話はちょっと変わりますが、写真を共有したかったら、メールしたりどこかのSNSなりに送ればよいだけですが、なんでわざわざこのアプリを使う必要があるのかということです。

それは、何の認証もサーバーも必要としたくないからです。
すぐ隣りのスマホやPCに写真を移動するのに、これまではなぜかインターネットを経由していたんですよね。
同じWi-Fiにつながっていさえすれば、ピアツーピア(端末間の直接通信)でデータを移動したいわけです。

例えば家族で外出して、それぞれがそれぞれの端末(スマホ、タブレット、デジカメ、携帯ゲーム機)で写真を撮ったとすると、一緒にそれぞれの写真を見ることって意外に難しい(面倒くさい)んですよ。
それぞれ良さそうな写真を選んで、インターネット経由で(SNSやメールでってことですが)交換することは出来ますが、全部をざーっと見ることが出来ないわけです。

そのあたりの分断化って、なんかもやもやしませんか?
私だけかもしれませんが。

今回作ったアプリがこの分断化のすべてを解決するとは思っていませんが、うまくすれば日本中、いや世界中の家庭の写真の楽しみ方を変えられるかもしれませんので、もう少し具体的な使い方について書いていきたいと思います。

アルバムーバに関する記事一覧