44
Copyright © Side Effects Software Inc. 2014 All Rights Reserved. Houdini .OBJ かか .ABC か 2014/5/12 Side Effects Software Inc.

Houdini .OBJ から .ABC へ

Embed Size (px)

Citation preview

Page 1: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

Houdini .OBJ から .ABC へ

2014/5/12

Side Effects Software Inc.

Page 2: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

今回の目的

1. 他アプリケーションで作られたデータを Houdini に読み込み、 Alembic 出出力することにより、 Data Tree を用いて、ライティング & レンダリング ワークフローに組み込めるようにする。

2. 必ずしも Houdini に持ち込むことを想定していない ファイルへの対処方法を理解する。

3. カメラ・ライト・マテリアルの作成 & 編集は、http://slidesha.re/1iBNOB0の 2-4 ( カメラの追加 ) からを参照のこと。

Page 3: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

基本的な流れ

1. OBJ ファイルを読み込む。2. ファイル内のグループ情報を引き継ぐ形で、 Alembic (.abc) に渡すグ

ループ情報を定義。• Name ノードを使って Primitive ( 面 ) 単位のアトリビュートにする。• 元のグループ情報を編集したい場合は、 Group ノードを使用して、排他

的な ( 複数グループにまたがらない ) グループを定義。これには、 Delete ノードとの組合せが必要。

3. Alembic で出力。4. #3 の Alembic を ( 新たな ) シーンに読み込み、 Packed Edit ノー

ドを使って、グループ情報を抽出。5. Data Tree ビューを使って、マテリアルとライティングを定義。

Page 4: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

今回使用する OBJ ファイル

• www.3drender.com にある Challenge #1: Fruit Bowl (.OBJ) をダウンロードして使用。

• これを使うことで、必ずしも Houdini に持ち込むことを想定していない ファイルへの対処方法を理解する。

Page 5: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

この OBJ ファイルの問題点

梨 (Pear) の 実の部分と 軸の部分が同じグループになっている ( 画面 ) 。

リンゴ、バナナ、ブドウのオブジェクトが、 nurbsToPoly[1-122] で名付けられていて、判別が面倒。ちなみに、

• nurbsToPoly23 = リンゴの実• nurbsToPoly40 = リンゴの軸• nurbsToPoly64 = リンゴの葉• nurbsToPoly121 = バナナ 1( 下 )• nurbsToPoly122 = バナナ 2( 上 )

となっているが、ブドウの実と軸はランダム。

Page 6: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

この OBJ ファイルの問題点

• このファイルをそのまま Alembic に変換して、 Data Tree に渡せば、 122 の nurbsToPoly を扱わなければならなくなる。

• これは面倒。

Page 7: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

2 つの解決方法

1. Houdini のノードネットワークですべて対処nurbsToPoly[1-122] のうち、リンゴグループ 3 つ、バナナ 2 つのグループ名を Houdiniの Group ノードで置換、残りは、ビューポート選択によってグループを再編成。

• 利点• テキスト編集する必要がない

• 難点• ノードネットワークが冗長になりやすい。

2. .OBJ ファイルをテキスト編集

.OBJ ファイルで定義されたグループのうち、簡単に変更できる部分をテキストエディタで置換する。

• 利点• 時間短縮。ノードネットワークが単純にな

る。

• 難点• テキスト編集を間違うとデータが読めなくな

る可能性あり。

Page 8: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

今回は テキスト編集 (#2) を使用

• .OBJ で定義されたグループのうち、次を以下のように編集した。

nurbsToPoly23 -> applenurbsToPoly40 -> applestemnurbsToPoly64 -> appleleafnurbsToPoly121 -> banana1nurbsToPoly122 -> banana2

• 編集を加えたのがfruit_renamed.obj 。 編集していないのが fruit_v2.obj 。

Page 9: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

1. Geometry ノードの配置

ジオメトリデータを扱うための大元となる Geometry ノードを作成。実際の編集作業はすべてこのノードの中で行う。

1. ネットワークビューの Scene ビューで、 TAB->Geometry として、 Geometry ノードを配置する。

2. ダブルクリック、または Enterキーを押す、または 'i' キーを押し、中に入る。

3. Geometry ノード (geo1) の中に入ると、 File ノード (file1) があるはず ( 次ページ ) 。

1

Page 10: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

2. OBJ ファイルの読み込み

file ノードを使って、 OBJ ファイルを読み込む。

4. ファイルノードの Geometry File の部分に、 .obj ファイル (fruit_renamed.obj) を指定。

四角で囲われたアイコンをクリックすることで、ブラウザを開いてファイルの場所まで到達、ファイルを選択可能。

5. #4 が終了すると、ビューポート上にオブジェクトが現れる ( 画面はカメラをタンブルした結果 ) 。

4

3

Page 11: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

3. Name ノードの追加

Name ノードを追加することで、OBJ ファイルにあるグループ情報を Houdini の面単位でのアトリビュート値に変換することが可能。

6. file1 ノードから TAB -> Name として Name ノードを追加。

7. パラメータビューの Attribute を name ( デフォルト ) から abcname Class は Primitive ( そのまま )

8. Name from Group を ON9. #8 の結果表示された Group

Mask を "piece*" から "*" に変更。

10. Number of Namings を 1 から 0 にするか、右画像で囲われた 'X' アイコンをクリックして削除 ( 結果画像は次ページ ) 。

7

89

10

6

Page 12: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

4. Details View による確認

Details View により現在のデータの様子を確認可能。

11. Details View をクリック。

12. Primitives アイコンをクリックして面単位でのアトリビュート値を確認。

13. abcname のカラムに、 OBJファイルから取り込まれたグループ情報が面単位で存在していることがわかる。ここには、 apple などテキスト編集したのもあれば、 "nurbsToPoly*" なども混在。

14. shop_material は、 OBJ ファイル内で定義されているマテリアル情報。これは必要ないので、削除可能 ( 次ページ ) 。

11

12

13 14

Page 13: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

5. Attribute ノードによるデータ削除

OBJ から取り込んだシェーディング情報は使わないので削除できる ( しなくとも良い ) 。

15. file1 ノードから、 TAB -> Attribute として、 Attribute ノードを作成、 name1 ノードとの間に挿入する。

16. Primitive タブに行く。17. Delete Attribute の部分、三角

形のアイコンをクリックして、shop_materialpath を指定。

name1 ノードのディスプレイフラグがオンになっていれば、Details Viewで、 shop_materialpath のカラムが削除されたことが確認できる。file1 をハイライトすれば、元データが確認可能。

15

16

17

Page 14: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

ここから 3 つに場合分け

ここから先、扱うデータを次の 3 つの場合に分けて操作していく。

1 グループ名がそのまま使えるもの

グループ名が nurbsToPoly* と梨 (Pear) ではないもの。そのまま Name ノードに通す。

2 Pear ( 梨 ) 実の部分 (Pear) とヘタ (Pearstem) の 2 つにグループ分け。

3 nurbsToPoly*

nurbsToPoly というグループ名をすべて削除、扱い易いグループ 3 つ (grape1, grape2, stems) に再編成。実の部分 (grape1 と grape2) は、 2 回に分け手作業で選択。残りを一つのグループ (stems) にまとめる。

それぞれのグループ化には、 Delete ノードを使用。

Page 15: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

6. グループ化 1 ( そのまま通すもの )

18. attribute1 から、 TAB -> Delete として、 Delete ノードを作成。

19. Group にnurbsToPoly* Pearと二つのノード名をスペースで分けて挿入。Operation は Delete Selected のまま。

name1 ノードを選択して、 Details View を見れば、 abcname 以下に、Big_Stem, Plate, apple, appleleaf, applestem, banana1, banana2, cherry_grp_1, cherry_grp_2, orange, shee1, sphere[2-7] が確認できる。

20. delete1 を others と名称変更しておくと後々わかり易い ( 次ページ ) 。

18

19

Page 16: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

7. グループ化 2 ( 梨 ): Delete ノード作成

21. 再び attribute1 ノードから、TAB -> Delete として、 Delete ノードを作成。

22. Group に Pear と名前を挿入。

23. Operation を Delete Non Selected に変更。

これにより、 Pear オブジェクトが他から分離された。

20

22

21

23

Page 17: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

7. グループ化 2 ( 梨 ): 選択モードの変更

24. 右画面上、箱で囲われた Geometry Selection Mode アイコンを右マウスボタンでクリック。

25. Mode は Primitives 。

26. Select Connected Geometry をオンにする。

#26 により、形状の面どこか一箇所を選択すれば、つながった面がすべて選択できるようになる。

24

25

26

Page 18: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

7. グループ化 2 ( 梨 ): 面の選択、グループの作成

ネットワークビューで、 delete2 ノードがハイライト ( 選択 ) されていることを確認し、

27.ツールボックスで選択ツールを起動。

28. ビューポート上で、梨のヘタの部分どこか一箇所を選択すると、ヘタ全体がハイライト選択される。

29. この状態、ビューポート内で、TAB -> Group として グループノードを作成する。

選択結果を作成するノードに直接渡すために #29 は、必ずビューポート内で行う。

30. これにより、 group1 ノードが作成された ( 次ページ ) 。

27

2829

Page 19: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

7. グループ化 2 ( 梨 ): グループ編集 1

31. Group Name のチェックボックスがオンになっていること( デフォルト ) を確認の上、名前を Pearstem とする。

Pearstem の 'P' は、のちほど Pear* で両方選択できるように、大文字。

30

31

Page 20: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

7. グループ化 2 ( 梨 ): グループ編集 2

32. 同じ group1 ノードの Combine タブに行き、

33.左の Group 名に Pear ( プルダウンから選択可能 )

34. 画面で箱で囲われたアイコンをクリック、

35. 右の Group 名に Pearstem ( プルダウンから選択可能 ) を挿入。

こうすることで、梨の実とヘタの部分が排他的にそれぞれ別のグループとなった。

36. この group1 は pear と名前を変更しておくと後々わかり易い ( 次ページ ) 。

32

34

33 35

Page 21: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

8. 結果のマージ

ここでグループ化 1 の結果とグループ化 2 の結果を一度まとめておく。

37. others ノードを選択し、 TAB -> Merge で Merge ノードを作成。

38. 出来たノード (merge1) を name1 との間に挿入。

39. pear ノード (#36 で名称変更 )を merge1 に接続。

これにより、二つのグループが一緒になった。

ここまでの作業を保存しておく良い。(obj2abc_begin.hip)

3637

38

39

Page 22: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

9. グループ化 3: nurbsToPoly* その 1

40. 再び attribute1 ノードから、TAB -> Delete として、 Delete ノードを作成。

41. Group に nurbsToPoly* とノード名を挿入。

42. Operation を Delete Non Selected に変更。

これで、 nurbsToPoly ではじまる名前のオブジェクトが分離された。

43. このノードを nurbsToPolyG と名前を変更しておく ( 画面は次ページ ) 。

40

41

42

Page 23: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

9. グループ化 3: nurbsToPoly* その 2

ここでは、 Group のプルダウンリストに羅列される nurbsToPoly1 … nurbsToPoly120 までのグループ名を削除し、これから作るグループ名へのアクセスを容易にする。

44. ネットワークビューでnurbsToPolyG (#43 で名称変更 ) から、 TAB -> Group として Group ノードを一つ作成。

45. できた group1 ノードの Group Name パラメータの左横にある チェックボックス ( 作成時はオン ) をオフにする。これにより新しいグループ名が追加されるのを防ぐ。

43

44

45

Page 24: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

9. グループ化 3: nurbsToPoly* その 3

45. #44 で作成した group1 ノードの Edit タブに行く。

46. さらにその中の Delete タブに行く。

47. 削除する Group 名として、 nurbsToPoly* を入力。

これにより、 group1 以下に今後作成されるノードから nurbsToPoly* グループを参照することは出来なくなり、現在ビューポートに表示されているオブジェクトは特にどのグループにも属さない ( よってこれから作る ) 。

48. このノードを groupRemoved と名前を変更しておく ( 画面は次ページ ) 。

4546

47

Page 25: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

9. グループ化 3: nurbsToPoly* その 4

49. groupRemoved (#48 で名称変更 ) が選択されているのを確認してから、ビューポート画面右側の大きな房のぶどうの実を、「 7. グループ化 2 ( 梨 ): 選択モードの変更」 (#24~26) の手順を使って一つずつ選択。

カメラビューをタンブルする際には、 SPACE + G キーを押すと、ビューのピボットが選択物の中心となる。

50.全部選択すると、 Primitives の選択数が、 25,380 となる。

51. この状態、ビューポート内で、TAB -> Group として グループノードを作成する。

52. これにより、 group1 ノードが作成された ( 次ページ ) 。

49

50

51

48

Page 26: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

9. グループ化 3: nurbsToPoly* その 5

53. #52 によって、作成された Group ノードの Group Name を grape1 と変更する。

54. ノード名も grape1 とする。

52

54

53

Page 27: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

9. グループ化 3: nurbsToPoly* その 6

55. ネットワークビューで、 grape1 から、 TAB -> Delete として、 Delete ノードを作成する。

56. Group に grape1 を追加

57. Operation を Delete Non Selected とする。

58. この Delete ノードを grape1_x と名前を変更し、merge1 ノードに接続する。

このように Delete ノードを経由してマージすることで、 grape1 で定義した面情報だけを merge1 以下に渡すことが出来る。

56

57

55, 58

Page 28: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

9. グループ化 3: nurbsToPoly* その 7

#49 ~ #52 の手順を数の少ないブドウの実の方でもおこなう。

59. grape1 をネットワークパネルで再度選択、ビューポート画面左側に残ったぶどうの実を、 #24 ~ 26 の手順で一つずつ選択。

60.全部選択すると、 Primitivesの選択数が、 5,940 となる。

61. この状態、ビューポート内で、TAB -> Group として グループノードを作成する。

62. これにより、 group1 ノードが作成された ( 次ページ ) 。

63. この group1 を grape2 と Group, Group Name の 2箇所で改名 ( 画面は次ページ ) 。

59

60

61

Page 29: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

9. グループ化 3: nurbsToPoly* その 8

64. #63 で改名した grape2 が、grape1 と grape1_x をつなぐ線からは外れていることを確認。

65. もし間に挿入されているのであれば、ノードを選択、左右に振って外し、 groupRemoved とあらためて接続。

64-65

63

63

Page 30: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

9. グループ化 3: nurbsToPoly* その 9

#55 ~ #58 で行ったことを繰り返し、 grape2 も Delete ノード経由で merge1 ノードに接続する。

66. ネットワークビューで、 grape2 から、 TAB -> Delete として、 Delete ノードを作成 ( 右画面では #69 により既に改名 ) 。

67. Group に grape2 を追加68. Operation を Delete Non

Selected とする。

69. この Delete ノードを grape2_x と名前を変更し、merge1 ノードに接続する。

このように Delete ノードを経由してマージすることで、 grape2 で定義した面情報だけを merge1 以下に渡すことが出来る。

67

68

66

69

Page 31: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

9. グループ化 3: nurbsToPoly* その 10

残ったヘタをグループ一つにまとめる。ここでの手順は、 grape1, grape2 とは逆。つまり、 Delete 、 Group の順で作成。

70. grape2 をネットワークパネルで選択、 TAB -> Delete として、 Delete ノードを作成。

71. Group に grape1 と grape2 を追加。

72. Operation は Delete Selected のまま。これにより、軸の形状だけが抽出される。

73. このノードを stems と改名。

71

72

70

73

Page 32: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

9. グループ化 3: nurbsToPoly* その 11

74. stems をネットワークパネルで選択、 TAB -> Group として、 Group ノードを作成。

75. Group Name を stems とする。

76. このノードを stems_g と改名。

77. stems_g を merge1 に接続。

これで、すべてのグループ化が終了。

75

74

76

77

Page 33: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

10. グループ化終了 : まとめ

78. merge1 ノードを選択、パラメータビューには、このノードに接続されているノード名が表示される。

79. ディスプレイフラグもこのノードにすると、ビューポートにはすべてのジオメトリが表示され、総 primitives 数は、 106,986 と入力と同じになっている ( はず ) 。

もし数値が異なるのであれば、どこかで間違えている。

80. また、 name1 を選択し、 Details View (Primitives) をみれば、すべての面にグループ名が入っている ( はず ) 。

空白があれば、どこかで間違えている。

78

79

Page 34: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

11. ROP Alembic の追加

81. ディスプレイフラグを name1 に設定。これは非常に重要。

82. ここまでシーンファイルを保存していないのであれば、保存 (File->Save) を実行する (obj2abc_completePartitions.hip) 。

これにより $HIP ( シーンファイルのあるディレクトリ ) が決定 / 更新され、 Alembic ファイルの書き出される場所がわかり易くなる。

83. name1 から、 TAB -> ROP Alembic Output を選択。

81

83

Page 35: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

11. ROP Alembic の設定 その 1

84. Alembic file の名前を設定する。拡張子 (.abc) を忘れないこと。

84

Page 36: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

11. ROP Alembic の設定 その 2

右横のスクロールバーを使って パラメータビューの下の方に進み、85. Partition Mode を

Use Attribute Valueに変更する。

86. Partition Attribute を abcnameに設定 (#7 で定義した ) 。

87. 再びパラメータビュー上部に戻り、 Render ボタンをクリックし、ファイルを出力。

85

86

87

Page 37: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

12. Alembic の読み込み : その 1

88. Scene View に戻り、今まで作業をしてきた geo1 のディスプレイフラグを ( 右端の青い部分 )をクリックしてオフにし、非表示にする。

ビューポートからジオメトリが消える。

89. TAB -> Geometry で新しく Geometry ノード (geo2) を作成。

88 89

Page 38: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

12. Alembic の読み込み : その 2

90. #89 で作成した geo2 ノードの中に入る。ここに file1 ノードがあるが、使わないので、削除しても無視しても構わない。

91. TAB -> Alembic を実行し、 Alembic ノードを作成。

91

90

Page 39: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

12. Alembic の読み込み : その 3

92. File Name に先ほど (#84) で書き出した ファイル名を指定。

93. alembic1 ノードのディスプレイフラグがオンになっていれば、ビューポートにジオメトリが表示される。

92

93

Page 40: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

13. Packed Edit + Data Tree

94. alembic1 ノードから TAB -> Packed Edit を実行。

95. #94 によって作成された packededit1 にディスプレイフラグを設定。

96. パネルタブの右端にある '+' ボタンを押してメニューを表示。New Pane Tab Type-> Data Tree ( 下から5番目 ) を選択。

96

94-95

Page 41: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

14. Data Tree

97. 表示された Data Tree パネルで Object Appearance を選択。

右図のように、定義した名前がすべて表示され、これを元にライティングおよびシェーディングの編集が可能。

Page 42: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

ここまで

• 続き ( カメラ、ライト、マテリアル追加・設定 ) は

http://slidesha.re/1iBNOB0

の 2-4 ( カメラの追加 ) からを参照。

• 基本的な考え方は、他のファイルフォーマットでも同じ。

• やり方は一通りではなく、いくつもある。

• 自分の好みの方法があればそのアプローチを取って構わな

い。

Page 43: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

ftp://ftp.sidefx.com/public/sidefx_jp_obj2abc.zip (17MB)• Houdini 13.0.401 で作成。1 fruit_out.abc この手順通りに出力した Alembic ファイル

2 fruit_plain_output.abcfruit_v2.obj をそのまま、 NurbsToPoly に修正を加えずに Alembic ファイルとして出力した結果 。

3 fruit_renamed.objfruit_v2.obj にテキスト編集を加えたファイル (8 ページ参照 ) 。

4 fruit_v2.mtl, fruit_v2.objオリジナルの .OBJ ファイルとマテリアルファイル(.mtl)

5 obj2abc_begin.hip 「 8. 結果のマージ」 (21 ページまで行ったもの )

6obj2abc_completePartitions.hip

「 11. ROP Alembic の追加」 (#81 まで行ったもの )

7 obj2abc_final.hip 「 14. Data Tree」 (41 ページまで行ったもの )8 simpleout.hip #1 の fruit_out.abc を出力したシーンファイル

9 simpleout_in.hip#7 のファイルから、 #1 の .abc ファイルをさらに読み込んだもの。

シーンファイル

Page 44: Houdini .OBJ から .ABC へ

Copyright © Side Effects Software Inc. 2014 All Rights Reserved.

この項終了

質問は [email protected] まで。