9

There is a TikZ-impostor Among us.


Background

After learning about some amazing TikZ packages such as tikzducks, tikzpeople and tikzsymbols, which I let some examples below, I harvested some inspiration to starting learning skills in order to be able to create my own set of flexible TikZ drawings.

\documentclass{article}
\usepackage{tikz}
\usepackage{tikzducks}
\usepackage{tikzpeople}
\usepackage{tikzsymbols}
\begin{document}
\begin{tikzpicture}
  \duck;
  \duck[body=blue,scale=.3, xshift=150pt];
  \node[duck] at (2,0) {};
  \node at (3,0) {\Smiley[2] \dNinja[2][green!50!black][blue]};
  \node at (4,0) {\Strichmaxerl[5]};
  \node[red] at (5,0) {\Strichmaxerl[5][45]};
\end{tikzpicture}
\end{document}

enter image description here

When I just had an insight ...


Among us

... ``I could draw an Among Us Crewmate in TikZ!''.

The basic sketch came from this video: HOW TO DRAW AMONG US. And I also checked some ideas to draw torsos.

enter image description here


Question

What could be improved in order to evolve this basic sketch into something worth to become an TikZ package?

For example, tikzducks and tikzpeople has many optional extra features and, although tikzsymbols has a quite different approach, tikzsymbols still has some interesting options.

I will let an answer of my own as initial sketch.

2 Answers 2

5

I felt like making it among us:

\documentclass[tikz]{standalone}
\usepackage{xcolor}
\begin{document}
\begin{tikzpicture}
   \fill
   (5.44,4.97) .. controls (5.70,3.67) and (5.50,1.48) ..
   (5.36,0.86) .. controls (5.22,0.68) and (4.92,0.63) ..
   (4.24,0.58) .. controls (3.83,0.99) and (3.85,1.38) ..
   (3.83,1.69) .. controls (3.68,1.74) and (3.67,1.75) ..
   (3.46,1.69) .. controls (3.39,1.28) and (3.48,0.93) ..
   (3.42,0.52) .. controls (2.90,0.10) and (2.09,0.00) ..
   (1.80,0.21) .. controls (1.55,0.39) and (1.51,0.86) ..
   (1.54,1.56) .. controls (1.32,1.61) and (0.84,1.36) ..
   (0.52,1.83) .. controls (0.00,2.61) and (0.01,4.97) ..
   (0.16,5.23) .. controls (0.32,5.49) and (0.79,5.54) ..
   (1.09,5.60) .. controls (1.18,6.01) and (0.94,7.41) ..
   (2.37,7.75) .. controls (4.11,8.12) and (4.80,7.09) ..
   (4.89,6.71) .. controls (5.49,6.61) and (5.88,5.57) ..
   (5.44,4.97) -- cycle;
   \shade[top color=red, bottom color=red!40!black]
   (3.48,7.36) .. controls (3.76,7.33) and (4.10,7.04) ..
   (4.30,6.81) .. controls (3.35,6.76) and (2.20,6.73) ..
   (2.31,5.90) .. controls (2.36,5.54) and (2.44,3.40) ..
   (5.04,4.68) .. controls (5.35,2.16) and (5.01,2.05) ..
   (5.01,1.79) .. controls (5.01,1.61) and (5.14,1.48) ..
   (5.06,1.09) .. controls (4.83,1.01) and (4.57,0.88) ..
   (4.28,0.96) .. controls (4.05,1.35) and (4.28,1.51) ..
   (4.20,1.79) .. controls (4.41,1.84) and (4.54,1.92) ..
   (4.65,2.13) .. controls (4.02,1.97) and (3.19,2.16) ..
   (3.06,2.00) .. controls (2.93,1.77) and (3.09,1.38) ..
   (3.06,0.86) .. controls (2.72,0.47) and (2.42,0.44) ..
   (2.05,0.60) .. controls (1.89,1.22) and (1.68,2.62) ..
   (1.60,3.30) .. controls (1.27,5.48) and (1.47,6.39) ..
   (1.71,6.78) .. controls (1.97,7.43) and (3.19,7.38) ..
   (3.48,7.36) -- cycle
   (0.56,5.07) .. controls (0.77,5.17) and (0.93,5.15) ..
   (1.14,5.15) .. controls (1.03,4.34) and (1.08,2.78) ..
   (1.42,1.92) .. controls (1.14,1.84) and (1.06,1.95) ..
   (0.77,2.05) .. controls (0.43,2.88) and (0.43,4.58) ..
   (0.56,5.07) -- cycle;
   \shade[top color=blue!20, bottom color=blue!20!black]
   (2.84,6.11) .. controls (3.07,6.37) and (4.06,6.58) ..
   (4.61,6.37) .. controls (5.15,6.16) and (5.44,5.85) ..
   (5.21,5.38) .. controls (4.97,4.91) and (3.67,4.50) ..
   (3.15,4.94) .. controls (2.63,5.38) and (2.61,5.85) ..
   (2.84,6.11) -- cycle;
   \end{tikzpicture}
\end{document}

Red Among Us figure

3
  • WOW!!! This style is amazing! -. I'm delighted. It is far better than my limited tikz-artistic-skills would ever let me achieve. I really would like to add your style to the package. Of course, with all credits and rights.
    – FHZ
    Commented Jun 16, 2021 at 23:04
  • @FHZ: There is no artistic skills involved from me. I use "Pixel perfect" on a mac to hover the OP picture on top. -then I recreate the shape with mathcha.io, export TikZ and finally I cleanup the code with my own script and add colors. The rights for this work will be identical to your original picture from "How to draw Among Us". Commented Jun 17, 2021 at 10:02
  • 1
    As the picture comes from a tutorial especially made for people to copy, I can not see how there can be any copyright restrictions! -AND the picture from that tutorial is a direct copy of other artwork. Commented Jun 17, 2021 at 10:16
11

The sketch below has a newcommand to insert a TikZ code to draw an Among us Crewmate.

This is not a fully functional design, but there are options of colors and two emotions: angry and very angry.

This is just a kick start in order to (one day) become something as good as other packages.

\documentclass{article}
\usepackage{tikz}
\usepackage{xifthen}

\newcommand{\FHZamongUs}[3][]{%
\begin{tikzpicture}[every path/.style={very thick}]
  % Backpack
  \draw[fill=#2, rounded corners = 3mm] (1,1) rectangle ++(0.8,3.2);
  % Body
  \draw[fill=#2, rounded corners = 3mm] (1.5,0) -- (1.5,5)
  arc (124.8074:103.8454:5) arc (80.6307:58.1808:5)-- (5,0) -- (3.7,0)
  {[rounded corners = 0mm] -- (3.7,1) coordinate(A) -- (2.7,1)}
  -- (2.7,0) -- cycle;
  % Eyes
  \ifthenelse{\equal{#1}{angry}}
    {\draw[fill=#3]  plot[smooth cycle, tension=.7] coordinates
      {(4.3,4.7) (5.2,4.6) (5.2,3.5) (4.2,3.2) (3.1,3.5) (3.1,4.7)};}
    {\ifthenelse{\equal{#1}{very angry}}
      {\draw[fill=#3]  plot[smooth cycle, tension=.7] coordinates
        {(4.4,4.3) (5.2,4.6) (5.2,3.5) (4.2,3.6) (3.1,3.5) (3.1,4.7)};}
      {\draw[fill=#3]  plot[smooth cycle, tension=.7] coordinates
        {(4.3,4.9) (5.2,4.6) (5.2,3.5) (4.2,3.2) (3.1,3.5) (3.1,4.7)};}
    }
  % Leg detail
  \draw plot[smooth, tension=.7] coordinates {(A) (3.9,1) (4.2,1.1)};
\end{tikzpicture}
}

\begin{document}
  \FHZamongUs{white}{white}
  \FHZamongUs[angry]{yellow}{white}
  \FHZamongUs[very angry]{red}{cyan}
\end{document}

enter image description here


Update

New Styles with shadows

Using the idea of a scope inside a newcommand from this answer and the shade style from this video, I updated the previous drawing into a style spliting each part and creating newcommands to combine them.

It is still not the best approach to create shades but the result and new implementation are much better than the previous attempt.

I still intend to add a hand, create the emotions in the shade-ish style and update it as a package in CTAN.

The FHZ-amongUs.sty file:

\NeedsTeXFormat{LaTeX2e}[1994/06/01]
\ProvidesPackage{FHZ-amongUs}[2020-10-18 Custom Package for my AmongUs sketch]

\RequirePackage{tikz}
\RequirePackage{xifthen}
\usetikzlibrary{calc}
\usetikzlibrary{shadings}

%  ======================================= Style 0 -- Original Idea
\newcommand{\FHZamongUsOriginal}[3][]{%
\begin{tikzpicture}[every path/.style={very thick}]
  % Backpack
  \draw[fill=#2, rounded corners = 3mm] (1,1) rectangle ++(0.8,3.2);
  % Body
  \draw[fill=#2, rounded corners = 3mm] (1.5,0) -- (1.5,5)
  arc (124.8074:103.8454:5) arc (80.6307:58.1808:5)-- (5,0) -- (3.7,0)
  {[rounded corners = 0mm] -- (3.7,1) coordinate(A) -- (2.7,1)}
  -- (2.7,0) -- cycle;
  % Eyes
  \ifthenelse{\equal{#1}{angry}}
    {\draw[fill=#3]  plot[smooth cycle, tension=.7] coordinates
      {(4.3,4.7) (5.2,4.6) (5.2,3.5) (4.2,3.2) (3.1,3.5) (3.1,4.7)};}
    {\ifthenelse{\equal{#1}{very angry}}
      {\draw[fill=#3]  plot[smooth cycle, tension=.7] coordinates
        {(4.4,4.3) (5.2,4.6) (5.2,3.5) (4.2,3.6) (3.1,3.5) (3.1,4.7)};}
      {\draw[fill=#3]  plot[smooth cycle, tension=.7] coordinates
        {(4.3,4.9) (5.2,4.6) (5.2,3.5) (4.2,3.2) (3.1,3.5) (3.1,4.7)};}
    }
  % Leg detail
  \draw plot[smooth, tension=.7] coordinates {(A) (3.9,1) (4.2,1.1)};
\end{tikzpicture}
}
%  =======================================

%  ======================================= Style I -- Manual Shade
\newcommand{\FHZamongUsPackbackI}[2][]{
  \begin{scope}[#1]
    \fill[#2, rounded corners = 3mm] (1,1) coordinate(R1) rectangle ++(0.8,3.2) coordinate(R2);
    \fill[black!30!#2, rounded corners = 3mm] (R1) -| ($(R2)+(0,-0.2)$)
    {[sharp corners]-- (1,3.5)}
    -- cycle;
    \draw[rounded corners = 3mm] (1,1) rectangle ++(0.8,3.2);
  \end{scope}
}
\newcommand{\FHZamongUsBodyI}[2][]{
  \begin{scope}[#1]
    \fill[black!30!#2, rounded corners = 3mm] (1.5,0) -- (1.5,5)
    arc (124.8074:103.8454:5) arc (80.6307:58.1808:5)-- (5,0) -- (3.7,0)
    {[rounded corners = 0mm] -- (3.7,1) -- (2.7,1)}
    -- (2.7,0) -- cycle;
    \fill[#2] plot[smooth, tension=.7]
    coordinates {(1.9436,5.2721) (2.0594,2.4257) (2.9347,1.3971)
      (4.4826,1.7343) (4.9666,3.0446) (4.9686,4.0294)
      (4.9797,4.7974) (4.6523,5.2436) (3.4183,5.6907) (2.5265,5.5757)};
    \draw[rounded corners = 3mm] (1.5,0) -- (1.5,5)
    arc (124.8074:103.8454:5) arc (80.6307:58.1808:5)-- (5,0) -- (3.7,0)
    {[sharp corners] -- (3.7,1) coordinate(A) -- (2.7,1)}
    -- (2.7,0) -- cycle;
    % Leg detail
    \draw plot[smooth, tension=.7] coordinates {(A) (3.9,1) (4.2,1.1)};
  \end{scope}
}
\newcommand{\FHZamongUsEyesI}[2][]{
  \begin{scope}[#1]
    \fill[#2] plot[smooth cycle, tension=.7] coordinates
    {(4.3,4.9) (5.2,4.6) (5.2,3.5) (4.2,3.2) (3.1,3.5) (3.1,4.7)};
    \fill[black!50!#2]
    {plot[smooth, tension=.7] coordinates {(3.1,4.7) (3.2964,4.8157) (3.2633,4.3111) (3.4423,3.8301)
        (3.794,3.6464) (4.3087,3.5904) (4.9485,3.5904) (5.2338,3.5723) (4.7492,3.2515) (3.5071,3.2661) (3.0208,3.6849) (2.9691,4.3844)}};
    \draw plot[smooth cycle, tension=.7] coordinates
    {(4.3,4.9) (5.2,4.6) (5.2,3.5) (4.2,3.2) (3.1,3.5) (3.1,4.7)};
    \fill[white] plot[smooth cycle, tension=0.7]
    coordinates {(4.3069,4.7316) (4.581,4.7457) (4.8219,4.7029) (4.9541,4.5887) (4.7168,4.5055) (4.3152,4.525) (4.168,4.6295)};
  \end{scope}
}
\newcommand{\FHZamongUsI}[3][]{
  \FHZamongUsPackbackI[#1]{#2};
  \FHZamongUsBodyI[#1]{#2};
  \FHZamongUsEyesI[#1]{#3};
}
%  =======================================

%  ======================================= Style II -- shade
\newcommand{\FHZamongUsPackbackII}[2][]{
  \begin{scope}[#1]
    \draw[shade, top color=#2, bottom color=#2!5!black, middle color=#2, rounded corners = 3mm]
    (1,1) rectangle ++(0.8,3.2);
  \end{scope}
}
\newcommand{\FHZamongUsBodyII}[2][]{
  \begin{scope}[#1]
    \draw[shade, top color=#2, bottom color=#2!5!black, middle color=#2,
    rounded corners = 3mm]
    (1.5,0) -- (1.5,5)
    arc (124.8074:103.8454:5) arc (80.6307:58.1808:5)-- (5,0) -- (3.7,0)
    {[rounded corners = 0mm] -- (3.7,1) coordinate(A) -- (2.7,1)}
    -- (2.7,0) -- cycle;
    % Leg detail
    \draw plot[smooth, tension=.7] coordinates {(A) (3.9,1) (4.2,1.1)};
  \end{scope}
}
\newcommand{\FHZamongUsEyesII}[2][]{
  \begin{scope}[#1]
    \draw[shade, inner color=white!95!black, outer color=#2]  plot[smooth cycle, tension=.7] coordinates
    {(4.3,4.9) (5.2,4.6) (5.2,3.5) (4.2,3.2) (3.1,3.5) (3.1,4.7)};
  \end{scope}
}
\newcommand{\FHZamongUsII}[3][]{
  \FHZamongUsPackbackII[#1]{#2};
  \FHZamongUsBodyII[#1]{#2};
  \FHZamongUsEyesII[#1]{#3};
}
%  =======================================

\endinput

The main.tex file:

\documentclass{article}
\usepackage[margin=2cm,landscape]{geometry}
\usepackage{FHZ-amongUs}

\begin{document}
\begin{tikzpicture}
  \FHZamongUsPackbackI[shift={(0,0)}]{yellow};
  \FHZamongUsBodyI[shift={(0,0)}]{yellow};
  \FHZamongUsEyesI[shift={(0,0)}]{cyan};
  % ===========
  \FHZamongUsI[shift={(5,0)}]{red}{blue};
  \FHZamongUsI[shift={(10,0)}]{green}{gray};
  \FHZamongUsI[shift={(15,0)}]{blue}{orange};
  % ===========
  \FHZamongUsPackbackII[shift={(0,7)}]{yellow};
  \FHZamongUsBodyII[shift={(0,7)}]{yellow};
  \FHZamongUsEyesII[shift={(0,7)}]{cyan};
  % ===========
  \FHZamongUsII[shift={(5,7)}]{red}{blue};
  \FHZamongUsII[shift={(10,7)}]{green}{gray};
  \FHZamongUsII[shift={(15,7)}]{blue}{orange};
\end{tikzpicture}

\FHZamongUsOriginal{yellow}{cyan}
\FHZamongUsOriginal[angry]{yellow}{cyan}
\FHZamongUsOriginal{black}{white}
\FHZamongUsOriginal[angry]{gray}{white}
\FHZamongUsOriginal[very angry]{white}{black}
\end{document}

and the results are:

enter image description hereenter image description here


Update 2

Avaliable in CTAN

I updated drawings, syntax and names creating a package that is now avaliable at https://www.ctan.org/pkg/tikz-among-us.

The documentation also presents some interesting applications such as animation and page numbering.

2
  • 6
    Just a comment on implementation, your basic thing should be a TikZ pic so that it can be incorporated into a surrounding tikz picture environment. Then wrap that in a tikz command to create a standalone command. Commented Oct 16, 2020 at 5:59
  • I added an update with shadows and commands for separated body parts. I think it should be slightly close to the standalone concept @AndrewStacey mentioned.
    – FHZ
    Commented Oct 18, 2020 at 21:46

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .