ただの備忘記録

忘れないように記録を残します。
忘れるから記録に残してます。
そして、その記録が役立つといいかな。

漫画の制作スタッフ

2019年11月22日 | コラム

先月まで5年間、漫画の制作スタジオでスタッフとして働いていました。
経理事務として入社し、作業マニュアルの作成、仕上げの手伝い、作画データの管理をしていました。
作品の内容については書けませんが、漫画の現場でどんな作業が行われているのか、書き記しておきたいと思います。


私のいた現場は、ネームはアナログ制作で、それをスキャナで取り込んで、以降の作業をデジタル化していました。
まずは、全体的な作業の流れを確認してみます。

【漫画制作の全体の作業の流れ】

①ネームの作成
 漫画家がストーリーを考えてネームを作成します。
 ネームは簡略化された絵でストーリーの進行や構成を確認するために作られます。段階を踏んでストーリー、演出、コマ割り、台詞が決まっていきます。
 出版社の編集者との打ち合わせにもネームが使われています。

②デジタル化
 ネームをスキャナで取り込んで、パソコン上でデジタル作業をするための準備をします。
 コマ割りもパソコン上で作業して、各コマにネームを割り付けます。

③作画作業
 ネームの絵はかなりラフに描かれていますので、下書きや清書が行われます。
 下書きは、どこに何を描くかを決めたり、スタッフへの作業指示として描かれることもあります。
 各コマの絵を清書して完成させていきますが、デジタル作業では背景、人物、書き文字を別に描いて重ねます。

④仕上作業
 清書が終わった絵の線のはみ出しを修正したり、トーンの貼り付けなどを行います。
 絵を重ね合わせているので、マスキングをしたり正しく重ね合わせが見えるように補正をします。

⑤入稿作業
 漫画の作業をしたデータを入稿用のデータに出力します。
 デジタルデータはメールで送信して、入稿が完了します。


ざっと全体の流れを確認しました。
作業は漫画家とスタッフの連携作業になっています。
その中でスタッフに任される作業がいくつかあります。

【スタッフの作業】

①作画作業
 漫画家が下書きをしたものをスタッフが清書をする場合、逆にスタッフが下書きをして漫画家が清書をする場合があります。
 例えば、人物のポーズを漫画家が下書きとして描き、スタッフが服を清書したり、また、背景や小物をスタッフが描いて、漫画家が演出を加えてコラージュしたりということがあります。
 作画スタッフは、アナログとデジタルの両方の作業があると思っていいでしょう。
 デジタル作業の現場では、原稿用紙に直接絵を描くことはありませんが、絵の構成要素を別々に描いて組み合わせることができるので、作画スタッフは背景だけ、小物だけを描くことがあります。
 漫画家が描いた線をなぞって清書の線で描き直すということもあります。

②仕上作業
 作画ができないスタッフでも、仕上げならできるということがあります。
 ゴミ取り:スキャンしたときに埃や汚れが画面に表示されるので、それらをクリーンナップします。
 素材の貼付:パーツで分けられた絵は、素材として残されているので、使い回しができます。それらを貼り合わせます。
 作画の補正:線のはみ出しを直します。絵の重ね合わせの修正やマスキングをします。
 ベタ入れとトーン:影の部分にベタやトーンを入れたり、服装や背景にトーンを入れます。

③3Dモデルの製作
 漫画の小物や背景を3Dモデルで作成したり、構図に合わせて配置する作業があります。
 小物や背景を3Dモデルで用意するメリットはかなり大きく、角度を自由に変更できるので、同じ場面でも背景を描き直さずに構図を変更することができます。
 3Dモデルの作成に時間がかかったり、レンダリングで綺麗に漫画用の線が表現できないことがあるので、下書きとして簡便に利用することもあります。

④管理作業
 デジタル作業では、誰がどの作業をしているのか、また作業とデータを段階的に管理する必要があります。
 素材管理:デジタル作業では過去に作成した絵のパーツを素材として残して置くことで、何度でも使い回しが可能です。素材を整理して、検索しやすくしておくのも重要な作業です。
 スタッフの管理:スタッフが増えると事務的な作業も増えます。
 作業マニュアル:スタッフの作業の知識や質を揃えるため、また作業の流れを把握するためにもマニュアルは重要です。

このほか、私のいたスタジオでは、昼食と夕食を作ってくれる調理スタッフがいました。
私自身は上記の仕上作業の簡便なところと、管理作業をしながら、経理と人事の業務をしていました。

デジタル作業の中でも3Dモデルは特殊だと思いますが、非常に便利な機能でありながら、時間も手間もかかる作業であり、締め切りのある連載作品だとコストが折り合わない部分でもあります。
漫画専用の3Dデータもありますので、データの製作は行わず、データを購入してレイアウトする作業になるかもしれません。

管理作業は専任スタッフを置くよりも、誰かが兼任するケースが多いのではないかと思います。


アニメの現場もスタッフの作業が細かく分かれていますが、漫画の場合、製作期間が短いためあまり役割分担が多くありません。
それでも、作画だけがスタッフの仕事ではないため、特にデジタル作業の現場であれば経験のない人が参加することも可能だと思います。

コメント

ハローワーク(認定日)

2019年11月20日 | 日記

今日、初めて失業手当の認定日に行ってきました。

雇用保険の失業手当をいただくには、認定日が重要になります。
必ず決められた日にハローワークへ行って、認定のための書類を提出します。

退職してから失業の認定までの流れを確認してみると以下の①〜④のようになります。

①退職した企業から離職票を受け取る。
 受け取りが遅れると手続きが遅れるので、支給開始が遅くなるので注意。

②離職票をハローワークへ提出する。
 ハローワークカード、雇用保険の失業給付受給資格者のしおりをもらう。

③雇用保険説明会
 雇用保険受給者資格証、失業認定申告書、受講証明書をもらう。

④最初の認定日
 以後、4週ごとに認定日が設定される。

認定日までに、失業者は求職活動を行わなければなりません。
そして、認定日には、活動の証明書を提出したり、就労の申告など行います。

認定が終わってすぐに、求職相談をお願いしました。現況の確認ということで、あまり希望の職種については話が進みませんでしたが、高齢者向け求職セミナーを紹介していただきました。
ハローワークに設置された求人情報の端末を使って、いくつか求人情報を選んで、資料をもらって帰りました。条件が合いそうであれば、ハローワークで紹介状を出してもらい、面接を受けることになります。
自宅でもハローワークの求人情報をインターネットで検索できるのですが、ハローワークの端末でのみ開示されている情報もあるそうです。

現時点では、滋賀に帰ることを前提に仕事を探しています。
埼玉を中心にして交通や生活の利便性のある地域にも魅力があるので、仕事と生活面での両立ができるように考えたいと思っています。

コメント

漫画の原稿と原価計算

2019年11月05日 | 日記

先月で、漫画のスタジオを退職し、日々簿記の試験に向けて勉強中です。

改めて原価計算の複雑さを実感しているのですが、以前から漫画の原稿はどうやって利益を計算すると良いのか考えていました。

基本的には、直接原価計算の考え方で、貢献利益を算出します。これは各原稿ごとの利益ともいえます。
最終的に費用の見積額から逆算して、利益を出すための印税額と発行部数を計算してみます。

利益を計算する場合、まず収益と費用を集計して、その差額を利益(損失)として算出します。

①収益になるもの(売上)

収益は原稿料だけなので、一見単純そうに見えます。
よく言われるように、原稿料の赤字を単行本の印税で賄うという状態の場合、印税収入も勘案する必要があるのですが、何話分が本になって、幾らで、何冊発行されるのか、予測するしかありません。

例:原稿料 10,000円×24ページ

  印税:単行本800円、1万部、8話掲載(192ページ) 印税率10%

  1話あたりの収益は、原稿料24ページ分と単行本1話あたりの印税で計算します。

  原稿料 240,000円+印税100,000円=340,000円

こうして計算例を見ると予測の部分である印税の占める割合が大きいことが分かります。また、発行部数に比例して金額が変わるので、いかに正確に予測をするかが重要なポイントになります。(金額に幅を持たせる必要があるかも)

②費用になるもの(売上原価、売上変動費)

費用というのは、材料費、労務費、経費を計上するのですが、原則的に直接的な費用だけを考えます。
というのも、スタジオの家賃や光熱費、諸々の税金など原稿の執筆に直接影響しない費用もあるからです。これらは間接費と言って、会社の様々な活動に大して割り当てるべき経費となります。貢献利益の計算では考えません。

漫画の原稿製作では、材料費はかなり少ないので計算から除外した方がいいでしょう。
アナログ作画の場合、鉛筆、インク、紙を消費しますが、鉛筆の芯やインクをどれだけ消費したか測るのは現実難しいのです。消費量が多くて確実に計算できるなら入れるべきですが、原稿1話分では大きな費用にはなりません。
デジタル作画の場合、パソコンやソフトウェアを使っていますが、これも原稿1話分という区切りはできません。将来に渡って長く使用するからです。例えば、確実に10年で買い換えるものなら、1年分はすぐに計算できます。さらに、1年の間に完成する原稿が何話分あるかによって、1話分に相当する原価が変わります。これも間接的費用なので、計算には入れません。

そうなると何が費用になるのか。その大部分は労務費です。いわゆる人件費となります。
原稿の完成までの時間と人数と時給が分かれば、それらを掛け合わせることで計算することができます。
ただし、これも難しいところがあります。
スタッフの多くは時給で仕事をしているので、時給×作業時間をスタッフの人数分計算できます。

  スタッフの1話分の労務費は、時給×作業時間×人数(時給や作業時間が異なる場合は、一人ずつ個別に計算する)

問題は漫画家自身の時給と作業時間です。
漫画の原稿を描く時間は把握しやすいのですが、アイデアを構想する時間があります。いわゆるネームが完成するまでの作業は、スタッフにはできない作業なので漫画家が一人で、場合によってはどこかに籠もって黙々と作業します。それらの作業時間を確認する必要があります。
次に漫画家自身の時給ですが、事業主である漫画家は時給で働いていません。そこで一月、または一年分の給与額から、同じ期間で完成する原稿の話数の時給を算定します。

  漫画家の1話分の労務費は、月給÷一月の完成原稿話数

例:漫画家の月給与が50万円で、月に原稿2話を完成させる場合、25万円を1話分の直接費用とします。

  スタッフは3人で、全員時給は1,000円、32時間作業したとすると、96,000円となります。

  原稿1話分の原価 漫画家 250,000円+スタッフ 96,000円=346,000円

③利益の計算(貢献利益)

収益と費用の差額を計算します。

例:①340,000円-②346,000円=▲6,000円(▲はマイナスの表記)

今回の例では、6,000円の赤字となります。

もし、印税収入がなかったらどうなるでしょうか。

例:①240,000円-②346,000円=▲106,000円

大幅な赤字となってしまいます。

では、スタッフを無くしてみるとどうなるでしょうか。

例:①240,000円-②250,000円=▲10,000円

原稿料は出版社によって異なりますし、掲載の媒体によって作画するページ数も変わってきます。
貢献利益は、それらを直接的に比較して、どの仕事が利益を出せるか比較するのに向いていると思います。
間接的費用は、どの仕事をする場合でも、月々かかる経費なのでそもそも比較計算に入れる必要がありません。

④貢献利益と損益分岐点

計算例では収支が黒字にはなりませんでしたが、例示でしかないので細工はしていません。実際にはもっと経費がかかることかと思います。
実際には、差額が黒字になるように考えて仕事を増やしたり人件費を減らしたりすることになります。

貢献利益が黒字になったとしても、安心はできません。そこから間接的費用が出ていくからです。
①のように収益に印税まで含めるということは、ほとんどの収益が入っているということです。
②の費用には直接的費用だけを計上しているので、その他の間接的費用を貢献利益で賄わないといけません。

貢献利益額と間接的費用が同じ金額になる場合、それを損益分岐点といいます。
貢献利益が間接的費用より大きくなると総利益は黒字となり、下回ると赤字となるので収支の分岐点となります。

例:月間の間接的費用が30万円の場合、月に原稿2話分が完成する予定なので、1話あたり15万円を間接的費用と考えます。
  そうすると貢献利益も15万円必要になります。

  ②の直接的費用は変わらない場合、必要な収入は346,000円+150,000円=496,000円です。

  ①において原稿収入が変わらないとすると、印税で256,000円必要となります。

  1冊あたりの印税は 800円×10%=80円、1話分だと10円です。

  発行部数を逆算すると25600部となります。単行本がそれ以上発刊されれば黒字になるという計算です。

例示では1話分で計算しましたが、これを月単位、年間単位でやるのが通常の経理で行う作業になります。
ただし、試算表では入金や出金のタイムラグがあるので、原稿1話分を軸に経費を算出する方が分かりやすいと思います。

 

コメント

ネットプリントを使ってみた

2019年10月14日 | IT全般

プリンタを持っていないので、コンビニのマルチコピー機を使ってプリントすることにしてみました。

①USBメモリを使ってみる

文書はWordからPDFに保存をして、手持ちのUSBメモリ(FAT32)に入れました。
PDFファイルは3ページあります。機器によって対応するバージョンが明記されていますので、確認すると「1.3」となっていました。

近所のスーパー(ヨーカドー系列)にあるマルチコピー機を使ってみました。
最初に文書印刷を選び、10円を入れてから、USBメモリを挿しこみます。液晶パネルには、隠しファイルも含めてリストが表示されました。
目的の文書を選択して、印刷を待っているとエラーの表示で印刷ができません。
データを選ぶ前に、1枚の印刷料金しか表示されないくらいなので、複数ページのデータに対応しないのではないかと思われます。

次に、セブンイレブンに行ってみました。
文書印刷を選んで、記憶媒体を選んでからUSBメモリを挿します。
しかし、いつまで経っても次の画面に移行しません。アクセスランプはずっと点滅していました。
USBメモリのフォーマットが対応しなかったのかもしれないので、問い合わせをしておきました。

ゼロックスより対応するフォーマットについて以下の返答をいただきました。

お問い合わせの件ですが、
マルチコピー機で対応しているUSBメモリのファイルシステムは、
FAT16、FAT32、NTFSの3種類となります。

また、マルチコピー機にてUSBメモリーをご利用になるには、
いくつかの制限がございます。

・パスワードの設定があればご使用できません。
・通信機能など複合タイプはご使用できません。
・USBポートを介したハードディスクは使用できません。
(一般にUSBキャッシュメモリーと呼ばれるものはご使用できます)
・USB内にドライブレター(ドライブ割り当て)等の設定があると
ご利用できない場合があります。
・USBメモリーのコンテンツにアクセスするために別途ユーティリ
ティソフトが必要なUSBメモリーは動作保証外となっております。

上記制限をクリアしているUSBメモリーであれば、ご利用いただけるかと存じます。

②ネットプリント

インターネット経由でデータをマルチコピー機で印刷することができます。
自宅のMacを使って、セブンイレブンのネットプリントのWebサイトに登録しました。
PDFファイルをネットプリントのサイトに送ります。
試しにDropbox経由でiPhoneを使って転送もしてみました。

プリント待ちのリストに送信したファイルが表示されると、予約番号が発行されてページ数と料金も表示されます。
1ページ、20円でした。USBメモリで持っていくより2倍の料金となっています。

セブンイレブンに行ってマルチコピー機に予約番号を打ち込むと料金が表示されて、印刷することができました。
これで無事に印刷物が手に入りました。
それにしても、余計な手間をかけて料金が増えるのでは納得がいかないので、USBメモリでもちゃんと印刷できることを確認しておきたいと思います。

③SDカード

microSDをSDカードのアダプタに付けてセブンイレブンに持って行きました。
文書印刷を選択し、SDカードを挿すとファイルが表示され、目的のPDFファイルを選んだところちゃんとページ数が表示されました。
問題なく1ページ10円で印刷ができました。

コメント

【iPhone】音量についての要望です

2019年10月11日 | MacOS/iOS

①メッセージ系アプリではミュートでも音が出るように設定したい

ミュートにしてもメッセージの着信は音がしますが、LINEのようなアプリでは音がしません。
しかし、仕事の連絡用にLINEを使っているので、完全なミュートも困ります。
通知の設定のように横断的に設定を確認して、アプリ毎にミュートの場合にも音が出せる設定をできるようにするか、メッセージアプリをひとまとめに同条件で音が出るようにしてもらえると分かりやすいかと思っています。

②不意に音が鳴らないように確認したい

自宅でゲームをするときに音量を上げて、そのままミュートにするのを忘れてしまうことがあります。
出先ではミュートになっていることを確認するのですが、それも毎回だと忘れてしまうこともあります。
ゲームが起動するときに一瞬で構わないので、現在の音量設定を画面内に表示して、できれば画面をワンタッチで音をミュートにできる瞬間が欲しいです。
iPhone横のスイッチは瞬間的には押せませんし、アイコンをタッチして起動しているので、手は画面の上にあるので反応は可能だと思うのです。

コメント

【macOS Catalina】

2019年10月11日 | MacOS/iOS

新しいmacOSへのアップデートは大変な事件となりました。

最新バージョンのCatalinaへのアップデートが始まったので、早速実行してみました。
2時間ほどしてようやく終わるのかと思ったら最後の設定画面から5時間も動かなくなりました。

これまでもほぼ毎回アップデートに失敗しては、TimeMachineの機能を使ってアップデート前に戻して再挑戦をしてなんとかできていたのです。
昨年に新しいMacbook Airに買い換えてはいましたが、データ移行をしていたので、問題の抱えたところも移植されていた可能性があります。
今回最悪だったのは、TimeMachineからの復元途中でエラーが出て、元に戻せないということになったのです。

そこで、仕方なくOSの再インストールを選んだのですが、HDDが一杯でインストールできないというのです。
手順を戻して、ディスクユーティリティを起動して、先にHDDを初期化することにしました。

空になったHDDにmacOS Mojaveをクリーンインストールすることになりました。これまで不具合を引き継いでいた可能性があるので、これは良い機会になったと思うことにします。
Mojaveが無事に動くようになったため、ここで一旦TimeMachineでバックアップを初めて朝まで放置しました。
翌朝、再度Catalinaへのアップデートを初めて3時間ほどかかりましたが、順調に最後の設定画面にたどり着き、数秒で設定が終わりました。

後はアプリが消えてしまっているので、Apple Storeからアプリを入れていきます。
データはiCloudにバックアップされているので、Apple IDの設定さえしておけば順次元に戻ります。

メールは、アカウントを設定し直して元通りになりました。

写真は、アプリの起動後に、一旦サムネイルが表示され、その後に実データをダウンロードし始めたので、かなりの時間掛かっていました。

iTunesが結構やっかいで、購入した楽曲はちゃんと表示されていたと思いますが、CDから入れたアルバムがほとんど消えています。そこで、TimeMachineのデータからMusicフォルダを探してコピーしてきました。

Apple Books(旧iBooks)のデータは、購入した物以外に登録したPDFのデータもちゃんと表示していました。こちらも足りないデータがある場合は、TimeMachineから持ってくることにします。コピー先は分かりませんが、PDFを開くとコピーしてくれるかと思います。

二日がかりでなんとか元の状態に近付けることが出来ました。

コメント

【映画】蜜蜂と遠雷

2019年10月07日 | 映画

朝一で映画を見てきました。
ピアノのコンクールを題材にした「蜜蜂と遠雷」です。

https://mitsubachi-enrai-movie.jp/

ピアノのコンクールは数少ないプロへの登竜門で、4人の人物にスポットを当てています。

7年のブランクから突然現れた亜夜(松岡茉優)は、天才少女としてステージ上でピアノを弾けなくなり引退したと思われていたが、心の傷を抱えたまま復帰をかけてコンクールに現れます。
サラリーマンをしながらピアノへの情熱を傾ける明石(松坂桃李)は、練習時間が少ないというハンデを憤りに変えて、年齢的にも最後の挑戦へと淡々と立ち向かいます。
ジュリアード王子と呼ばれているマサル(森崎ウィン)は、幼少期に亜夜と共に彼女の母からピアノを習い、その後はアメリカに渡って高名な指導者の元で腕を磨き続けるサラブレッドで、今回の優勝候補と目されています。
そんな彼らの前に突然現れた少年塵(じん/鈴鹿央士)は、コンクールの審査員さえも二分する混乱の種となます。幼く見える少年が鍵盤を叩くと嵐が起こるのです。

コンクールの予選の間に4人がお互いに刺激を与え合います。それぞれが意図せずに誰かの背中を押していたり、心を掻きむしったりするのだけれど、彼らは純粋に課題に向き合って行きます。
そんな彼らの思いのたけがピアノの音として私達観客を包み込みます。まるでピアノの真横で音符を浴びているような迫力がありました。

最後に優勝者の名前は出ますが、やりきった彼らの演奏を聴き終わったらそんな結果は些細なことと思えるかも知れません。
ストーリーも充分に楽しめて、音楽の洪水に気持ちよく浸れる映画でした。

 

コメント

iPadOSになってからのトラブル ドックのアイコンが反応しない

2019年10月02日 | MacOS/iOS

iPadの画面下部には、登録したアプリや最近使ったアプリのアイコンが並んでいます。

その中でタップをしても反応しないアイコンがありました。
下の画像では、一番右にあるゲームのアイコンで最近よく使っています。もちろん、ドックの外にあるアイコンから起動することはできます。

ドック内のアイコンが反応しないのはこれだけでした。
アイコンを一旦削除しようと長押しをすると上記のような画面になったのです。

恐らくリンクが切れたような状態でアプリ名も「(null)」となっています。これはデータがないことを表していると思われます。
これまでも設定画面などでこの(null)が表示される現象は見かけていましたが、ドックで表示されるのは初めてです。

試しに共有を選んでもアプリがないというエラー表示がでました。
今度はもっとアイコンを長押ししてみると、アイコンの削除ができる画面になりましたので、一旦削除します。
また、アプリを起動すると、またドックに表示されます。しかし、また同じ現象が起こります。

次にアプリを一旦強制終了し、再度ゲームのアイコンを削除すると隙間ができますので、他のアプリを使ってドックをアイコンで埋めます。
その状態でゲームを起動すると再びドックにアイコンが登録されます。今回はうまく行きました。ドックに登録されたアイコン(ショートカット)はちゃんとタップしてゲームを起動することができました。

ドック内の管理情報を、他のアイコンで埋めて更新し、新たに登録されたものは問題なく動いたようです。

コメント

iPadOSになって最初のトラブル ブラウザの識別情報が変わってしまった

2019年09月27日 | MacOS/iOS

JavaScriptやperlによるブラウザの解析を続けて来ましたが、iPadのOSがiOSからiPadOSになったことでブラウザの動作に変化がありました。

9月20日にiPhoneはiOS12から13になり、9月25日にiPadはiOS12からiPadOS13.1(iPadOS13はありません)にアップデートしました。
アップデートの後、iPadのSafariでアクセスするといままでと違った表示をしたり、動画が再生されないというサイトがありました。
これはiPadを他のOSや機器として識別されているのではと思い、Safariの解析情報を確認してみました。

JavaScriptを使って、iOS12とiPadOS13.1でSafariから取得したnavigator.platformとnavigator.userAgentの値は以下の通りです。また比較のためにMacOSXのSafariの解析データも載せておきます。

OS.platform.userAgent
iOS12  iPad  Mozilla/5.0 (iPad; CPU OS 12_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.2 Mobile/15E148 Safari/604.1
iPadOS13.1  MacIntel  Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.1 Safari/605.1.15
MacOSX  MacIntel  Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.1 Safari/605.1.15

 iOS12とiPadOS13.1では、大きく内容が変わっており、platformも明らかにiPadではなく、MacIntelとなっています。
MacOSXのSafariによる解析情報と比較すると、今回のiPadOSでの解析情報とほぼ同じになっており、これが間違った識別が発生している原因です。

サイト側は、ユーザーがブラウザを使ってアクセスをすると、そのクライアントの情報を解析してどんなOSなのか、どんなブラウザなのかを判別しようとします。
スマホ、タブレット、PCの違いが分かるだけでも、画面のサイズやタッチ操作への対応ができます。
また、機器によって表示できる画像や動画のデータ形式に違いがあると、提供するデータ形式を切り替えて対応することもあります。

JavaScriptでは、スクリプトの命令や関数の動作の違いで判定することもありますが、上記のように解析情報も使われています。
また、サーバ側で解析する場合、ブラウザの解析情報に頼ることになりますので、大きな影響があと思われます。

各ブラウザのブラウザ情報については以下のページにまとめて記録を残しています。参考にどうぞ。

http://www.shurey.com/js/labo/browser.html

【原因と対処】

元々Safariには表示しているページをデスクトップ用(PC用)に表示をするという機能がありました。
どうやらその機能がiPadOSになったタイミングでオンになったのだと思われます。

設定の場所は「設定」内の「Safari」の中にありました。

上記画面の「デスクトップ用Webサイトを表示」をタップすると切り替えスイッチが表示されてオン/オフの切り替えが出来ました。
この設定をオフにすると、navigator.platformも「iPad」となり、userAgentもiOS12の時と同じようになりました。
以下の表は、iOS12とiPadOS13.1との比較です。

OS.platform.userAgent
iOS12  iPad  Mozilla/5.0 (iPad; CPU OS 12_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.2 Mobile/15E148 Safari/604.1
iPadOS13.1  iPad  Mozilla/5.0 (iPad; CPU OS 13_1_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.1 Mobile/15E148 Safari/604.1

 

コメント

【JSX】Photoshopのスクリプトで気付いたこと

2019年09月18日 | JavaScript

業務でWindowsのPhotoshopでスクリプトを作成して使用しています。

検索しても直接的な解決策がなかったため自己対応していますが、解決できないこともあるため情報共有のため記録しておきます。

①フォルダに入っているPSDファイルを取得する

ファイルを取得したときに実際のファイル数と取得したファイル数が異なる事態が発生しました。
以下、フォルダを選択肢、PSDファイルを取得して処理をするというスクリプトの一部です。


//ファイルダイアログを開く
folderObj = Folder.selectDialog("フォルダを選択してください。");
	if (folderObj) {
		//ファイルを取得
		fileList = folderObj.getFiles("*.psd");
		・・・
	}

ファイルを取得した後の処理中にエラーが出たので、ファイル取得時のfileList.lengthを調べてみると、フォルダに入っているファイルより値が多くなっていました。
fileList.nameを1つ1つ調べると、ファイル名の頭に「._」があるファイルが入っていることが分かりました。
それらは隠しファイルでした。表示の設定で隠しファイルをオンにすると下の様に確認することができました。

調べて見ると、ファイル名の頭に「._」と付いている隠しファイルは、Macで作業したときにできるファイルのようです。

下記のようにファイル名を除去するスクリプトを付け加えることで問題は解決できました。


//ファイルダイアログを開く
folderObj = Folder.selectDialog("フォルダを選択してください。");
	if (folderObj) {
		//ファイルを取得
		fileList = folderObj.getFiles("*.psd");

		//特定のファイル名を除去
		for (n=fileList.length; n>0; n--) {
			if (fileList[n-1].name.indexOf("._") == 0) {
				fileList.splice(n-1,1);
			}
		}
	}

②フォルダ名、ファイル名に「&」や「'」がある場合

こちらは完全には未解決です。

使用しているスクリプトは、指定のフォルダ内にあるファイルに対し任意の処理をして、別のフォルダに保存するというものです。
スクリプトを実行すると最初にダイアログを表示して、データの処理方法を選択します。そのダイアログの中にフォルダ名やファイル名の表示箇所があります。
下の図はファイルの入ったフォルダの内容です。

下図は、上記フォルダをスクリプトで選択し、ダイアログにフォルダ名とファイル名を表示しています。
フォルダが「HY」に、開始ファイル名が「HY01.psd」、終了ファイル名が「HY04.psd」と表示されており、元のフォルダ名やファイル名と比べると「&」が消えてしまっています。

以下、ダイアログを生成するスクリプトの一部です。


//フォルダ名をデコード
pathName = decodeURIComponent(folderObj.name);
//ファイル名をデコード
stFile = decodeURIComponent(fileList[stPage-1].name);
edFile = decodeURIComponent(fileList[edPage-1].name);

//ダイアログ
function createDialog(){
	var rs = "dialog { text:'PSD一括ファイル変換処理', bounds:[0, 0, 280, 330], ";
    
	rs += " pnl1: Panel { text:'フォルダ情報', bounds:[15, 10, 260, 130], ";
	rs += " str: StaticText { text:'フォルダ:', bounds:[10, 20, 90, 40],  }, ";
	//フォルダ名表示
	rs += " str: StaticText { text:'" + pathName + "', bounds:[60, 20, 240, 40],  }, ";
	rs += " str: StaticText { text:'開始:', bounds:[20, 50, 90, 70],  }, ";
	rs += " start_page: EditText { bounds:[60, 50, 100, 70],  }, ";
	//ファイル名表示
	rs += " start_file: StaticText { text:'" + stFile + "', bounds:[110, 50, 240, 70],  }, ";
	rs += " str: StaticText { text:'終了:', bounds:[20, 80, 90, 100],  }, ";
	rs += " end_page: EditText { bounds:[60, 80, 100, 100],  }, "; //textfiled
	//ファイル名表示
	rs += " end_file: StaticText { text:'" + edFile + "', bounds:[110, 80, 240, 100],  }, ";
	rs += " }," ;
	・・・
	rs += " cancel: Button { text:'キャンセル', bounds:[50, 290, 120, 320],  }, ";
	rs += " running: Button { text:'実行', bounds:[160, 290, 230, 320],  }, ";
	rs += " }";

	var dlg = new Window(rs);
	dlg.center();
	return dlg;
}

変数pathNmaeやstFile、edFileにはデコードされたパス名、ファイル名が入っています。
フォルダやファイルを作成する処理には問題がないため、ダイアログへ文字列として出力する段階で問題が発生していると考えられます。

変数rsにダイアログのデザイン的な情報を含めて、文字列で記述しています。

半角文字の「&」は表示されません。(このブログも半角のアンパサンドが使えないため全角で表示しています)
HTMLの表示のルールでも&を文字列で使用するには、コード表記の&に置き換えるようにと定められています。
「&」や「%26」「\&」などに置き換えてみましたが、&以外の文字列がそのまま表示されるだけでした。
現時点では全角文字の「&」を使用しています。

以下はフォルダ名「H&Y's」を表示した場合のテストで、文字を置き換えたパターン例です。「'」は全角で置き換えて表示しています。

&&
%26 &(全角) 

半角文字の「'」については、ダイアログを文字列(変数rs)で作成しているため、文字列の区切りとして認識されてダイアログを表示する前にエラーで止まります。
「'」「\'」の置き換えは失敗しています。
こちらも全角文字「’」で対応しています。

「"」はそもそもWindowsのファイル名には使えないため対処はしていません。

ダイアログの生成方法はこちらで公開されているファイルを参考にしました。
http://dearps.lovwar.com/2011/09/15/shape-3/

解決策をご存じの方の情報をお待ちしております。

コメント