[Adobe XD]データを使いこなそう

**2017年4月更新で一部挙動が変わっています**

Adobe XDのキャッチーな機能その何番目か、外部ファイルによるデータのデザイン取り込み、使っていますか？

> [Adobe XD Advent Calendar](http://www.adventar.org/calendars/1485) 8日目の記事です 

※本稿は、[Adobe XDのテキストデータとリピートグリッド](http://qiita.com/risay/items/fe465a8ef511c7466a9a)のなかで説明しきれなかった挙動をとりあえげて新たに説明するものです。

# データとリピートグリッド
まずは公式の[オンラインヘルプ](https://helpx.adobe.com/jp/experience-design/help/create-repeating-elements.html)を見てみましょう。
一番下の「**リピートグリッドへのテキストファイルのドラッグ**」部分
> グリッドにテキストファイルをドラッグするだけで、リピートグリッドのプレースホルダーテキストを置換できます。
> 
> 1. テキストファイルのテキストを書式設定し、テキストを次のグリッドに流し込む場所に改行を追加します。
> 1. リピートグリッドにテキストファイルをドラッグします。
> 
> リピートグリッドは、テキストファイルと同じテキストのシーケンスでデータが設定されます。**ファイル内のテキストの行数よりグリッド数が多い場合**は、**シーケンスが繰り返され**ます。

動作を見れば明らかなの十分なのですが…使う上で覚えておきたい、太字の部分を掘り下げていきます。

## テキストファイル
Finderやデスクトップからドラッグ＆ドロップでセットしますが、ファイルの注意事項は次の通り。

* 改行ごとに1件のデータになるので、改行付きの流し込みはできない
* 文字が1つもない行の改行は無視される
* 空にしたい場合は、半角か全角の空白をいれる
* 拡張子はOSがテキストファイルと認識するもの(.txt)を必ずつける

Adobe XD上でのイメージはこんな感じになります。

![image](https://qiita-image-store.s3.amazonaws.com/0/10363/3abe77b0-cfc8-d28f-01ad-ce306391b539.png)

誤解しやすいですが、リピートグリッドはデータを管理しているのでなく、インデックスを管理しています。

## テキスト以外のデータ：ラスター画像ファイルのドロップ
Adobe XDがシークエンスデータとして扱うのは、テキストファイルだけじゃありません。
クリップマスクと思われている機能ですが、JPEG/PNG/GIFなどのラスター画像ファイルをFinderなどからドラッグする機能は、テキストファイルの中身と同じくシーケンスのあるデータ扱いの機能になります。
![image](https://qiita-image-store.s3.amazonaws.com/0/10363/f7d6be7f-2057-27e1-87f7-baf394111dd4.png)
Finder上で掴んだラスター画像ファイルがリストのメンバーとなります。4つ選んだら、4つの画像が繰り返し表示される仕組みで、挙動だけ考えるとテキストと一緒です。

## データを変更する

1. ファイルをもう一度ドラッグ＆ドロップする
2. (テキストのみ)その場で編集する

テキストファイルからのシーケンスデータは、Adobe XD上で変更してもシークエンスの中のデータが変わるだけです。元のファイルは変更されません。

![ezgif.com-video-to-gif.gif](https://qiita-image-store.s3.amazonaws.com/0/10363/f1f4095e-815c-503f-0f31-d58f64ae1cd3.gif)

2の方法は変更はできてもデータ追加はできないので、リストの項目を増やしたい場合は、一度テキストファイルを修正してドラッグ＆ドロップし直しましょう。

ラスター画像は、いつの頃からかかなり柔軟に写真の差し替えや、シークエンスへの写真追加ができるようになりました。

![ezgif.com-optimize.gif](https://qiita-image-store.s3.amazonaws.com/0/10363/8ff9b86a-9f26-2dab-16fc-e5fb11fccff0.gif)

しかし、テキストと違ってAdobe XD上での編集はできません。ラスター画像は塗りに反映されますがどうなるかはこれから紹介します。

**2017年4月更新はデータから切り離す手段がほぼなくなっています。**

## データから切り離す

あまり考えたことないかもしれませんが、ドラッグ＆ドロップで渡したシーケンスデータからテキストオブジェクトや画像を切り離してデータリンクをなかったことにする事ができます。「これを知っているとお得」、ではなく、「**これはやらないように気をつけて**」という話で、意識して使うことはまずありません。

### ~~リピートグリッドを解除~~

~~リピートグリッドを解除すると、表示を保ったままシーケンス情報だけを消すことができます。リピートグリッドとしてのメリットも失われるので、縮小後の画像をまとめて書き出したいとかかなり特殊なときにしか使えません。~~

### ~~グループ化してグループを解除する~~

~~データから切り離された上に、選択した内容ですべてのアイテムが書き換わります。~~

![ezgif.com-optimize (1).gif](https://qiita-image-store.s3.amazonaws.com/0/10363/5c9fa00a-7bc7-0ae2-1367-a4631cd5361b.gif)

余談ですが、リピートグリット中のオブジェクトに対してデータセットを行ってない場合はグループ化した瞬間にすべて同じテキストに変更されます。例えば、リピートグリッド中の前項目で固定になる見出しが途中で変わったときによく使っています。

![ezgif.com-video-to-gif (1).gif](https://qiita-image-store.s3.amazonaws.com/0/10363/3b8f7e45-c500-e2b6-d7e5-c2288794f80c.gif)


### (ラスター画像のみ) 塗りを変更する
テキストのように一つのアイテムだけ塗りつぶしに変えよう…なんて考えると、リピートグリッド内のそのシェイプすべてがラスター画像でなく塗りつぶしになります。

# 最後に
簡単なテキストファイルからのデータ挿入ですが、暗黙の表示ルールが幾つかあります。知っているとちょっとだけ制作の疑問が減る情報を集めましたがいかがでしたでしょうか？
ファイルからのダイレクトデータ挿入について理解が深まれば幸いです！

### おまけ
[AEMXD](https://blogs.adobe.com/conversations/2016/03/summit-sneaks-you-have-to-see.html)と呼ばれる、[Adobe Enterprise Manager(以下AEM)](http://www.adobe.com/jp/marketing-cloud/enterprise-content-management.html)とのデータ連携が2016年3月に紹介されました。日本ではマーケティングクラウドのイベントで紹介されたものです。
AEMで管理しているコンテンツデータをそのままAdobe XDのUIをしたアプリに流し込むことができ、そこからモバイルアプリを書き出せるというようなものです。AEMは残念ながらその名の通り企業向けのサービス。比較的個人向けなAdobe Creative Cloudで使えるAdobe XDにも入ってくるといいなぁと思います。